在开发RCP项目的时候,如何控制Wizard中的next和finish按钮呢?
一般我们的wizardpage页面都是继承了WizardPage,查看API里面有两个方法可以控制,一个是 void setPageComplete(boolean) ,一个是boolean canFlipToNextPage()
setPageComplete(boolean) 是控制当前页面的finish按钮是否可用,我们可以设置setPageComplete(false) 让按钮不可用;
canFlipToNextPage 用于控制next按钮是否可用,一般来说都是重新该方法,里面的逻辑判断来控制next是否可用;
当然,在开发的过程我也遇到,我已经重写了canFlipToNextPage方法了,但是不起效果,而且是等到第二遍的时候才开始更新按钮的状态,不知道为什么。后来看它的源代码,发现一个方法getContainer().updateButtons();,该方法是更新容器里面的按钮状态的,结果发现OK,可以立即更新按钮状态了
最后遇到了一个最棘手的问题,最后一页的finish按钮不能使用了,我设置的setPageComplete(true)。按道理来说,Wizard向导的最后一页的finish按钮就应该会显示,但是结果令人费解。后来看了他的源代码,发现 最后一页的finish按钮是通过canFinish()来控制的(canFinish()是父类Wizard中的方法),而canFinish的写法如下:
/* * (non-Javadoc) Method declared on IWizard. */ public boolean canFinish() { // Default implementation is to check if all pages are complete. for (int i = 0; i < pages.size(); i++) { if (!((IWizardPage) pages.get(i)).isPageComplete()) { return false; } } return true; }
发现,只有当Wizard向导中之前所有的页面的isPageComplete都为true的时候,最有一页的finish才可以显示,于是解决方案就出来:
我在最有一页的方法里面,把之前的WizardPage 中setPageComplete(true)不久OK 了么,
//确保前两个页面的pageComplete是正确的 for(int i = 0;i<getWizard().getPageCount();i++){ IWizardPage[] pages = getWizard().getPages(); ((WizardPage)pages[i]).setPageComplete(true); } getContainer().updateButtons();//立即更改按钮情况
到此两个疑问就解决了......
相关推荐
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-linux-gtk-x86_64.tar.gz) 适用于Linux x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
linux x86(AMD) 下 RCP 开发工具 eclipse-rcp-2020-06-R-linux-x86
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-win32-x86_64.zip) 适用于Windows x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
RCP+Plug-in开发自学教程.pdf
最近抽些时间,更新到eclipse3.6上来,既作为为广大Eclipser入门plugin/RCP开发的一个方便之门,也是对自己近年来学习的一个总结吧。 每一章都会单独提取出来,并尽可能的独立于其他章节,更新中的源代码工程也会...
eclipse-rcp-indigo-SR2-win32-x86_64,根据所需可供下载
eclipse-rcp-juno-SR2-win32-x86_64,根据所需进行下载。
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-linux-gtk-aarch64.tar.gz) 适用于Linux aarch64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-macosx-cocoa-x86_64.dmg) 适用于macOS x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-macosx-cocoa-aarch64.dmg) 适用于macOS aarch64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
http://downloads.myeclipseide.com/downloads/products/eworkbench/galileo/myeclipse-8.0.0-win32.exe eclipse\eclipse-RCP-SDK-3.0.1-win32.zip
Eclipse RCP富客户端平台,基于Eclipse开发的。
eclipse-rcp-kepler-SR2-win32-x86_64,根据所需进行下载。
eclipse-rcp-2023-09-R-macosx-cocoa-x86_64.dmg 适用于macOS Intel芯片系统
eclipse-rcp-2023-09-R-macosx-cocoa-aarch64.dmg 适用于macOS Arm芯片系统
eclipse-rcp-2023-09-R-win32-x86_64.zip 适用于Windows系统
eclipse-rcp-2023-09-R-linux-gtk-aarch64.tar.gz 适用于Linux Arm系统
eclipse-rcp-2023-09-R-linux-gtk-x86_64.tar.gz 适用于Linux x86_64位系统
RCP行业(2021-2026)企业市场突围战略分析与建议.docx