5、定义动作
(1)动作概述
l 在 Eclipse 工作台中,动作是应用程序用户触发的命令
l 一般,动作可分为三种不同的类型:按钮、工具条项和菜单项
l 当在工作台内执行动作时,动作的run方法在应用程序中执行其特定功能
l 除了动作类外,动作还可以具有其他属性用于在工作台内控制动作的呈现方式,这些属性包括文本标签、工具提示信息和图标
l 本教程的Google应用程序中有两个动作:一个用于退出应用程序(菜单项动作),另一个允许用户通过点击Search视图中的License Key按钮(按钮动作)来激活License Key向导
(2)定义org.eclipse.ui.viewActions扩展
<extension point="org.eclipse.ui.viewActions"> <viewContribution targetID="com.xqtu.google.views.SearchView" id="com.xqtu.google.views.contribution"> <action toolbarPath="additions" label="License Key" tooltip="Google License Key" class="com.xqtu.google.actions.LicenseKeyAction" style="push" state="false" id="com.xqtu.google.actions.LicenseKeyAction"/> </viewContribution> </extension>l 在视图中的动作,需要在plugin中定义org.eclipse.ui.viewActions扩展
l <viewContribution>定义特定视图的一组菜单和动作;id属性是其唯一标识;targetID属性指定特定视图的id
l <action>定义动作的属性和动作类,主要包括:
Ø toolbarPath:目标视图工具条中的一个命名组,缺省是additions;类似的menubarPath属性对应于下拉菜单
Ø label:动作的标签
Ø tooltip:动作的工具提示文本
Ø class:实现org.eclipse.ui.IviewActionDelegate接口(视图动作代理)的类的全路径
Ø style:动作的风格,可以是push、radio或toggle
Ø state:当动作的风格是toggle,指定动作的初始状态
Ø id:动作的唯一标识
(3)创建LicenseKeyAction类
package com.xqtu.google.actions; import org.eclipse.jface.action.IAction;import org.eclipse.jface.viewers.ISelection;import org.eclipse.jface.wizard.WizardDialog;import org.eclipse.ui.IViewActionDelegate;import org.eclipse.ui.IViewPart; import com.xqtu.google.views.SearchView;import com.xqtu.google.wizards.LicenseKeyWizard; public class LicenseKeyAction implements IViewActionDelegate { private SearchView searchView; public void init(IViewPart view) { this.searchView = (SearchView) view; } public void run(IAction action) {
LicenseKeyWizard wizard = new LicenseKeyWizard(); WizardDialog dialog = new WizardDialog(searchView.getViewSite() .getShell(), wizard); dialog.open(); } public void selectionChanged(IAction action, ISelection selection) { } }l LicenseKeyAction动作类实现IviewActionDelegate接口;在init方法中保存目标视图对象;在run方法中通过WizardDialog激活并打开License Key向导
本文围绕Eclipse工作台展开,介绍了动作的相关知识,包括动作的类型、执行方式及属性。还阐述了在视图中定义org.eclipse.ui.viewActions扩展的方法,以及如何创建LicenseKeyAction类来激活并打开License Key向导。
5641

被折叠的 条评论
为什么被折叠?



