参考了这里:http://lggege.javaeye.com/blog/246950
Properties视图的属性项目,默认是以字母顺序排序的,而且不能直接定义排序。
(1)需要自己做一个PropertySheetPage的子类,重新定义排序方法。
import org.eclipse.ui.views.properties.IPropertySheetEntry; import org.eclipse.ui.views.properties.PropertySheetPage; import org.eclipse.ui.views.properties.PropertySheetSorter;
public class XXXPropertySheetPage extends PropertySheetPage {
public XXXPropertySheetPage() { //重新定义排序,直接返回0,即相等,则属性项目会按添加顺序显示。 this.setSorter(new PropertySheetSorter() { public int compare(IPropertySheetEntry entryA, IPropertySheetEntry entryB) { return 0; } public int compareCategories(String categoryA, String categoryB) { return 0; } }); } }
上例直接返回0了,这样就按添加的顺序显示了。可以根据需要修改排序方法。
(2)在Editor的getAdatper方法,返回该子类。如果你不是在做Editor,那俺不晓得喽。
public Object getAdapter(Class type) { //如果是Property视图 if (type == IPropertySheetPage.class){ //每个打开的编辑器窗口,只会访问这里一次,所以直接new一个返回就行。 return new DataRowPropertySheetPage(); }
//其他的,让super去找吧 return super.getAdapter(type); }
原来getAdapter方法就是返回各种自定义视图对象的呀。
(3)搞定了。
|