快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
PageWizard extends Wizard {    /**     * 向导中的所有向导页,注意:指的是增加或者减少之后的向导页     */    private List<IWizardPage> pages = new ArrayList<IWizardPage> ();    ...    /**     * 构造函数,创建一个空的向导     */    protected DynamicPageWizard() {      super();    }    /*     * (non-Javadoc)     * @see org.eclipse.jface.wizard.Wizard#addPage (org.eclipse.jface.wizard.IWizardPage)     */    public void addPage(IWizardPage page) {     // 重写父类方法,添加向导页,并将向导页的向导设置为当前对象     ...    }    /**     * 在指定的向导页前插入向导页     *     * @param page     * @param nextPage     * @return     */    public boolean addPage(IWizardPage page, IWizardPage nextPage) {     for(int i = 0; i < pages.size(); i++) {      if(pages.get(i) == nextPage) {      return addPage(page, i);      }     }     return false;    }    /**     * 在指定的位置插入向导页     *     * @param page     * @param location     */    public boolean addPage(IWizardPage page, int location) {     // Invalid location     if(location < 0 || location > pages.size())      return false;     // Create the new page list     List<IWizardPage> newPages = new ArrayList<IWizardPage>();     for(int i = 0; i < location; i++) {      newPages.add(pages.get(i));     }     page.setWizard(this);     newPages.add(page);     for(int i = location; i < pages.size(); i++) {      newPages.add(pages.get(i));     }     // Set the relationship     if(location != pages.size())      ((IWizardPage)newPages.get(location + 1)).setPreviousPage(page);     ((IWizardPage)page).setPreviousPage((IWizardPage)newPages.get(location - 1));     pages = newPages;     return true;    }    /**     * 删除指定位置的向导页     *     * @param number     */    public void removePage(int number) {     if(number < 0)      return;     if(number > pages.size() - 1)      return;     if(number == 0)      pages.remove(0);     else if(number == pages.size() - 1)      pages.remove(number);     else {      IWizardPage wizarPage = (IWizardPage)pages.get(number + 1);      wizarPage.setPreviousPage((IWizardPage)pages.get(number - 1));      pages.remove(number);     }    }    /**     * 删除指定的向导页     *     * @param page     */    public void removePage(IWizardPage page) {     int number = -1;     for(int i = 0; i < pages.size(); i++) {      if(pages.get(i) == page)      number = i;     }     removePage(number);    }    /**     * 删除向导中某种类名的所有向导页     *     * @param number     */    public void remo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号