如何将JFace表添加到Eclipse RCP New Project Wizard

时间:2012-03-28 15:50:23

标签: swt eclipse-rcp jface wizard

我有一个包含两个页面的向导:pageone扩展WizardNewProjectCreationPagepagetwo扩展WizardPage。我希望用户能够首先创建项目,然后在第二页上将文件添加到项目中。

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

我怎样才能做到这一点?我是否必须使用Eclipse Forms API?或者只是添加一个SWT表?我使用过插件间谍,但NewClassWizardPageNewTypeWizardPage中给出的源代码似乎对此示例非常具体,我无法理解它。

我也看过vogella的tutorial用于JFace表,但我无法理解它。

只是一些基本步骤会很棒,或者有人之前已经这样做了吗?

1 个答案:

答案 0 :(得分:2)

我很容易理解为什么你感到困惑......确实有很多方法可以解决这个问题。您甚至省略了数据绑定,它为您提供了另一种填充和装饰相关表格的方法。

总结不同API的用法:

  • SWT 提供基本的小部件和控件。通常这些都有一个相当不规则的低级界面 - 特别是与Swing相比 - 但你需要访问SWT控件来进行布局(这种练习本身就很复杂)。此外,许多听众都在控件上。
  • JFace 在相应的结构化SWT控件之上提供一组查看器 - 例如在TableViewer之上Table。这些查看器为底层控件的功能提供了一个高级接口 - 例如与模型,标签提供商,排序,过滤等。 (观众可以很容易地与Swing同行进行比较......)
  • Eclipse Forms 提供了一种(相对)简单的方法来创建看起来像网页的视图,对话框等。这方面的例子是各种PDE编辑。
  • 数据绑定提供了一种(有点复杂的)方法将控件(包括表)绑定到数据结构(基于Bean,EMF或POJO)。

所以......你必须决定是否使用JFace和Data Binding的模型方面,但其余的API通常组合在同一个视图或对话框中。

NewClassWizardPageNewTypeWizardPage都是向导特别复杂的例子 - 不要以自己的工作为基础!

对于您的具体情况 - 据我所知 - 我会使用一个简单的JFace TableViewer来保存接口列表...(我使用的是TableViewer而不是ListViewer因为后者不能将图像作为标签提供者的一部分。)“添加”和“删除”按钮将操纵查看器的模型,然后更新查看器。您不需要Eclipse Forms,因为向导通常看起来不像网页。鉴于向导的非常非常简单的数据,数据绑定在这里也是一种过度杀伤。

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