Eclipse向导机制扩展 - 实现可定制的向导 - 编程入门网
导;
2. 创建向导所在的 Shell; 3. 添加向导页:addPages(),重写该方法给向导插入的向导页; 4. 创建向导页容器:WizardDialog.createPageContainer(Composite parent); 5. 创建每个向导页对应的 Control:IWizard.createPageControls(Composite pageContainer)。 Eclipse 调用它来实例化所有的向导页面。重写它给向导添加持续可视的窗体小部件; 6. 显示起始向导页:调用 WizardDialog.showStartingPage():重写该方法以获取向导第一个页面。 向导页定制 下面我们来看一下向导页的定制,向导页扩展了 WizardPage 类。开发人员为了定制自己的页面,必 须重写下面一些方法: Constructor:实例化向导页面。 dispose():向导关闭时调用该方法清除向导页相关对象。 createControl(Composite parent):重写它来创建向导页控件。 IWizard getWizard():获取向导页所在的向导对象。 setPageComplete:当该向导页中的所有必须的设置都完成之后,可以将该页的状态设置为结束,然后 用户可以进入下一页。 setTitle(String title):设置向导页标题。 setDescription(String description):设置向导页的描述。 setImageDescriptor(ImageDescriptor image):提供页面右上方出现的图片。 setMessage(String message):设置向导页中的提示信息。 setErrorMessage(String error): 设置向导页中的错误提示信息。 performHelp():设置向导页的帮助信息。 当向导中有多个向导页时,我们可以在向导对话框最下方看到“Back”,“Next”,“Finish”和 “Cancel”四个按钮。 “Back”,“Next”按钮用于在多个向导页间进行跳转,当向导中只有一个向导 页时,只有“Finish”和“Cancel”两个按钮。 “Back”按钮:用于返回到前一个向导页。点击该按钮,将调用函数 IWizardPage getPreviousPage (IWizardPage previousPage),返回前一个页面。 “Next” 按钮:用于进入下一个向导页。对于一个设计合理的向导,只有当前向导页中所有必填的信 息设置完成之后,“Next”按钮才能变成有效状态,然后用户才被允许进入下一个页面。当用户填完页面 中的必须信息时,程序将执行 setPageComplete(true) 方法将当前向导页状态设为完成状态;之后用户 点击“Next”按钮,向导页 IWizardPage 的方法 getNextPage(IWizardPage nextPage) 被调用,返回下 一个向导页。默认情况下,用户将进入向导类 Wizard 的 addPages() 方法所提供的数组中的下一个页面 。如果我们要实现下一页有多种方案,必须重写该方法来计算后一个页面。 “Finish” 按钮:当所有向导页中的信息已经配好之后,用户点击 Finish 按钮,调用 performFinish() 函数来执行向导目标操作,用户需要重写它来实现向导的业务逻辑,如果 performFinish() 执行业务逻辑失败,则应该返回 false。 “Cancel”按钮:在向导运行过程中,用户可以随时点击该按钮,退出向导。点击该按钮,将会调用 performCancel() 函数,取消当前向导操作,并将之前所做的操作回滚。 Eclipse向导机制扩展 - 实现可定制的向导(3)时间:2011-10-22 IBM 刘力 杜冰冰Eclipse 向导扩展 从对 Eclipse 向导机制分析可知,Eclipse 向导页的添加是线性的,向导页的内容也是固定的,页面 内容和顺序一旦确定就无法改变。在实际应用中,我们面对的需求往往是复杂的,用户的操作步骤经常是 有分支的,向导页的内容有时候根据用户的操作需要动态变化。下面我们从两个方面对当前 Eclipse 向 导机制进行扩展:动态页数的 Eclipse 向导以及树状拓扑结构的 Eclipse 向导。 动态 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |