2012-03-28 73 views
0

我有一个向导有两个页面:pageone延伸WizardNewProjectCreationPagepagetwo正在延伸WizardPage。我希望用户能够首先创建项目,然后将文件添加到第二页上的项目。如何将JFace表添加到Eclipse RCP新建项目向导

对于后者,我希望使用SWT Table(?),就像在Eclipse IDE中选择Java类向导中的接口时一样(参见图片here)。还有它旁边的“添加”按钮。

我该如何做到这一点?我必须为此使用Eclipse Forms API吗?或者干脆添加一个SWT表?我使用了插件间谍软件,但NewClassWizardPageNewTypeWizardPage中给出的源代码似乎对此示例非常具体,我无法理解它。

我也看过了对于JFace表格的vogella's tutorial,但是我无法理解它。

只是一些基本的步骤会很棒,或者有人曾经这样做过?

回答

2

我可以很容易地理解你为什么会感到困惑......确实有很多方法可以做到这一点。你甚至遗漏了数据绑定,它提供了另一种方式来填充和修饰有问题的表。

综上所述的不同API的用法:

  • SWT提供了基本的小部件和控件。通常这些接口具有相当不规则的底层接口 - 尤其是与Swing相比 - 但您需要访问SWT控件以进行布局(本身可能很复杂)。还有很多听众都在控制中。
  • JFace在相应的结构化SWT控制之上提供了一组观众 - 例如, Table之上的TableViewer。这些观看者为底层控制的功能提供了高级接口 - 例如,与模型,标签提供者,排序,过滤等等。 (观众可以很容易地与Swing对应...)
  • Eclipse Forms提供了一个(相对)简单的方式来创建看起来像网页的视图,对话框等。这方面的例子是各种PDE编辑器。
  • 数据绑定提供(有点复杂)的方式来结合对照(包括表)的数据结构(豆,EMF或POJO为基础)。

因此,您必须决定是否使用JFace和数据绑定的模型构面,但其余的API通常会组合在相同的视图或对话框中。

NewClassWizardPageNewTypeWizardPage都是向导的特别复杂的例子 - 不要将自己的工作放在这些基础上!

对于你的具体情况 - 我的理解是 - 我会用一个简单的JFace TableViewer持有的接口列表...(我用一个TableViewer而非ListViewer为以后不能有一个形象的一部分标签提供者)。“添加”和“删除”按钮将操作查看器的模型,然后更新查看器。你不需要Eclipse Forms,因为这些向导通常看起来不像网页。鉴于向导的非常非常简单的数据,数据绑定在这里也是一种矫枉过正的行为。

请注意,向导的功能仅在所有向导页面显示并按下“完成”按钮后才会执行。

相关问题