`
圣诞王子
  • 浏览: 84581 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

RCP之Wizard开发-- 如何更新next和finish按钮

 
阅读更多

在开发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-rcp-2022-06-R-win32-x86_64.zip

    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 ...

    eclipse-rcp-2022-06-R-linux-gtk-x86_64.tar.gz

    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 ...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    通过本教程,开发者可以逐步掌握Eclipse RCP的各个关键概念和技术,从而能够开发出自己的富客户端应用程序。每个章节都包含详细的操作步骤和代码示例,确保读者能够实际动手操作,加深理解和掌握。

    RCP 开发工具 eclipse-rcp-2020-06-R-linux-x86

    这个"eclipse-rcp-2020-06-R-linux-x86"压缩包包含的"Eclipse"文件可能是Eclipse RCP的安装程序,安装后开发者将得到一个完整的开发环境,可以开始构建和调试基于Eclipse RCP的桌面应用程序。在Linux x86(AMD)平台...

    RCP+Plug-in开发自学教程_RCP+Plug-in开发自学教程_源码

    RCP应用基于组件化设计,允许开发者将应用程序分解为独立的功能模块,即Plug-ins,这些模块可以单独开发、测试和更新,降低了整体项目的复杂性。 **二、Plug-in机制** 1. **Plug-in定义**:在Eclipse RCP中,Plug-...

    eclipse-rcp-indigo-SR2-win32-x86_64

    "eclipse-rcp-indigo-SR2-win32-x86_64"是一个特定版本的Eclipse RCP平台,适用于Windows 64位操作系统。"Indigo"是Eclipse的版本代号,而"SR2"表示第二个服务释放(Service Release),意味着它是Indigo主版本的一...

    eclipse-rcp-juno-SR2-win32-x86_64.zip

    综上所述,"eclipse-rcp-juno-SR2-win32-x86_64.zip"是一个用于开发Windows 64位系统桌面应用程序的Eclipse RCP环境,包含丰富的开发工具和强大的插件支持,为开发者提供了一个高效、可扩展的平台。

    eclipse-rcp-2022-06-R-macosx-cocoa-x86_64.dmg

    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 Rcp

    RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面设计。 Eclipse原本是一个Java IDE,由IBM捐献给开源社区后,其可扩展性和丰富的插件生态系统吸引了众多开发者。...

    eclipse RCP Plug-in开发自学教程.pdf

    本教程旨在帮助读者自学Eclipse RCP插件式开发,掌握RCP的基本概念和开发技巧,无需任何前提条件,只需要具备基本的Java基础知识。 RCP插件式开发的优点在于: 1. 可重用eclipse中的方法和编码模式,提高开发效率...

    eclipse-rcp-2022-06-R-linux-gtk-aarch64.tar.gz

    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-rcp-2023-12-R-win32-x86-64.zip

    eclipse-rcp-2023-12-R-win32-x86_64.zip 适用于Windows系统

    RCP开发入门-PDF.7z

    通过阅读《RCP开发入门》,读者将能全面了解Eclipse RCP的基本概念和开发流程,为进一步深入学习和实践打下坚实的基础。无论你是对桌面应用开发感兴趣的Java开发者,还是希望通过Eclipse RCP来构建企业级应用,这...

    eclipse-rcp-2023-12-R-linux-gtk-aarch64.tar.gz

    在2023年的最新版本"eclipse-rcp-2023-12-R"中,Eclipse团队为Linux ARM架构的用户带来了专门的版本——"linux-gtk-aarch64",这表明Eclipse RCP已经充分考虑到了多样化的硬件平台需求。 1. **Eclipse RCP核心特性*...

    eclipse-RCP-3.1.1-win32.zip

    这个“eclipse-RCP-3.1.1-win32.zip”文件是一个专门为Windows操作系统编译的Eclipse RCP版本,版本号为3.1.1。在本文中,我们将深入探讨Eclipse RCP、JFace和SWT,以及如何使用这个压缩包进行开发工作。 Eclipse ...

    eclipse-rcp-kepler-SR2-win32-x86_64.zip

    下载“eclipse-rcp-kepler-SR2-win32-x86_64.zip”后,解压文件,你会得到Eclipse RCP的运行环境,包含启动器和必要的库。开发者可以利用这个环境创建自己的RCP应用程序,通过编写插件并打包成新的Eclipse产品。这个...

    RCP-1500中文操作手册.pdf

    索尼公司生产的RCP-1500系列遥控面板(包括RCP-1500、RCP-1501和RCP-1530型号)是用于配置和控制演播室级及广播级摄像机的专业设备。这些设备提供了高级的操作便利性和功能的多样性,使得用户能够高效地进行摄影机的...

    eclipse-rcp-2022-06-R-linux-gtk-x86_64.tar

    该压缩包 "eclipse-rcp-2022-06-R-linux-x86_64" 中包含的主要文件是 "eclipse-rcp-2022-06-R-linux-x86_64",这可能是一个可执行的Eclipse IDE实例,用于在Linux系统上支持RCP和RAP的开发。为了运行这个IDE,你需要...

    eclipse-rcp-2022-06-R-macosx-cocoa-aarch64.dmg

    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 ...

    eclipse-rcp-2023-09-R-linux-gtk-x86-64.tar.gz

    总的来说,“eclipse-rcp-2023-09-R-linux-gtk-x86_64.tar.gz”为Linux开发人员提供了一个强大、可扩展且适应性强的桌面应用程序开发平台。无论你是新手还是经验丰富的开发者,Eclipse RCP都能够帮助你高效地创建高...

Global site tag (gtag.js) - Google Analytics