【原创】实现菜单工具栏(十九)

上一篇 / 下一篇  2008-07-09 09:05:24 / 个人分类:Eclipse插件开发

  在讲解插件入门时,读者了解到如何用向导开发一个“Hello, world”插件。“Hello, world”插件用到的扩展点就是“org.eclipse.ui.actionSets”。在此就是要通过“org.eclipse.ui. actionSets”扩展点建立用户的菜单和工具栏。

  “actionSets”扩展点信息

  在Eclipse中,通过“org.eclipse.ui.actionSets”扩展点能够建立自己的菜单和工具栏。实现ActionSet扩展点的步骤如下。

  1. 在插件清单文件的Extensions页上添加“org.eclipse.ui.actionSets”节点。

  2. 在“org.eclipse.ui.actionSets”节点下添加ActionSet子节点。

  3. 在ActionSet节点下添加menu和action子节点,如图1所示。

  

图1 ActionSets扩展点

  menu节点代表Eclipse的菜单项,menu节点的属性设置如下。

  l id:sampleMenu,id表示menu的编号。

  l label:Sample &Menu,label表示在菜单中的显示名称。

  action节点代表菜单的菜单项或工具栏中按钮的相应动作,action节点的属性设置如下。

  l id:com.free.proj.actionset.actions.SampleAction,代表Action的唯一编号。

  l label:&Sample Action,Action的名称。

  l menuBarPath:sampleMenu/sampleGroup,表示Action对应菜单的路径。

  l toolbarPath:sampleGroup,表示Action对应工具栏按钮的路径。

  l icon:icons/sample.gif,表示Action对应的图标。

  l tooltip:Action的提示信息。

  l class:com.free.proj.actionset.actions.SampleAction,指定Action的实现类。

  plugin.xml文件如例程1所示。

  例程1 plugin.xml

<plugin>

   <extension
1D{2W!iI6a0         point="org.eclipse.ui.actionSets">
:R K@?5v&Y0      <actionSetITPUB个人空间 rq*k_ j|3BEJ
            label="Sample Action Set"
Jb#n,p @b b0            visible="true"ITPUB个人空间y H [&[B(w;}:qK1c
            id="com.free.proj.actionset.actionSet">
c0}$CK)R'AX5Y0         <menuITPUB个人空间4Z$X\{ }Sz6x Qx
               id="sampleMenu"ITPUB个人空间;Z I U{@.[Y+Z
               label="Sample &amp;Menu">
7zZb3rT B4I"xP0            <separator
BX6TXJ"T0                  name="sampleGroup">ITPUB个人空间#K'qe'k$B]!t
            </separator>ITPUB个人空间{y"Y }TViU
         </menu>ITPUB个人空间4y-zGj5zx/j
         <action
K'p/i;d.Vc#E]W0               label="&amp;Sample Action"
7G5s'W G~X.Q @:[0               icon="icons/sample.gif"ITPUB个人空间"`;qJ2]-@P8\
               class="com.free.proj.actionset.actions.SampleAction"ITPUB个人空间+ri(d*f ^h D
               tooltip="ActionSet Test"
/UF;UYIL"I0               menubarPath="sampleMenu/sampleGroup"ITPUB个人空间0NQ OM(f8?&Q1`E
               toolbarPath="sampleGroup"
D0v/]Q;Gpg~x0               id="com.free.proj.actionset.actions.SampleAction">ITPUB个人空间{)X\*x%B?2z
         </action>ITPUB个人空间%P:Q:t!q&hg*C
      </actionSet>ITPUB个人空间6u(ST'_Ip%s
   </extension>

</plugin>

  实现类“SampleAction”

  从plugin.xml文件可以看出Action对应的实现类为SampleAction。SampleAction实现了IWorkbenchWindowActionDelegate接口,其中run(IAction action)方法为用户单击菜单或工具栏按钮时的响应方法,SampleAction代码如例程2所示。

  例程2 SampleAction.java

  public class SampleAction implements IWorkbenchWindowActionDelegate {

  private IWorkbenchWindow window;

  public SampleAction() {

  }

  public void run(IAction action) {

  MessageDialog.openInformation(

  window.getShell(),

  "Actionset Plug-in",

  "ActionSet Test");

  }

  public void selectionChanged(IAction action, ISelection selection) {

  }

  public void dispose() {

  }

  public void init(IWorkbenchWindow window) {

  this.window = window;

  }

  }

  上例中,通过run方法响应用户单击菜单和工具栏的请求。在Eclipse中,Action是可以被菜单和工具栏所复用的。

  下载(com.free.proj.actionset.rar)


TAG:

引用 删除 elvaelva1232003   /   2008-07-25 10:50:16
5
引用 删除 Guest   /   2008-07-10 09:08:49
跟阿甘老师学Eclipse
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-06  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 8886
  • 日志数: 43
  • 文件数: 11
  • 建立时间: 2008-02-14
  • 更新时间: 2008-09-05

RSS订阅

Open Toolbar