特别声明:
建议使用google游览器,火狐也可以
论坛处于测试阶段,一切资料都为测试资料,在论坛正式运行的时候,会尽量保存网友的劳动成果!
HelloWorld论坛秉持互惠互利,共同学习与进步,一个人的梦想大家实现的理想,一直坚持着,望广大网友多多支持,提供宝贵意见
来论坛做什么?
可以先转载你平时学习查找的资料(先论坛查找),自己可以写写体会
把平时碰到的问题,如何解决可以先记录在论坛,以备后来的人学习
可以和会员一起参加一些开源项目的学习,汉化,推广,甚至可以加入团队
|
|
来源:http://www.cnblogs.com/drawwindows/archive/2011/07/11/2103195.html 第一章 wizard了解 一个Wizard主要由Wizard Dialog、Wizard、Wizard Page三部分组成,如图。
其中Wizard Dialog定义了Wizard中的按钮并管理所提供的向导项页面;Wizard用于控制向导中的外观和行为;Wizard Page定义了向导项页面显示内容的控制机制。 Eclipse提供的三个扩展点: 新建向导 org.eclipse.ui.newWizard 导入向导 org.eclipse.ui.importWizard 导出向导 org.eclipse.ui.exportWizard 第二章 wizard的创建实例 下面将以org.eclipse.ui.newWizardsd的使用为例,创建wizard。 通过FileàNewàProjectàPlug-in DevelopmentàPlug-in Projectà输入项目名—>模板选择Coustom plug-in wizard—>可选模板都不用àfinish。 创建plugin.xml和如图所示的类。 主要包括向导类(MyNewWizard)和向导页面(可多个,实例中FirstWizardPage和SecondWizardPage)。 向导类继承Wizard类并实现INewWizard接口。 想到页面类主要是继承WizardPage类。 这两个类的常用方法见附录 plugin.xml 内容如下所示 id要求唯一,category的显示参考下图。 MyNewWizard的代码如图所示 public class MyNewWizard extends Wizard implements INewWizard{ private FirstWizardPage newItemWizardPage; private SecondWizardPage editListsConfigPage; private ISelection selection; public MyNewWizard(){ super(); setNeedsProgressMonitor(true); } @Override public void init(IWorkbench arg0, IStructuredSelection selection) { // TODO Auto-generated method stub this.selection = selection; } @Override public void addPages() { // TODO Auto-generated method stub newItemWizardPage=new FirstWizardPage( selection); addPage(newItemWizardPage); editListsConfigPage=new SecondWizardPage(selection); addPage(editListsConfigPage); } @Override public boolean performFinish() { System.out.println("完成按钮被按下!"); try { Thread.sleep(5000); } catch (InterruptedException e) { // 执行到这里的机率非常低 } return true; } }
public class FirstWizardPage extends WizardPage{ private ISelection selection; private String name; public FirstWizardPage(ISelection selection){ super("wizardPage"); setTitle("创建新元素"); setDescription("这里是描述"); //还可以在这里设定页面图像:setImageDescription setPageComplete(false); this.selection = selection; } @Override public void createControl(Composite parent) { Composite container=new Composite(parent,SWT.NULL); GridLayout layout=new GridLayout(); layout.numColumns=1; container.setLayout(layout); // TODO Auto-generated method stub Text text=new Text(container,SWT.BORDER); text.setText("设定名称"); text.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { // TODO Auto-generated method stub Text text=(Text)e.getSource(); name=text.getText(); if(name==null||name=="") updateStatus("请输入名字"); else updateStatus(null); } }); Combo combo = new Combo(container,SWT.NONE); combo.setText("设定类别"); combo.add("普通"); combo.add("同事"); combo.add("商业"); combo.add("朋友"); setControl(container); } private void updateStatus(String message) { setErrorMessage(message); setPageComplete(message == null); } }
SecondWizardPage的内容和FirstWizardPage的内容大体相似,可以稍作改动,用于在点击下一步操作时发现不同。 运行结果: 1. 2. 3. 4. 附录
3.1 关于生命期的方法 |
[挂载人]初学MPEG |
|
|
Please Login (or Sign Up) to leave a comment |