我有一个包含两个页面的向导:pageone
扩展WizardNewProjectCreationPage
,pagetwo
扩展WizardPage
。我希望用户能够首先创建项目,然后在第二页上将文件添加到项目中。
对于后者,我想使用SWT Table
(?),就像在Eclipse IDE中的Java类向导中选择接口一样(参见图片here)。旁边还有“添加”按钮。
我怎样才能做到这一点?我是否必须使用Eclipse Forms API?或者只是添加一个SWT表?我使用过插件间谍,但NewClassWizardPage
和NewTypeWizardPage
中给出的源代码似乎对此示例非常具体,我无法理解它。
我也看过vogella的tutorial用于JFace表,但我无法理解它。
只是一些基本步骤会很棒,或者有人之前已经这样做了吗?
答案 0 :(得分:2)
我很容易理解为什么你感到困惑......确实有很多方法可以解决这个问题。您甚至省略了数据绑定,它为您提供了另一种填充和装饰相关表格的方法。
总结不同API的用法:
TableViewer
之上Table
。这些查看器为底层控件的功能提供了一个高级接口 - 例如与模型,标签提供商,排序,过滤等。 (观众可以很容易地与Swing同行进行比较......)所以......你必须决定是否使用JFace和Data Binding的模型方面,但其余的API通常组合在同一个视图或对话框中。
NewClassWizardPage
和NewTypeWizardPage
都是向导特别复杂的例子 - 不要以自己的工作为基础!
对于您的具体情况 - 据我所知 - 我会使用一个简单的JFace TableViewer
来保存接口列表...(我使用的是TableViewer
而不是ListViewer
因为后者不能将图像作为标签提供者的一部分。)“添加”和“删除”按钮将操纵查看器的模型,然后更新查看器。您不需要Eclipse Forms,因为向导通常看起来不像网页。鉴于向导的非常非常简单的数据,数据绑定在这里也是一种过度杀伤。
请注意,只有在显示所有向导页面并按下“完成”按钮后才能执行向导功能。