2012-03-08 38 views
4

我正在使用eclipse/windowbuilder pro编写JFace独立应用程序。 Windowbuilder是一个很好的工具,但我无法找到有关这种应用程序组织结构的信息。swt设计器中的windowbuilder jface动作

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

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

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

任何提示和/或阅读材料解释标准JFace设计大型应用程序将不胜感激!

回答

0

我一直在使用WBPro大约6到7年的时间......我想我们可以谈谈你的问题。我可能无法完全回答你的问题,但我会尽我所能。因此,首先,对于您的子窗口,您应该使用JFace对话框。您可以从New> Other> WbPro> JFace> Dialog创建一个模板,或者只是自己创建一个模板。你也可以使用TitleAreaDialog,它比较酷,并且在顶部有一个标题栏,就像所有的Eclipse对话框一样。这两个类都在JFace中,并可在WBPro中使用。

您在设计选项卡中提供了JFace窗口小部件和查看器,但不包含这些操作。但其原因是对话框和子窗口没有工具栏或菜单栏,我想这就是为什么他们不在调色板中,但如果你有一个内部小部件的上下文菜单,我认为你应该实施你自己。如果你愿意,我可以深入一点,告诉我是否还有需要解决的问题。