快速业务通道

Eclipse向导机制扩展 - 实现可定制的向导 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
普通用户订票分支。见下图。

图 6. 普通用户电影订票流程

会员用户预定电影票操作:首先在向导页 A 中,选择电影票预订,进入订票分支;然后在向导页 B 中,选择会员用户,输入会员用户名和密码,进入会员用户订票分支。见下图。

图 7. 会员用户电影 订票流程

Eclipse向导机制扩展 - 实现可定制的向导(8)

时间:2011-10-22 IBM 刘力 杜冰冰

申请成为会员操作:在向导页 A 中,选择申请成为会员,进入申请成为会员分支。见下图。

图 8. 申请成为会员流程

为了实现树状拓扑结构,文章提供了一个树状向导的抽象类 TreePageWizard,以及向导页类 TreeWizardPage 供开发人员使用。用户使用时,只需要将其向导类继承 TreePageWizard,向导页类继承 TreeWizardPage,重写这两个类中相应的方法,便可以方便地实现树状拓扑结构向导。

向导类 TreePageWizard 继承自类 org.eclipse.jface.wizard.Wizard,在原 Wizard 的基础上进行 扩展,使用变量 TreeWizardPage rootPage 来存储树结构的根节点对应的向导页,树结构的根节点即是 该向导的起始页。使用变量 Set<TreeWizardPage> pages 来存储树结构中的所有向导页。类中所 有操作都是围绕这两个变量进行,包括树结构中节点的添加、删除、树结构分支的选择等等。和动态向导 不同的是,pages 里面保存的向导页是向导中所有可能的页面,而 DynamicPageWizard 中存储的是当前 向导中的页面,并且 pages 的类型是 Set<TreeWizardPage>,DynamicPageWizard 中类型是 List<IWizardPage>,详细的内容见下面清单。同样,由于 pages 变量覆盖了原 org.eclipse.jface.wizard.Wizard 中的 pages 变量,之前基于该变量的所有方法都需要重写,读者可 以根据不同的 JDK 版本以及自己的需要,将必须重写部分内容补上。

清单 2. 树状拓扑向导父类 TreePageWizard

public abstract class TreePageWizard extends Wizard {    /**     * 树型向导的起始页     * Root page.     */    private TreeWizardPage rootPage = null;    /**     * 向导中的所有向导页     * All the pages in the wizard.     */    private Set <TreeWizardPage> pages = new HashSet <TreeWizardPage> ();    /**     * 构造函数     * Creates a new empty wizard.     */    protected TreePageWizard () {      super();    }    /**     * 构造函数     * Creates a new empty wizard.     */    protected TreePageWizard (IWizardPage page) {      super();     if(page instanceof TreeWizardPage) {      rootPage = (TreeWizardPage)page;      addPage(rootPage);     }    }    /**     * 设置树结构的根节点,以及向导的起始页     */    public void setRootPage(IWizardPage page) {     if(page instanceof TreeWizardPage) {      addPage((TreeWizardPage)page);      rootPage = (TreeWizardPage)page;     }    }    /*     * (non-Javadoc)     * @see org.eclipse.jface.wizard.Wizard#addPage (org.eclipse.jface.wizard.IWizardPage)     */    public void addPage(IWizardPage page) {     // 判断是否 TreeWizardPage 类型的向导,如果不是,则返回     if(!(page instanceof TreeWizardPage))      return;     // 添加该向导页     pages.add((TreeWizardPage)page);     page.setWizard(this);     // 添加该向

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号