2011-05-12 100 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