雙桅漁船  
          漂泊,沒有終點
          日歷
          <2006年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234
          統計
          • 隨筆 - 5
          • 文章 - 0
          • 評論 - 3
          • 引用 - 0

          導航

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
           自己遇到了這方面問題,在瀚海星云上咨詢了一下,解決后總結了一下。現在收錄到自己的空間里:)
          前段時間為了使用jdt中的package explorer進行一個rcp程序的開發。在版面上進行了
          提問,得到了simon lei,pandawang 的熱情幫助,在此表示感謝。經過一番學習,在幾個論
          壇上問了一下,當時仍沒有找到解決方法(主要是使用package explorer時項目和文件
          夾的顯示問題),又看到rcp的faq中有reusable 的說法就得出不能在rcp中復用jdt組件
          的結論。實際上這個結論是錯誤的,只要提供相關的插件支持是可以重用jdt中組件的,
          我再一次重復這個問題是為了避免我那個回帖誤導別人。
          
          我在rcp的perspective中用addview加入package explorer是沒有問題的,之所以不能顯
          示項目名稱是因為沒有注冊相關的adapter。
          
          只要在workbenchadvisor中的initialize方法中加入:
          WorkbenchAdapterBuilder.registerAdapters();
          declareWorkbenchImages();
          就可以解決問題。WorkbenchAdapterBuilder是org.eclipse.ui.ide中的類,用
          registerAdapters方法注冊adapter后就可以正常顯示項目名稱以及文件夾名稱,但是這
          時候還不能顯示相關的圖標。
          declareWorkbenchImages()方法用來解決圖標的問題。
          實現如下:
          
          
          private void declareWorkbenchImages() {

                      
          final String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
                      final String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"//Enabled
          toolbar icons.//$NON-NLS-1$
                      final String PATH_ETOOL = ICONS_PATH + "etool16/"//Enabled toolbar
          icons.//$NON-NLS-1$
                      final String PATH_DTOOL = ICONS_PATH + "dtool16/"//Disabled
          toolbar icons.//$NON-NLS-1$
                      final String PATH_OBJECT = ICONS_PATH + "obj16/"//Model object
          icons//$NON-NLS-1$
                      final String PATH_WIZBAN = ICONS_PATH + "wizban/"//Wizard
          icons//$NON-NLS-1$

                      Bundle ideBundle 
          = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC, PATH_ETOOL
                                      
          + "build_exec.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_HOVER,
                              PATH_ETOOL 
          + "build_exec.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED,
                              PATH_DTOOL 
          + "build_exec.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC, PATH_ETOOL
                                      
          + "search_src.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_HOVER,
                              PATH_ETOOL 
          + "search_src.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_DISABLED,
                              PATH_DTOOL 
          + "search_src.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV, PATH_ETOOL
                                      
          + "next_nav.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV, PATH_ETOOL
                                      
          + "prev_nav.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_NEWPRJ_WIZ, PATH_WIZBAN
                                      
          + "newprj_wiz.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ,
                              PATH_WIZBAN 
          + "newfolder_wiz.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFILE_WIZ, PATH_WIZBAN
                                      
          + "newfile_wiz.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTDIR_WIZ,
                              PATH_WIZBAN 
          + "importdir_wiz.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTZIP_WIZ,
                              PATH_WIZBAN 
          + "importzip_wiz.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTDIR_WIZ,
                              PATH_WIZBAN 
          + "exportdir_wiz.gif"false); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTZIP_WIZ,
                              PATH_WIZBAN 
          + "exportzip_wiz.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ,
                              PATH_WIZBAN 
          + "workset_wiz.gif"false); //$NON-NLS-1$
                      
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG,
                              PATH_WIZBAN 
          + "saveas_wiz.gif"false); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT,
                              PATH_OBJECT 
          + "prj_obj.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT
                                      
          + "cprj_obj.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OPEN_MARKER,
                              PATH_ELOCALTOOL 
          + "gotoobj_tsk.gif"true); //$NON-NLS-1$

                      
          // task objects
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_HPRIO_TSK,
          PATH_OBJECT+"hprio_tsk.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_MPRIO_TSK,
          PATH_OBJECT+"mprio_tsk.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LPRIO_TSK,
          PATH_OBJECT+"lprio_tsk.gif");

                      declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_TASK_TSK,
                              PATH_OBJECT 
          + "taskmrk_tsk.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_BKMRK_TSK,
                              PATH_OBJECT 
          + "bkmrk_tsk.gif"true); //$NON-NLS-1$

                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_OBJS_COMPLETE_TSK, PATH_OBJECT
                                      
          + "complete_tsk.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_OBJS_INCOMPLETE_TSK, PATH_OBJECT
                                      
          + "incomplete_tsk.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM, PATH_OBJECT
                                      
          + "welcome_item.gif"true); //$NON-NLS-1$
                      declareWorkbenchImage(ideBundle,
                              IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER, PATH_OBJECT
                                      
          + "welcome_banner.gif"true); //$NON-NLS-1$

                      
          // synchronization indicator objects
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_WBET_STAT,
          PATH_OVERLAY+"wbet_stat.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_SBET_STAT,
          PATH_OVERLAY+"sbet_stat.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_CONFLICT_STAT,
          PATH_OVERLAY+"conflict_stat.gif");

                      
          // content locality indicator objects
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_NOTLOCAL_STAT,
          PATH_STAT+"notlocal_stat.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LOCAL_STAT,
          PATH_STAT+"local_stat.gif");
                     
          //declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_FILLLOCAL_STAT,
          PATH_STAT+"filllocal_stat.gif");
                  }


                  
          /**
                   * Declares an IDE-specific workbench image.
                   * 
                   * 
          @param symbolicName the symbolic name of the image
                   * 
          @param path the path of the image file; this path is relative to the base
                   * of the IDE plug-in
                   * 
          @param shared <code>true</code> if this is a shared image, and
                   * <code>false</code> if this is not a shared image
                   * 
          @see IWorkbenchConfigurer#declareImage
                   
          */

                  
          private void declareWorkbenchImage(Bundle ideBundle, String symbolicName,
                          String path, 
          boolean shared) {
                      URL url 
          = Platform.find(ideBundle, new Path(path));
                      ImageDescriptor desc 
          = ImageDescriptor.createFromURL(url);
                      getWorkbenchConfigurer().declareImage(symbolicName, desc, shared);
                  }

          由于jdt是在為ide服務的,所以在重用組件時遇到的問題應該可以在eclipse源碼中找到 答案。
          posted on 2006-01-08 14:47 USTCEric 閱讀(1133) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © USTCEric Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 昌平区| 河间市| 涟水县| 英山县| 渝北区| 肇州县| 察隅县| 土默特左旗| 临城县| 仙居县| 万源市| 深水埗区| 五大连池市| 韶山市| 四会市| 崇左市| 渝北区| 庆云县| 将乐县| 镶黄旗| 藁城市| 高雄市| 桃源县| 鄂伦春自治旗| 闽清县| 涞水县| 正阳县| 原平市| 惠水县| 丹阳市| 江门市| 阿图什市| 郧西县| 务川| 宁海县| 千阳县| 武清区| 赤峰市| 清苑县| 包头市| 女性|