2016-03-15 88 views
0

我在RCP應用程序上工作並使用eclipse-css-feature也改變了應用程序的整體字體。但是在使用時,主視角中的表格元素不適應這些變化。在createPartControl(Composite)表中充滿了內容,並且每個人都調用了TableColumn.pack()。在將總體字體更改爲Verdana 9px之前,列總是足夠大以容納其內容,例如, 「我很長的文字很長」。但是,現在列僅顯示「我非常長的文本,我......」。在setFocus()-函數期間重新設置表格的內容(清除,填充和pack())似乎正在工作,但它也是一個非常糟糕的解決方法。另外,這並不能解決我必須等待第一次點擊才能完成的問題。Eclipse RCP CSS pack()不考慮新字體

如何在啓動時將我的應用程序正確地啓動到pack()表列?

這是我的CSS:

* { 
    font: Verdana 8px; 
    background-color: White; 
} 

回答

1

的問題是,CSS樣式不應用直到創建控件之後產生SWT.Skin事件。

因此,您需要在該事件後運行您的pack。一種方法是在createPartControl完成後使用Display.asyncExec運行您的包裝代碼。 asyncExecRunnable應該在SWT.Skin之後運行。

或者,您可以獲取CSS樣式引擎並強制樣式發生。在3.x兼容性視圖/編輯器中使用:

IStylingEngine engine = getSite().getService(IStylingEngine.class); 

engine.style(control);