在swt设计师的windowbuilder jface行动

时间:2012-03-08 08:29:44

标签: swt jface windowbuilder

我正在使用eclipse / windowbuilder pro编写JFace独立应用程序。 Windowbuilder是一个很好的工具,但我很难找到有关这种应用程序的组织结构的信息。

目前,我正在为我的应用程序的主窗口扩展标准的ApplicationWindow类(在windowbuilder示例中是标准的),并为应用程序中的“子窗口”子类化SWT组合。我遇到的问题是,当我在windowbuilder中以图形方式构建SWT Composite子类时,我失去了使用JFace动作/数据绑定的能力。在使用SWT设计器同时对标准SWT组件进行子类化时,无法访问用于添加JFace操作的调色板。我已经详细搜索了如何添加此调色板无效(标准method失败,因为这不是调色板管理器中出现的'普通'调色板)。我也尝试将JFace动作组件添加到现有的调色板中,但找不到有关如何向调色板添加抽象类(Action)的文档。我知道我可以手工编写我想要的所有代码,但它违背了使用windowbuilder的目的。

我真的很想坚持使用标准的JFace查看器/动作模型,但我无法弄清楚应该在我的应用程序中为我的“子窗口”子类化哪些组件。我已经尝试直接对Window类进行子类化,但是这不会产生对windowbuilder的JFace Actions调色板的访问。我不确定在什么条件下可以访问调色板(我一直在迭代地删除并向ApplicationWindow添加组件,我变得绝望)。我有一些自定义小部件我很乐意写JFace Viewers,如果我能解决这个问题的话。

那里有任何窗口制造商的粉丝吗?子类化SWT Composite是一种合理/标准的方法来制作这个应用程序的组件吗?编写比单个ApplicationWindow更复杂的应用程序的标准是什么?我搜索过高和低,但似乎只能找到单个应用程序窗口的教程和示例 - 没有任何复合。我觉得我缺少一些关于更复杂的JFace应用程序结构的关键信息。我想我的圣杯将是SWF Composite的JFace版本,它允许我通过windowbuilder访问JFace动作代码生成。

任何有关大型应用程序的标准JFace设计的提示和/或阅读材料都将受到赞赏!

1 个答案:

答案 0 :(得分:0)

我已经与WBPro合作了大约6到7年......我想我们可以就你的问题进行对话。我可能无法完全回答你的问题,但我会尽我所能。因此,首先,对于子窗口,您应该使用JFace Dialogs。您可以从New> Other> WbPro> JFace> Dialog创建一个模板,或者自己创建一个模板。你也可以使用TitleAreaDialog,它更酷,顶部有一个标题栏,就像所有的Eclipse Dialogs一样。这两个类都在JFace中,可在WBPro中使用。

您可以在“设计”选项卡中使用JFace小部件和查看器,但不能执行操作。但原因是Dialogs和子Windows没有工具栏或菜单栏,我认为这就是为什么它们不在调色板中,但如果你有一个内部小部件的上下文菜单,我认为你应该自己实现。如果你愿意的话,我可以为你深入挖掘一下,如果还有什么需要解决,请告诉我。