[英]Eclipse PDE - How to sort the Properties in the Standard Propeties view
我正在开发一个Eclipse 3.6插件,并且有一个包含TreeViewer
。 选择此TreeViewer
的项目后,其属性将显示在标准“属性”视图中。 默认情况下,属性按字母顺序排序。
我想以不同的方式订购这些房产。
似乎其他人也有这个问题:
http://www.eclipse.org/forums/index.php/m/393029/
默认生成的编辑器的“属性”视图中的属性按字母顺序排序。 我想问一下如何修改和排列不同的订单。
建议的解决方案是:
您的编辑器需要从getAdapter(Class)方法提供PropertySheetPage。 如果它没有提供,则属性表将使用默认的PropertySheetPage,它使用标准collator生成排序顺序。 您的getAdapter()方法需要提供PropertySheetPage的专用子类,以便为您设置排序器。
所以我需要setSorter
PropertySheetPage ,覆盖setSorter
方法,一切都应该没问题。
出现两个问题:
这个类可以实例化; 它不打算被子类化。
PropertySheetPage
的子类之间建立链接? TreeViewer
,当选择一个项目时它提供属性。 我遇到了同样的事情并找到了解决方案。
我所做的是在我所贡献的属性页面的id中添加一个排序序列前缀(基本上是一个3位数字),并创建一个ContributionComparator ,它获取id的前3位数并进行基本排序。
代码看起来像这样:
@Override
public int compare(IComparableContribution c1,
IComparableContribution c2) {
int result = super.compare(c1, c2);
IPluginContribution pc1 = (IPluginContribution)c1;
IPluginContribution pc2 = (IPluginContribution)c2;
String id1 = pc1.getLocalId().substring(0,3);
String id2 = pc2.getLocalId().substring(0,3);
result = id1.compareTo(id2);
return result;
}
然后,在我的WorkbenchAdvisor中 ,我重写了getComparitorFor方法,以实例化我在contribType是属性时创建的ContributionComparator:
@Override
public ContributionComparator getComparatorFor(String contributionType) {
ContributionComparator cc;
if (contributionType.equals(IContributionService.TYPE_PROPERTY)) {
cc = new MyContributionComparator();
} else {
cc = super.getComparatorFor(contributionType);
}
return cc;
}
现在,属性页按我希望的顺序显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.