2011-03-24 141 views
1

在Eclipse RCP Apllication中,我想向工具欄添加一個文本小部件,當用戶更改應用程序窗口的大小時會動態更改文本小部件。我創建了一個ControlContribution並將其添加到plugin.xml中的菜單擴展點。在Eclipse工具欄中添加可調整大小的文本

ControlContribution由包含文本的Composite組成。複合材料的佈局設置爲網格佈局,文本的佈局數據是一個網格數據,可以抓取多餘的水平空間。

但是,文本始終保持相同的大小。我還檢查了是否在通過向其添加偵聽器來調整工具欄大小時通知組合。聆聽者從不被調用。 如何獲取文本的大小?從ControlContribution的createControl()方法

代碼:

Composite composite = new Composite(parent, SWT.NONE); 
composite.setLayout(new GridLayout()); 

text = new Text(composite, SWT.SINGLE | SWT.BORDER); 
GridData gridDataText = new GridData(); 
gridDataText.grabExcessHorizontalSpace = true; 
gridDataText.horizontalAlignment = GridData.FILL; 
text.setLayoutData(gridDataText); 

回答

1

控制貢獻是CoolBar欄中內部。所以除非Coolbar佔用更多的空間,否則這個貢獻不會變大。您需要先掌握Coolbar(當您正在創建控件時,請通過父級層次結構),然後更改其大小並更新整個佈局