1.在tabbedProperties(eclipse3.2以上支持)中,如果要建立一個treeview,且想要click任何一列都可以實現celledit,需要在創建treeview的時候加上style: SWT.FULL_SELECTION
2.tabbedProperties中section的大小現在無法做到根據widget的大小自動調整,目前只能用getMinimumHeight()返回一個固定值
ps: 今天找到更好的辦法了,只要用ISection的一個方法就可以了:shouldUseExtraSpace().看下它的注釋就完全明白了:
/**
* Determine whether this section would like extra height space in case
* there is some left. Normally this is true when the section is the last to
* be displayed on a tab or is the only section on a tab.
* @return <code>true</code> if this section would like extra height space.
*/
public abstract boolean shouldUseExtraSpace();
3.在build rcp程序的時候,要注意MANIFEST.MF文件中的require bundle.如果require的plugin不存在,那么很有可能出現插件已經installed但是沒有resolved的情況(HELP-->About-->Configuration details)
4.fd.setFilterNames(new String[]{"圖片文件(*.jpg *.ico)"});
fd.setFilterExtensions(new String[]{"*.jpg;*.ico"});
要在一個過濾器中指定多個文件,Eclipse的FileDialog沒有寫這個注釋,但SWT是直接封裝的操作系統控件,在windows下是用;分隔。
參見win API 中OPENFILENAME的說明。
lpstrFilter
指向一對以空字符結束的過濾字符串的一個緩沖。緩沖中的最后一個字符串必須以兩個NULL字符結束。
第一個字符串是過濾器描述的顯示字符串(例如,“文本文件”),第二個字符指定過濾樣式(例如,“*.TXT”)。要為一個顯示字符串指定多個過濾樣式,使用分號(“;”)分隔樣式(例如,“*.TXT;*.DOC;*.BAK”)。一個樣式字符串中可以包含有效的文件名字字符及星號(*)通配符。不能在樣式字符串中包含空格。
系統不能改變過濾器的次序。它按lpstrFilter指定的次序顯示在文件類型組合框中。
如果lpstrFilter是NULL,對話框不能顯示任何過濾器。
4.目前做的GEF項目需要在用戶direct edit的時候加上content assist,實現這個并不難,但是我發現用戶無法通過鼠標雙擊來選定一個proposal.這個問題困擾了我很久.后來才發現原來是textcelleditor給text安裝了一個focuslost listener,所以當你單擊或雙擊content assist popup的時候,text的focus就lost了,就會調用focuslost方法.目前的解決辦法是override focuslost方法,讓它為空,雖然不是很完美的解決方案,但是至少可以讓用戶通過鼠標來選擇proposal了
5.還是在GEF中,我用的是tabbedproperty來實現屬性視圖.property section有一個filter屬性,你可以用一個實現了IFilter的接口,來判斷這個section是否應該在選中了一個node或connection后顯示