為RCP程式添加導航Navigator視圖鵬)
來源:互聯網
上載者:User
為RCP程式添加導航Navigator視圖為了在RCP中使用eclipse內建的導航視圖,又是折騰了半天,總算把它弄出來了! 首先在透視圖Perspective類中添加如下內容: // 左側視圖
IFolderLayout leftTopFolder = layout.createFolder("LEFTTOP", IPageLayout.LEFT, 0.24f, editorArea);
// leftTopFolder.addView(Navigate.ID);
leftTopFolder.addView(IPageLayout.ID_RES_NAV); 啟動程式這時候發現導航視圖出來了,心中不禁一陣高興,搞了半天發現根本沒辦法使用,不顯示任何內容。接著又在ApplicationWorkbenchAdvisor類的createWorkbenchWindowAdvisor()方法中添加了如下內容: //要org.eclipse.ui.views和org.eclipse.ui.ide的依賴WorkbenchAdapterBuilder.registerAdapters(); 靠他居然出來了!不過還是沒有差了麼一點點,有些表徵圖丟失.百度了一下,這回關於這個問題的文章還真不少。還是在ApplicationWorkbenchAdvisor類中添加如下代碼: public void postStartup() {
try {
IWorkbenchPage activePage = this.getWorkbenchConfigurer()
.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart view = activePage
.showView("org.eclipse.ui.views.ResourceNavigator");
ResourceNavigator navigator = ((ResourceNavigator) view); navigator.getViewer()
.setLabelProvider(new NavigatorLabelProvider()); } catch (Exception e) {
//
}
} 接著建立新類NavigatorLabelProvider.java public class NavigatorLabelProvider extends LabelProvider { public Image getImage(Object element) {
ImageDescriptor img0 = ImageDescriptor.createFromFile(ImageShop.class,
"icons/treeview_.gif");
ImageDescriptor img1 = ImageDescriptor.createFromFile(ImageShop.class,
"icons/subprocess.gif");
ImageDescriptor img2 = ImageDescriptor.createFromFile(ImageShop.class,
"icons/route.gif"); Image image = null;
String text = element.toString();
System.out.println(text);
if (text.startsWith("P/", 0)) {
image = ImageShop.getInstance().getImage(img0);
}
if (text.startsWith("F/", 0)) {
image = ImageShop.getInstance().getImage(img1);
}
if (text.startsWith("L/", 0)) {
image = ImageShop.getInstance().getImage(img2);
}
return image;
} public String getText(Object element) {
String text = element.toString();
text = text.substring(2, text.length());
int pos = text.indexOf("/");
if (pos == -1) {
return text;
} else {
if (text.endsWith(".project")) {
return "YourName";
} else {
text = text.substring(pos + 1, text.length());
}
}
return text;
}
} OK!到這裡基本滿足要求,不過總是有個.project的東西在那裡,咋瞅咋不順,只好再添加一個過濾器來擺平他。找到plugin.xml檔案加入: <extension
point="org.eclipse.ui.ide.resourceFilters">
<filter
pattern="*.project"
selected="true"/>
</extension> 大功搞成!看了一下time :剛23:29,再看一部電影吧。