2011-05-12 96 views
5

我需要自定义外观&感受我的RCP应用程序。我看了一下Eclipse Presentation API,我想它允许在工作台中自定义除控件之外的永久化。那么是否有解决方案来定制控件?我做了一些研究工作,并实施了一些使用控制画布绘制的SWT cunstomization。可能有更好的解决方案吗?在SWING中,您可以使用Synth主题。如果SWT存在一些“皮肤”框架,那将是非常糟糕的。 任何帮助,将不胜感激!eclipse外观和感觉定制

回答

6

自定义RCP应用程序的一种方法是使用plugin_customization.ini文件。像这样:

  1. 在项目的根目录下创建一个名为“plugin_customization.ini”的新文件。
  2. 如果您还没有这样做,请创建产品配置并定义产品。
  3. 在您的插件的清单编辑器中的“扩展”选项卡上,找到“org.eclipse.core.runtime.products”扩展,展开节点,右键单击您的产品节点,然后选择“新建>属性”上下文菜单。
  4. 在“name”字段中输入“preferenceCustomization”,在“value”字段中输入“plugin_customization.ini”。
  5. 从主菜单中选择“文件>保存”。

然后,您可以通过编辑plugin_customization.ini文件来自定义很多事情。例如,添加以下行

org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false 

会给你四舍五入你的视图和编辑器(类似于那些Eclipse IDE已经)选项卡,而不是默认的。
您可以在IWorkbenchPreferenceConstants javadoc中找到其他可以使用的常量。

另外,如果您还没有,请查看Eclipse skins项目。

也有可能性use CSS to change the look & feel of your app,但仍处于开发并可以马车

至于定制SWT控制自己,只有这样,才能做到这一点(除了小的定制,如更改背景控制的颜色等)是由creating your own custom controls by extending Canvas or Composite,但你已经知道。
请记住,SWT的重点在于使用本地控件,因此如果您希望完全自定义控件的能力,那么使用Swing可能是更好的选择。但是,如果您要使用Swing,则最好使用另一个RCP - 即NetBeans RCP。我还没有尝试过,但我知道虽然Eclipse RCP使用SWT作为小工具工具包,但NetBeans RCP依赖于Swing,因此可以帮助您避免关于兼容性问题等问题。

+0

谢谢你这样一个全面的答复。我更喜欢Eclipse RCP到NetBeans RCP,但在当前的解决方案中,我通过将Swing控件注入SWT表单来实现皮肤支持。这有点棘手,我想从应用程序中排除任何Swing依赖关系。我会尝试Eclipse皮肤项目。我认为,使用一些矢量渲染来实现SWT控件的皮肤支持可能是一个好主意? – 2011-05-12 14:19:40

+0

@Viktor Griffo - 很高兴帮助!正如我之前所说 - SWT控件是本机的,它们是由操作系统绘制的,所以对于它们看应用程序层的方式实际上没有太多可以做的事情。您只能自定义操作系统允许的内容。例如,您不能为Windows上的按钮设置背景图像,因为该操作系统不允许这样做。 – Sandman 2011-05-12 14:29:19

+0

是的,我明白了。我使用http://freshmeat.net/projects/rcptoolbox来定制控件。我想这些控件是在可定制的复合材料和画布上实现的? – 2011-05-12 14:46:23

2

新的Eclipse工作4包含插件,允许将L & F进行使用CSS进行定制。这些插件可以在3.7 Eclipse环境中运行。请参阅Kai的博客以获取有关此主题的演示文稿:http://www.toedter.com/blog/?p=477

Eclipse 4 Styling Tutorial有一张幻灯片(p.66),介绍从哪里获得基于3.7的RCP示例。

+1

大约10个月前,我看了一下Eclipse 4,以确定它是否可以用于我的项目。它看起来有点错误。 CSS样式是一个很好的解决方案,但我需要实现完全重新整理的GUI,如Swing Synth允许的那样。 – 2011-05-12 20:10:42