Eclipse外掛開發之新建嚮導
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
project - 指示嚮導將建立 IProject 資源的可選屬性。還導致嚮導作為“新建專案對話方塊”中的選項出現。
finalPerspective - 標識在 IProject 資源建立完成時要啟用的透檢視的可選屬性。
preferredPerspectives - 指定用逗號分隔的透檢視標識列表的可選屬性。如果當前透檢視在此列表
icon - 指定了嚮導入口的圖示
name - 指定了嚮導入口的名稱
<extension
point=
<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();
}