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 小平 閱讀(351) 評論(0)  編輯  收藏

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


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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          framework

          j2me

          java

          linux

          web

          其他

          友情鏈接

          素材

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 卢氏县| 吉隆县| 吐鲁番市| 沙坪坝区| 济宁市| 嘉禾县| 聂拉木县| 银川市| 陇西县| 庄浪县| 沈丘县| 鸡泽县| 和硕县| 民权县| 玉山县| 紫阳县| 济阳县| 大姚县| 山阴县| 大余县| 赤水市| 灵石县| 芜湖市| 县级市| 竹北市| 曲周县| 遂昌县| 高淳县| 龙泉市| 龙游县| 五河县| 朔州市| 读书| 察隅县| 苍溪县| 瑞安市| 岢岚县| 陆良县| 湖北省| 车致| 米易县|