Eclipse Form程式設計指南(1)

來源:互聯網
上載者:User
程式|設計
1、介紹

l         Eclipse Form是Eclipse 3.0的新特性

l         Eclipse Form是一組定製小組件和支援類組成的外掛程式,以前由PDE和Update組件內部使用,在Eclipse 3.0中已經成為公用API

l         Eclipse Form提供:

n         適合包含到內容地區(編輯器或視圖)中的“Form”概念

n         用來管理顏色、超連結組和其它象SWT控制項一樣的Form外觀的工具包

n         象HTML表格一樣布局的新布局管理器

n         為Form設計的定製控制項(超連結、映像連結、可滾動的composite等)

n         每頁是一個Form的多頁編輯器(就象PDE)

 



2、快速入門

(1)HelloWorld例子

l         下面的例子在視圖中建立一個空的Form

public class FormView extends ViewPart {



 



       private FormToolkit toolkit;



       private ScrolledForm form;



 



       public void createPartControl(Composite parent) {



             toolkit = new FormToolkit(parent.getDisplay());



             form = toolkit.createScrolledForm(parent);



             form.setText("Hello, Eclipse Forms");



       }



 



       public void setFocus() {



              form.setFocus();



       }



      



       public void dispose() {



              toolkit.dispose();



              super.dispose();



       }



}



l         首先要建立FormToolkit對象執行個體

l         由FormToolkit建立Form對象(這裡是ScrolledForm)

l         調用ScrolledForm的setText()方法,在Form的頂部設定標題內容

l         注意:最後要dispose管理資源的FormToolkit對象

l         要在Workbench中運行,需要plugin.xml中,將org.eclipse.ui.forms添加到必需外掛程式列表,並註冊視圖



<?xml version="1.0" encoding="UTF-8"?>



<?eclipse version="3.0"?>



<plugin



   id="FormSamples"



   name="FormSamples Plug-in"



   version="1.0.0"



   provider-name="nelson_tu"



   class="org.xqtu.samples.FormSamplesPlugin">



 



   <runtime>



      <library name="FormSamples.jar">



         <export name="*"/>



      </library>



   </runtime>



 



   <requires>



      <import plugin="org.eclipse.ui"/>



      <import plugin="org.eclipse.core.runtime"/>



      <import plugin="org.eclipse.ui.forms"/>



   </requires>



 



   <extension



         point="org.eclipse.ui.views">



      <view



            class="org.xqtu.samples.views.FormView"



            name="Form Sample"



            id="FormView"/>



   </extension>



</plugin>



(2)新增內容

       public void createPartControl(Composite parent) {



              toolkit = new FormToolkit(parent.getDisplay());



              form = toolkit.createScrolledForm(parent);



              form.setText("Hello, Eclipse Forms");



        



              Composite body = form.getBody();



              GridLayout layout = new GridLayout();



              body.setLayout(layout);



              Hyperlink link = toolkit.createHyperlink(body, "Click here.",



                       SWT.WRAP);



              link.addHyperlinkListener(new HyperlinkAdapter() {



                public void linkActivated(HyperlinkEvent e) {



                       System.out.println("Link activated!");



                }



              });



       }



l         首先獲得Form的體內容,它是一個Composite對象

l         設定其布局為GridLayout

l         通過FormToolkit建立一個超連結(Hyperlink)控制項

l         添加超連結事件接聽程式,響應超連結的點擊

(3)添加通用控制項

l         由於Form的體內容是一個Composite對象,所以允許在其中建立SWT控制項

l         但是SWT控制項是被設計為適合視窗、對話方塊的,所以在Form中使用是有問題的

l         在Form中,使用FormToolkit建立對應的通用控制項

       public void createPartControl(Composite parent) {



              toolkit = new FormToolkit(parent.getDisplay());



              form = toolkit.createScrolledForm(parent);



              form.setText("Hello, Eclipse Forms");



        



              Composite body = form.getBody();



              GridLayout layout = new GridLayout();



              body.setLayout(layout);



              Hyperlink link = toolkit.createHyperlink(body, "Click here.",



                       SWT.WRAP);



              link.addHyperlinkListener(new HyperlinkAdapter() {



                public void linkActivated(HyperlinkEvent e) {



                       System.out.println("Link activated!");



                }



              });



        



              layout.numColumns = 2;



              GridData gd = new GridData();



              gd.horizontalSpan = 2;



              link.setLayoutData(gd);



              Label label = toolkit.createLabel(body, "Text field label:");



              Text text = toolkit.createText(body, "");



              text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));



              text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);



              Button button = toolkit.createButton(body,



                       "An example of a checkbox in a form", SWT.CHECK);



              gd = new GridData();



              gd.horizontalSpan = 2;



              button.setLayoutData(gd);



              toolkit.paintBordersFor(body);



       }



l         上面的例子添加了三個通用控制項:Label、Text和CheckBox

l         由於預設建立的Text控制項的外觀是3D的,而要達到象PDE一樣的FLAT外觀,需要做些額外工作:

n         調用setData()方法,添加重畫邊框的附加資訊

n         調用FormToolkit的paintBordersFor()方法重畫FLAT外觀的邊框


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.