Eclipse 插件开发 - 工具栏(tool bar)增加下来菜单

在开发Eclipse 插件时, 想在工具栏中增加一个按钮图标是非常容易, 但是想在图标上增加子菜单就会比较麻烦, 例如想实现如下效果: 




具体步骤如下:


  1. 首先在扩展点org.eclipse.ui.commands中增加三个指令

    [html]  view plain  copy
    1. <extension  
    2.     point="org.eclipse.ui.commands">  
    3.        
    4.     <command  
    5.         name="Reference Command"  
    6.         id="top.itart.plugin.smartboot.referenceCommand">  
    7.     </command>  
    8.    
    9.     <command   
    10.         name="Sub1 Command"   
    11.         id="top.itart.plugin.smartboot.sub1Command">  
    12.     </command>  
    13.    
    14.     <command  
    15.         name="Sub2 Command"  
    16.         id="top.itart.plugin.smartboot.sub2Command">  
    17.     </command>  
    18.         
    19. </extension>  


  2. 其次在扩展点org.eclipse.ui.menus 增加两个menuContribution

    [html]  view plain  copy
    1. <menuContribution  
    2.     locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">  
    3.     <toolbar  
    4.        id="top.itart.plugin.smartboot.toolbars">  
    5.         <command  
    6.               commandId="top.itart.plugin.smartboot.referenceCommand"  
    7.               icon="icons/sample.gif"  
    8.               tooltip="Pull down" style="pulldown">  
    9.         </command>  
    10.     </toolbar>  
    11. </menuContribution>  

    这个是定义显示在toolbar上的菜单. Command 中的commandId 为第一个指令的ID, 类型 type 为pulldown, 并且放在toolbar标签中

    [html]  view plain  copy
    1. <menuContribution  
    2.     locationURI="menu:top.itart.plugin.smartboot.referenceCommand">  
    3.     <command  
    4.               commandId="top.itart.plugin.smartboot.sub1Command"  
    5.               icon="icons/sample.gif"  
    6.               label = "Sub 1"  
    7.               tooltip="Sub 1">  
    8.     </command>  
    9.     <command  
    10.         commandId="top.itart.plugin.smartboot.sub2Command"  
    11.         icon="icons/sample.gif"  
    12.         tooltip="Sub2"  
    13.         label = "Sub 2">  
    14.     </command>  
    15. </menuContribution>  

    这个menuContribution是定义下拉的子菜单. 注意locationURI的值是menu: <Toolbar上的菜单ID>

  • 最终的plugin.xml如下

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <?eclipse version="3.4"?>  
  3. <plugin>  
  4.   
  5.     <extension  
  6.         point="org.eclipse.ui.commands">  
  7.            
  8.         <command  
  9.             name="Reference Command"  
  10.             id="top.itart.plugin.smartboot.referenceCommand">  
  11.         </command>  
  12.        
  13.         <command   
  14.             name="Sub1 Command"   
  15.             id="top.itart.plugin.smartboot.sub1Command">  
  16.         </command>  
  17.        
  18.         <command  
  19.             name="Sub2 Command"  
  20.             id="top.itart.plugin.smartboot.sub2Command">  
  21.         </command>  
  22.             
  23.     </extension>  
  24.      
  25.      
  26.    <extension  
  27.          point="org.eclipse.ui.menus">  
  28.         
  29.         <menuContribution  
  30.             locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">  
  31.             <toolbar  
  32.                id="top.itart.plugin.smartboot.toolbars">  
  33.                 <command  
  34.                       commandId="top.itart.plugin.smartboot.referenceCommand"  
  35.                       icon="icons/sample.gif"  
  36.                       tooltip="Pull down" style="pulldown">  
  37.                 </command>  
  38.             </toolbar>  
  39.         </menuContribution>  
  40.         
  41.         <menuContribution  
  42.             locationURI="menu:top.itart.plugin.smartboot.referenceCommand">  
  43.             <command  
  44.                       commandId="top.itart.plugin.smartboot.sub1Command"  
  45.                       icon="icons/sample.gif"  
  46.                       label = "Sub 1"  
  47.                       tooltip="Sub 1">  
  48.             </command>  
  49.             <command  
  50.                 commandId="top.itart.plugin.smartboot.sub2Command"  
  51.                 icon="icons/sample.gif"  
  52.                 tooltip="Sub2"  
  53.                 label = "Sub 2">  
  54.             </command>  
  55.         </menuContribution>  
  56.         
  57.     </extension>  
  58.   
  59. </plugin>  

猜你喜欢

转载自blog.csdn.net/zhuce0001/article/details/53231540