快速业务通道

在Eclipse中创建新的重构功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
TimeOut = new Text(composite, SWT.SINGLE |  SWT.BORDER);   GridData gdTxtTimeOut = new GridData();   gdTxtTimeOut.horizontalAlignment = GridData.END;   gdLabName.grabExcessHorizontalSpace = true;   txtTimeOut.setLayoutData(gdTxtTimeOut);   txtTimeOut.setText("500");   // init status   labName.setEnabled(false);   txtTimeOut.setEnabled(false);   // add listener   defineListener();   // 将composite纳入框架的控制   setControl(composite);   Dialog.applyDialogFont(composite);   }

在Eclipse中创建新的重构功能(9)

时间:2010-12-02 IBM 志甘 春郭迎 林刘岳

在这里我们要特别注意的一点是在定义完我们的界面元素后,需要将自定义 的Composite纳入框架的控制,就是这行代码:"setControl(composite);"

在我们处理完输入数据检查后进入下一页面之前,我们需要设置页面完成的 状态,以及传递输入数据到领域类Refactoring。我们用以下代码设置好页面完 成的状态后,下个页面ErrorWizardPage就会处理显示逻辑:

清单 15

private void notifyStatus(boolean valid, String  message) {   //设置错误信息   setErrorMessage(message);   //设置页面完成状态   setPageComplete(valid);   }

传递输入数据通过以下代码来处理:

清单 16

private void setRefactoring(boolean selection,  String text) {   AnnotationRefactoring refactoring = (AnnotationRefactoring)  getRefactoring();   refactoring.setNeedTimeout(true);   if(selection) {    refactoring.setTimeout(Integer.valueOf(txtTimeOut.getText ()).intValue());   }   }

其中getRefactoring()方法是继承自RefactoringWizardPage的方法,由于我 们的RefactoringWizard类装载了RefactoringWizardPage和Refactoring类,这 个方法是从RefactoringWizard类中获得的,这里面用到了 Observer设计模式。 至此,我们完成RefactoringWizardPage的扩展。

第二步,扩展 RefactoringWizard:首先我们新建一个类 AnnotationRefactoringWizard,它需要继承 RefactoringWizard类,这个类中 我们只需要加载定义好的AnnotationRefactoringWizardPage类和 AnnotationRefactoring类,当然复杂的处理已经有RefactoringWizard框架处理 好了。下面我们在构造函数中加载 Refactoring类:

清单 17

public AnnotationRefactoringWizard(Refactoring  refactoring) {   super(refactoring, WIZARD_BASED_USER_INTERFACE);   }

然后我们加载我们的AnnotationRefactoringWizardPage类,只需重载父类 RefactoringWizard的addUserInputPages()方法就可以:

清单 18

protected void addUserInputPages() {   page = new AnnotationRefactoringWizardPage("refactor  annotation");   addPage(page);   }

第三步,启动RefactoringWizard。扩展好RefactoringWizard之后,就需要 在用户点击菜单项或是按钮时弹出这个对话框。RefactoringWizard最好使用 RefactoringWizardOpenOperation类来打开(当然也可以用 RefactoringWizardDialog)。RefactoringWizardOpenOperation首先进行重构的 初始检查,通过后才打开RefactoringWinzard对话框,否则就会打开错误对话框 。前面完成创建插件工程时我们提到,弹出RefactoringWizard对话框的代码应 该放到响应菜单操作的类的run函数中。具体到本文工程中,就是把下面的代码 放到AnnotationManageAction的run函数中。这些代码首先依次构造Refactoring 和RefacoringWizard子类AnnotationRefactoring和

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