快速业务通道

使用Eclipse向导进行快速开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
部分将处理 NewXHTMLFileWizard 类。该类如清单 1 所示,不过没有显示方法中的所有代码。

清单 1. NewXHTMLFileWizard 类public class NewXHTMLFileWizard extends Wizard implements INewWizard {    private NewXHTMLFileWizardPage page;    private ISelection selection;    public NewXHTMLFileWizard() {      // snipped...    }    public void addPages() {      // snipped...    }    public boolean performFinish() {      // snipped...    }    private void doFinish(      // snipped...    }    private InputStream openContentStream() {      // snipped...    }    private void throwCoreException(String message) throws CoreException {      // snipped...    }    public void init(IWorkbench workbench, IStructuredSelection selection) {      // snipped...    } }

实现 INewWizard 接口必须使用最后一个方法 init()。接下来,本文将介绍此方法以及此模板中自动包括的其余方法。

addPages() 方法

addPages() 方法将把页面添加到向导中。清单 2 中所示的方法将把单个页面添加到向导 NewXHTMLFileWizardPage 中。

清单 2. addPages() 方法将把页面添加到向导中

/**    * Adding the page to the wizard.    */    public void addPages() {      page = new NewXHTMLFileWizardPage(selection);      // You can add more pages here...      addPage(page);    }

NewXHTMLFileWizardPage 类包含为用户提供指定页面名称功能的控件。您可以稍后把控件添加到页面中,使最终用户可以输入更多信息。

performFinish() 方法

当用户单击向导中的 Finish 按钮时将调用 performFinish() 方法。在执行一些检查之后,它将使用 IRunnableWithProgress 接口调用 doFinish() 方法。使用此接口意味着在执行 doFinish() 方法时(在本例中需要花很长时间运行)不必编写显示进度条的所有 UI 元素。下面完整地列出了该方法。

清单 3. performFinish() 方法/**    * This method is called when ''Finish'' button is pressed in    * the wizard. We will create an operation and run it    * using wizard as execution context.    */    public boolean performFinish() {      final String containerName = page.getContainerName();      final String fileName = page.getFileName();      IRunnableWithProgress op = new IRunnableWithProgress() {        public void run(IProgressMonitor monitor) throws InvocationTargetException {          try {            doFinish(containerName, fileName, monitor);          } catch (CoreException e) {            throw new InvocationTargetException(e);          } finally {            monitor.done();          }        }      };      try {        getContainer().run(true, false, op);      } catch (InterruptedException e) {        return false;      } catch (InvocationTargetException e) {        Throwable realException = e.getTargetException();        MessageDialog.openError(getShell(), "Error", realException.getMessage());        return false;      }      return true;    }

使用Eclipse向导进行快速开发(4)

时间:2011-03-06 IBM Nathan A.

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