Eclipse插件开发之新建向导
- 添加向导入口
图1.1向导入口效果图
需要用到的扩展点:
org.eclipse.ui.newWizards
org.eclipse.ui.navigator.navigatorContent"
图1.1即为新增的一些向导入口,如果需要实现一个向导入口,需要扩展以上扩展点,这些扩展点都在plugin.xml中编写,以下以第一个向导入口Cpu管理为例:
1.1、"org.eclipse.ui.newWizards"
此扩展点用来注册资源创建向导扩展,创建向导作为“新建对话框”中的选项出现。
class:实现org.eclipse.ui.INewWizard的java类实例
project - 指示向导将创建 IProject 资源的可选属性。还导致向导作为“新建项目对话框”中的选项出现。
finalPerspective - 标识在 IProject 资源创建完成时要激活的透视图的可选属性。
preferredPerspectives - 指定用逗号分隔的透视图标识列表的可选属性。如果当前透视图在此列表
icon - 指定了向导入口的图标
name - 指定了向导入口的名称
<extension
point="org.eclipse.ui.newWizards">
<category
name="C/C++"
id="com.djyos.dide.ui.newDWizards">
</category>
<wizard
canFinishEarly="false"
category="com.djyos.dide.ui.newDWizards"
class="com.djyos.dide.ui.wizards.cpu.CpuWizard"
finalPerspective="org.eclipse.cdt.ui.CPerspective"
hasPages="true"
icon="icons/ovr16/cpu_img.gif"
id="com.djyos.dide.ui.wizards.NewDWizard1"
name="%Cpu.title"
project="true">
<description>
%Cpu.desc
</description>
</wizard>
</extension>
1.2、"org.eclipse.ui.navigator.navigatorContent"
此扩展中, variable指定了该向导入口在什么视图中可见。
<extension
point="org.eclipse.ui.navigator.navigatorContent">
<commonWizard
associatedExtensionId="com.djyos.dide.ui.navigator.content"
menuGroupId="org.eclipse.cdt.ui.newProject"
type="new"
wizardId="com.djyos.dide.ui.wizards.NewDWizard1">
<enablement>
<or>
<with variable="activeWorkbenchWindow.activePerspective">
<equals
value="org.eclipse.cdt.ui.CPerspective">
</equals>
</with>
<instanceof value="org.eclipse.cdt.core.model.ICElement" /> <and>
<instanceof value="org.eclipse.core.resources.IProject"/>
<test property="org.eclipse.core.resources.projectNature"
value="org.eclipse.cdt.core.cnature"/>
</and>
</or>
</enablement>
</commonWizard>
</extension>
- 添加新向导
2.1、设置向导的基本配置
需要继承的类:BasicNewResourceWizard
此类由org.eclipse.ui.ide提供,只需依赖该插件就可以导入此类。通过继承该类,可以获取向导的基本框架,再选择性实现以下方法:
@Override
public IWizardPage getPreviousPage(IWizardPage page) {
// TODO Auto-generated method stub
//获取前一页
return super.getPreviousPage(page);
}
@Override
public IWizardPage getNextPage(IWizardPage page) {
// TODO Auto-generated method stub
//获取后一页
return super.getNextPage(page);
}
@Override
public boolean performCancel() {
// TODO Auto-generated method stub
//点击Cancel的处理事件
return super.performCancel();
}
@Override
public void addPages() {
// TODO Auto-generated method stub
//添加页面
fMainPage = new XXXPage(CUIPlugin.getResourceString(PREFIX));
fMainPage.setTitle(wz_title);
fMainPage.setDescription(wz_desc);
addPage(fMainPage);
super.addPages();
}
@Override
public boolean performFinish() {
// TODO Auto-generated method stub
//点击finish的处理事件
return false;
}
2.2、新增向导页面
需要继承的类:WizardPage
此类由org.eclipse.jface提供,指定了一个向导页面,每个向导页面通过addPage方法加入向导,此向导才会根据页面加入的顺序来显示这些页面,需要继承以下方法:
@Override
public void createControl(Composite parent) {
// TODO Auto-generated method stub
// 本向导页面的总体架构
}
@Override
public IWizardPage getNextPage() {
// TODO Auto-generated method stub
// 获取下一下页面
return super.getNextPage();
}
@Override
public boolean canFlipToNextPage() {
// TODO Auto-generated method stub
// 设置是否可以通过点击Next跳转到下一个页面
return super.canFlipToNextPage();
}