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后显示