<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    雙桅漁船  
    漂泊,沒有終點
    日歷
    <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 閱讀(1131) 評論(0)  編輯  收藏

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


    網站導航:
     
     
    Copyright © USTCEric Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 最近的中文字幕大全免费版| 三上悠亚电影全集免费| 亚洲人成网站免费播放| 亚洲成a人片在线网站| 免费福利在线视频| 亚洲av最新在线网址| 最近免费mv在线观看动漫| 精品国产亚洲一区二区三区| 中文字幕高清免费不卡视频| 亚洲日韩精品无码专区网址| 国产一级a毛一级a看免费人娇| 亚洲综合色自拍一区| 国产成人AV片无码免费| 久久夜色精品国产噜噜噜亚洲AV| 国产婷婷成人久久Av免费高清 | 午夜视频在线在免费| 亚洲日本一线产区和二线产区对比| 成人毛片免费在线观看| 无码天堂va亚洲va在线va| 亚洲精品网站在线观看不卡无广告| 日本一区二区在线免费观看 | 亚洲av日韩综合一区久热| 亚洲第一网站男人都懂| 中文字幕视频免费在线观看| 亚洲国产精品久久久久婷婷软件 | 亚洲综合色成在线播放| 国产自国产自愉自愉免费24区| 久久亚洲精品AB无码播放| 四虎永久在线观看免费网站网址 | 亚洲一区二区三区国产精华液| 国产福利免费在线观看| 久久久精品国产亚洲成人满18免费网站| 亚洲真人无码永久在线| 久久精品国产免费观看三人同眠| 亚洲人成人网站18禁| 久久久久亚洲精品男人的天堂| 最近中文字幕免费2019| 国产成人综合亚洲一区| 亚洲av成人无码久久精品| 成人免费无码大片a毛片软件| 一道本不卡免费视频|