9910

          單飛

             :: 首頁 :: 聯系 :: 聚合  :: 管理
          因為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 單飛 閱讀(776) 評論(0)  編輯  收藏 所屬分類: Eclipse Plugin
          主站蜘蛛池模板: 米泉市| 闸北区| 额济纳旗| 台江县| 汉中市| 新兴县| 淮北市| 高要市| 左云县| 内江市| 蓬溪县| 炉霍县| 工布江达县| 绿春县| 册亨县| 沁水县| 镇江市| 宣化县| 固安县| 辛集市| 和硕县| 兴文县| 镇远县| 怀集县| 依兰县| 香格里拉县| 年辖:市辖区| 扬中市| 临沧市| 崇义县| 祁连县| 福州市| 富源县| 彭阳县| 威海市| 鹤峰县| 长顺县| 三穗县| 洛隆县| 美姑县| 古蔺县|