[英]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.