posts - 31,  comments - 31,  trackbacks - 0

          1、編制菜單:?
          ?????每個Plug-In可以包括一個MenuBar(菜單)、CoolBar(工具欄)、PerspectiveBar(面板欄)、FastViewBar(快速視圖欄),這些欄目是在Plug-In運行過程中不會改變的,MenuBar(菜單)由ApplicationActionBarAdvisor類的fillMenuBar()方法定義,例:

          ????????????MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
          ????????????fileMenu.add(new?Separator());
          ????????fileMenu.add(newViewAction);

          CoolBar(工具欄)由ApplicationActionBarAdvisor類的fillCoolBar()方法定義,例:

          IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);?
          toolbar.add(newViewAction);


          PerspectiveBar由PlugIn.xml文件中關于Perspective的配置自動生成,FastViweBar由PlugIn.xml文件中關于View的配置自動生成,MenuBar和CoolBar中各個功能按鈕的action在ApplicationActionBarAdvisor類的makeActions()方法中注冊。例:

          newViewAction? = ? new ?OpenNewViewAction(window,? " 打開新視圖菜單 " ,?IEntryID.NEW_VIEW_ID);
          ????????register(newViewAction);


          2、編寫面板和視圖:?
          ??????在Plug-In運行過程中Perspective(面板),View(視圖)會被經常切換,其中Perspective由若干個View組成,Perspective要實現IPerspectiveFactory接口,并在Perspective中定義要加載的View。View要繼承ViewPart類,View還要有一個唯一的ID。并把Perspective和View在PlugIn.xml作注冊。例:

          < extension??? point ="org.eclipse.ui.views" >
          < view
          ????????????
          name ="新打開的視圖"
          ????????????allowMultiple
          ="true"
          ????????????icon
          ="icons/sample3.gif"
          ????????????class
          ="uuu.NewView"
          ????????????id
          ="uuu.NewView" >
          ??????
          </ view >
          </ extension >
          ???
          < extension???? point ="org.eclipse.ui.perspectives" >
          ??????
          < perspective
          ????????????
          name ="New?Perspective"
          ????????????class
          ="uuu.NewPerspective"
          ????????????id
          ="uuu.NewPerspective" >
          ??????
          </ perspective >
          ???
          </ extension >

          3、添加action
          編寫一個繼承了Action的XXXaction類,再此之前先定義一個接口,如下:

          public ? interface ?IEntryID? {

          ????
          public ? static ? final ?String?NEW_VIEW_ID? = ? " uuu.NewView " ;
          ????
          public ? static ? final ?String?CMD_OPEN_NEW_VIEW? = ? " uuu.OpenNewView " ;????
          }

          實現XXXaction的構造函數,如下:

          this .window? = ?window;
          ????????
          this .viewId? = ?viewId;
          ????????setText(label);
          ????????
          // ?The?id?is?used?to?refer?to?the?action?in?a?menu?or?toolbar
          ????????setId(IEntryID.CMD_OPEN_NEW_VIEW);
          ????????
          // ?Associate?the?action?with?a?pre-defined?command,?to?allow?key?bindings.
          ????????setActionDefinitionId(ICommandIds.CMD_OPEN);
          ????????setImageDescriptor(uuu.Activator.getImageDescriptor(
          " /icons/sample2.gif " ));

          在PlugIn.xml中添加相應的配置:

          < extension?????? point ="org.eclipse.ui.commands" >
          ????????
          < command
          ????????????
          name ="打開新視圖"
          ????????????description
          ="打開一個新的視圖"
          ????????????categoryId
          ="uuu.OpenNewView"
          ????????????id
          ="uuu.OpenNewView" >
          ??????
          </ command >
          ????
          </ extension? >

          4、顯示工具欄:
          在ApplicationWorkbenchWindowAdvisor類的preWindowOpen();方法中添加
          ?

          ?configurer.setShowCoolBar( true );
          ?configurer.setShowPerspectiveBar(
          true );
          ?configurer.setShowFastViewBars(
          true );
          posted on 2007-01-31 14:33 小平 閱讀(352) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          framework

          j2me

          java

          linux

          web

          其他

          友情鏈接

          素材

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昭平县| 洪湖市| 中牟县| 普陀区| 南汇区| 蓝山县| 磐石市| 温宿县| 苗栗县| 江西省| 嘉兴市| 浦县| 青岛市| 孝义市| 浦东新区| 达尔| 会昌县| 宜兰县| 岱山县| 额尔古纳市| 阜城县| 屯留县| 宝丰县| 白沙| 长兴县| 彭山县| 宾川县| 象山县| 万源市| 景东| 大同市| 集安市| 和林格尔县| 奉节县| 江津市| 万盛区| 汕尾市| 商城县| 台安县| 吴江市| 裕民县|