我有一个向导,有两个页面:pageone
扩展WizardNewProjectCreationPage
,pagetwo
扩展WizardPage
。我希望用户能够首先创建项目,然后在第二页上将文件添加到项目中。
对于后者,我想使用SWT Table
(?),就像在Eclipse IDE中的Java类向导中选择接口一样(参见此处的图片)。还有旁边的"添加"按钮。
我怎样才能做到这一点?我必须使用EclipseFormsneneneba API吗?或者简单地添加一个SWT表?我使用了Plug-In-Spy,但NewClassWizardPage
和NewTypeWizardPage
中给出的源代码似乎非常具体,我无法理解它
我也看过vogella的JFace表格教程,但我无法理解
只要一些基本的步骤就很好了,或者可能有人以前做过?
我很容易理解你为什么感到困惑。。。确实有很多方法可以做到这一点。您甚至忽略了数据绑定,它为您提供了另一种填充和装饰有问题的表的方法。
总结不同API的用法:
- SWT提供了基本的小部件和控件。通常,它们有一个相当不规则的底层接口——尤其是与Swing相比——但您需要访问SWT控件来布置它们(这本身可能很复杂)。此外,许多侦听器都在控件上
-
JFace在相应的结构化SWT控件之上提供了一组查看器,例如
Table
之上的TableViewer
。这些查看器为底层控件的功能提供了一个高级界面,例如模型、标签提供程序、排序、筛选等。(观众可以很容易地与Swing同行进行比较…) - Eclipse Forms提供了一种(相对)简单的方法来创建看起来像网页的视图、对话框等。例如各种PDE编辑器
- 数据绑定提供了一种(有些复杂)的方法,可以将控件(包括表)绑定到数据结构(基于Bean、EMF或POJO)
所以。。。您必须决定是否使用JFace和Data Binding的模型方面,但其余的API通常组合在同一个视图或对话框中。
NewClassWizardPage
和NewTypeWizardPage
都是向导的特别复杂的例子——不要把自己的工作建立在这些基础上!
根据我的理解,对于您的特定情况,我会使用一个简单的JFace TableViewer
来保存接口列表。。。(我使用TableViewer
而不是ListViewer
,因为后者不能将图像作为标签提供程序的一部分。)"添加"one_answers"删除"按钮将操作查看器的模型,然后更新查看器。您不需要EclipseForms,因为向导通常看起来不像网页。考虑到向导的数据非常非常简单,数据绑定在这里也是一种过度使用。
请注意,只有在显示了所有向导页面并按下"完成"按钮后,才能执行向导的功能。