為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,再看一部電影吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.