Eclipse RCP插件开发之Wizard定制开发

发布于 2014-05-11  24.26k 次阅读


记录一下问题,避免日后重复查找

 

1、Eclipse RCP 中的Wizard=WizardDialog+Wizard+WizardPage,前者即是容器,由于RCP本身机制原因,Wizard初始化的时候会一起实例化生成WizardPage页面,若要实现简单的,如Page1选中若干ListItem,Page2生成选中字段的Table表头,就不行。

解决方法:

step1:Wizard重载createPageControls,将super注释

step2:在需要动态生成的WizardPage界面重载dispose








2、如何更新next和finish按钮

在开发RCP项目的时候,如何控制Wizard中的next和finish按钮呢?

 

一般我们的wizardpage页面都是继承了WizardPage,查看API里面有两个方法可以控制,一个是 void setPageComplete(boolean) ,一个是boolean canFlipToNextPage()

setPageComplete(boolean) 是控制当前页面的finish按钮是否可用,我们可以设置setPageComplete(false) 让按钮不可用;

canFlipToNextPage 用于控制next按钮是否可用,一般来说都是重新该方法,里面的逻辑判断来控制next是否可用




我的解决方法是重载Wizard的button点击事件,然后去定制一些业务功能控制

step1:新建一个类,继承自WizardDialog,重载事件


step2:让WizardPage继承自NewWizardDialog,然后每个WizardPage的按钮点击,

即会进入这个方法,在里面实现你自己控制跳转下一步的控制

step3:在你需要show dialog的地方new 这个实例