9910

          單飛

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
          因?yàn)門reeView要增加一個(gè)彈出菜單來(lái)
          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指定那個(gè)View會(huì)獲取到這些action
          如果指定一個(gè)toolbarPath
          就會(huì)在NavigatorBar顯示這些action
          posted on 2008-04-20 10:24 單飛 閱讀(776) 評(píng)論(0)  編輯  收藏 所屬分類: Eclipse Plugin
          主站蜘蛛池模板: 黄山市| 巢湖市| 河南省| 巴里| 新民市| 清丰县| 且末县| 南投市| 沙河市| 弋阳县| 桂东县| 黔江区| 呼图壁县| 洛阳市| 咸丰县| 文水县| 新绛县| 图木舒克市| 仙居县| 赣榆县| 绥滨县| 五原县| 青铜峡市| 宁明县| 崇左市| 兴城市| 大关县| 南宁市| 准格尔旗| 自治县| 新密市| 乌什县| 旌德县| 娱乐| 齐河县| 晋州市| 南靖县| 卓尼县| 裕民县| 和政县| 民乐县|