Eclipse 插件开发-如何扩展 WTP Wizard
2010-04-12 00:00:00 来源:WEB开发网为了简化 Sample 理解复杂度,doAddPages 方法中只加入首页(SampleProjectFirstPage),而忽略了其他页面。在构造函数中,使用 SetWindowTitle 方法设置 Wizard 标题。getDefalutProvider 中注册 SampleProjectCreationDataModelProvider 用来执行控制操作。
清单 3. Wizard Page
protected void createPresetPanel(Composite top)
{
final Group group = new Group(top, SWT.NONE);
group.setText("Sample Main Class");
group.setLayoutData(gdhfill());
group.setLayout(new GridLayout(2, false));
Label lp = new Label(group, SWT.NULL);
lp.setText("Package");
Text tp = new Text(group, SWT.BORDER);
tp.setLayoutData(gdhfill());
Label lc = new Label(group, SWT.NULL);
lc.setText("Name");
Text tc = new Text(group, SWT.BORDER);
tc.setLayoutData(gdhfill());
synchHelper.synchText(tp,
SampleProjectCreationDataModelProvider.PACKAGE, null);
synchHelper.synchText(tc,
SampleProjectCreationDataModelProvider.MAIN_CLASS_NAME, null);
}
Sample Wizard 的首页隐蔽了 Dynamic Web Project Wizard 首页中 Dynamic WEB Module Version 与 Configuration Group。因此 Sample Page 通过继承 WEB Project Page,并重写相关 createPresetPanel,createPrimaryFacetComposite 方法来达到目的。
这里通过 synchHelper 方法的 synchText 方法实现 Text 空间与 provider 想关联的 Model 同步,当 Text 值发生改变时,helper 通过自身 Listener 机制通知 Model 来同步 UI 数据。相应地,synchHelper 还提供了与 Label、Combo\ Tree ,CheckBox 等 Widget 同步方法。
更多精彩
赞助商链接