9910

          單飛

             :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
          因為TreeView要增加一個彈出菜單來
          Java代碼
           1 private void createContextMenu(Composite parent) {
           2         MenuManager mgr = new MenuManager();
           3         mgr.setRemoveAllWhenShown(true);
           4         final EntityTreeView tree = this;
           5         mgr.addMenuListener(new IMenuListener() {
           6             public void menuAboutToShow(IMenuManager manager) {
           7                 // TODO Auto-generated method stub
           8                 ISelection selection = tree.getSelection();
           9                 if(selection instanceof IStructuredSelection){
          10                     IStructuredSelection incoming = (IStructuredSelection)selection;
          11                     if(incoming.size() >0 && incoming.getFirstElement() instanceof AbstractEntity){    
          12                         selectedEntity = (AbstractEntity)incoming.getFirstElement();
          13                         fillContextMenu(manager,selectedEntity);        
          14                     }
          15                 }
          16                 
          17             }
          18 
          19         });
          20 
          21         org.eclipse.swt.widgets.Menu menu = mgr.createContextMenu(this.getControl());
          22         this.getControl().setMenu(menu);
          23         getViewSite().registerContextMenu(mgr, this);
          24     }
          25 
          26     private void fillContextMenu(IMenuManager manager,AbstractEntity selectedEntity) {
          27         org.eclipse.jface.action.IContributionItem items[] = getViewSite().getActionBars().getMenuManager().getItems();
          28         for (IContributionItem item : items) {
          29             if(item instanceof PluginActionContributionItem){
          30                 PluginActionContributionItem pitem = (PluginActionContributionItem)item;
          31                 if(selectedEntity instanceof CategoryModel){
          32                     if ("com.test.actions.RefreshViewActionDelegate".equals(pitem.getAction().getId())){
          33                         manager.add(item);
          34                         continue;
          35                     }
          36                 }                
          37     
          38             }
          39             
          40             
          41         }
          42     }

          plugin.xml

          <extension
                   
          point="org.eclipse.ui.viewActions">
                
          <viewContribution
                      
          id="com.test.EntityContribution"
                      targetID
          ="com.test.View">
                   
          <action
                         
          class="com.etest.actions.AddActionDelegate"
                         icon
          ="icons/action.gif"
                         id
          ="com.etest.actions.AddActionDelegate"
                         label
          ="Add"
                         menubarPath
          ="category"
                         style
          ="push">
                   
          </action>
          targetID指定那個View會獲取到這些action
          如果指定一個toolbarPath
          就會在NavigatorBar顯示這些action
          posted on 2008-04-20 10:24 單飛 閱讀(771) 評論(0)  編輯  收藏 所屬分類: Eclipse Plugin
          主站蜘蛛池模板: 潼关县| 尉氏县| 长治市| 扬州市| 乌拉特后旗| 贡嘎县| 罗城| 林口县| 吴川市| 河池市| 双流县| 博爱县| 通城县| 济宁市| 雅安市| 张家界市| 巧家县| 连江县| 洛南县| 澄迈县| 克山县| 莫力| 庄河市| 日喀则市| 丹东市| 黄山市| 台中市| 合肥市| 旌德县| 石城县| 纳雍县| 华池县| 闸北区| 新郑市| 黄石市| 宜兰县| 盈江县| 兰坪| 合水县| 南召县| 漳州市|