如何在RCP中正确加入project explorer view

原创,转载请注明出处。

今天都在折腾project explorer,主要是在RCP里加入project explorer以后,不能正常显示,同时刷新的时候又清空那个view,非常奇怪。

最后按照eclipse.org的help的指导设置成功,
http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/cnf.htm

主要是要在自己的WorkbenchAdvisor类里面重写的initialize(IWorkbenchConfigurer configurer)的方法。

 1       public   void  initialize(IWorkbenchConfigurer configurer) {
 2          IDE.registerAdapters();
 3           final  String ICONS_PATH  =   " icons/full/ " ;
 4           final  String PATH_OBJECT  =  ICONS_PATH  +   " obj16/ " ;
 5          Bundle ideBundle  =  Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
 6          declareWorkbenchImage(configurer, ideBundle,
 7                  IDE.SharedImages.IMG_OBJ_PROJECT, PATH_OBJECT  +   " prj_obj.gif " ,
 8                   true );
 9          declareWorkbenchImage(configurer, ideBundle,
10                  IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT
11                           +   " cprj_obj.gif " true );
12 
13           super .initialize(configurer);
14          configurer.setSaveAndRestore( true );    
15      }
16 
17       private   void  declareWorkbenchImage(IWorkbenchConfigurer configurer_p,
18              Bundle ideBundle, String symbolicName, String path,  boolean  shared) {
19          URL url  =  ideBundle.getEntry(path);
20          ImageDescriptor desc  =  ImageDescriptor.createFromURL(url);
21          configurer_p.declareImage(symbolicName, desc, shared);
22      }

然后是覆盖getDefaultPageInput方法如下

1  @Override
2  public  IAdaptable getDefaultPageInput() {
3           return  ResourcesPlugin.getWorkspace().getRoot();
4       }


这次得到的教训就是以后有什么问题首先查询eclipse.org,要不浪费太多时间了。

你可能感兴趣的:(如何在RCP中正确加入project explorer view)