???我們在進行Eclipse插件開發過程中,可能經常會需要修改Eclipse的標題,把Title改為自己公司的產品名稱,我在網上查找了一些資料(“小小涼粉”在Eclipse社區提問的回復),加上自己的實踐總結出以下幾種方法:
1、可以通過獲取主程序的Shell來更改程序標題。
public static void changeAppTitle(String newTitle) {?
???Display display = Display.getDefault();?
???if (display != null) {?
??????Shell shells[] = display.getShells();?
??????for (int i = 0; i?<=shells.length();i++){
?????????Object data = shells .getData();?
?????????// 檢查shell是否為主程序的?shell:?
?????????if (data instanceof IWorkbenchWindow) {?
????????????// 更改主程序的標題文字
????????????shells .setText(newTitle);?
????????????break;?
?????????}?
??????}?
???}
}
2、通過重載WorkbenchWindowAdvisor 來實現
public class MyWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implements IPropertyChangeListener {?
???...?
???@Override?
???public void preWindowOpen() {?
??????super.preWindowOpen();?
??????_configurer = getWindowConfigurer();?
??????setTitle();?
??????PreferencesImpl.store().addPropertyChangeListener(this);?
???}?
???public void propertyChange(final PropertyChangeEvent event) {?
??????if (event.getProperty().equals(MY_PREFERENCE_KEY)) {?
?????????if (!event.getOldValue().equals(event.getNewValue())) {?
????????????setTitle();?
?????????}?
??????}?
???}?
???protected void setTitle() {?
??????final String title = computeNewTitleHoweverYouLike();?
??????_configurer.setTitle(title);?
???}?
???protected IWorkbenchWindowConfigurer _configurer;
}
3、通過修改Eclipse源代碼來實現
其實最簡單的方法就是直接修改源代碼,我把Eclipse3.1.2的org.eclipse.ui.ide_3.1.1.jar源碼進行了修改,只需修改org.eclipse.ui.internal.ide包中IDEWorkbenchWindowAdvisor.java類,在computeTitle()方法內增加一句話就OK了!
??? private String computeTitle() {
??????..........
????????// 在返回標題名稱之前,進行title的自定義設置
??????? title = "隨便你取什么名字:)";
??????? return title;???????
??? }
大家如果需要動態改變標題,請看“小小涼粉”的《動態改變RCP應用程序的標題》一文,地址為:
http://www.tkk7.com/dearwolf/archive/2006/12/13/87554.html