无痕客

落花无情,流水无痕……

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

RCP开发中,很多开发人员都希望,自己的RCP应有Welcome页面,因此我们配置了intro扩展点以及introconfig扩展点,也写 了xml文件,这样我们就有了Welcome页面。但是Welcome只有在RCP应用程序第一次运行时才会显示,以后都不会显示。
为什么会这样?
看看插件运行时环境中的.metadata/.plugins/org.eclipse.core.runtime/.settings目录下的org.eclipse.ui.prefs文件中的内容:

  1. PrefUtil.getAPIPreferenceStore().setValue(
  2. IWorkbenchPreferenceConstants.SHOW_INTRO, false); 
  3. PrefUtil.saveAPIPrefs();

第一次运行以后就会产生此文件,内容中就定义了showIntro=false,为了测试,我们修改了showIntro=true,再此运行Welcome再次出现,但是org.eclipse.ui.prefs文件被更新,内容被修改。
一定是Eclipse在运行后对org.eclipse.ui.prefs进行了修改,知道这个就好好了~我们找到了这句:

如何使RCP应用程序每次打开都显示Welcome页面 

在ApplicationWorkbenchWindowAdvisor中增加方法:

  1. @Override
  2. publicvoidpostWindowClose() {
  3. super.postWindowClose();
  4. PrefUtil.getAPIPreferenceStore().setValue(
  5. IWorkbenchPreferenceConstants.SHOW_INTRO,true);
  6. PrefUtil.saveAPIPrefs();
  7. }

 

IPreferenceStore  Activator.getDefault().getPreferenceStore()  或 PrefUtil.getAPIPreferenceStore();

得到tPreference的存储数据。

PreferenceManager  pm=  window.getWorkbench().getPreferenceManager()

得到tPreference 左边树的信息。这些信息说白了就是Preference扩展点的信息。

 

参考:

http://blog.csdn.net/zfinch/article/details/5862986

http://lizhensan.iteye.com/blog/1124401
http://www.vogella.de/articles/EclipsePreferences/article.html
 


posted on 2012-03-29 13:09  无痕客  阅读(1073)  评论(0编辑  收藏  举报