﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-eagle-文章分类-eclipse RCP</title><link>http://www.blogjava.net/eagle-daiq/category/40091.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 18 Jun 2009 08:51:22 GMT</lastBuildDate><pubDate>Thu, 18 Jun 2009 08:51:22 GMT</pubDate><ttl>60</ttl><item><title>RCP 常见问题学习总结</title><link>http://www.blogjava.net/eagle-daiq/articles/280276.html</link><dc:creator>月下孤城</dc:creator><author>月下孤城</author><pubDate>Fri, 05 Jun 2009 13:54:00 GMT</pubDate><guid>http://www.blogjava.net/eagle-daiq/articles/280276.html</guid><wfw:comment>http://www.blogjava.net/eagle-daiq/comments/280276.html</wfw:comment><comments>http://www.blogjava.net/eagle-daiq/articles/280276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eagle-daiq/comments/commentRss/280276.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eagle-daiq/services/trackbacks/280276.html</trackback:ping><description><![CDATA[<p>网站推荐：<br />
1.一个java方面的博客，里面有很多eclipse的笔记:<br />
http://liugang594.javaeye.com/category/24822<br />
http://wokanxing.info/2007/05/undo-support-in-rcp/(user:eagle00001)</p>
<p>一、Eclipse Product导出产品发生中文乱码解决方法？<br />
&nbsp;&nbsp;&nbsp; 在build.properties文件中加上&#8220;javacDefaultEncoding..=UTF-8&#8221;。</p>
<p>二、让rcp开发的产品或插件在每次启动程序时保持最后退出状态，如何实现?<br />
&nbsp;&nbsp;&nbsp; 在ApplicationWorkbenchAdvisor.class类中重构<br />
&nbsp;&nbsp;&nbsp; public void initialize(IWorkbenchConfigurer configurer) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //以下是新增代码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //是否保存最后程序窗口状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configurer.setSaveAndRestore(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; 三、Eclispe Application样式设置(垃圾回收器显示、特效效果、tab页面流线显示)?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在ApplicationWorkbenchAdvisor中添加</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void initialize(IWorkbenchConfigurer configurer) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPreferenceStore preStore = PlatformUI.getPreferenceStore();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示特效<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //preStore.setDefault(IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //不显示传统tab样式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; preStore.setDefault(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在状态栏是否显示垃圾回收器功能<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; preStore.setDefault(IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;四、 为Action添加Command命令、在Command命令binding快捷键、并在PreferencePage系统属性中统一设置Command和&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Key的映射。&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml文件设置Section如下所示：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; //声明应用'首选项'配置页面<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point="org.eclipse.ui.preferencePages"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //首选项一般系统参数设置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;page<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="rcpdemo.preferences.GeneralPreferencePage"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="rcpdemo.preferences.GeneralPreferencePage"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="General"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/page&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在首选项页面中添加应用全局Action快捷键设置页面<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;page<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="org.eclipse.ui.internal.keys.NewKeysPreferencePage"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="rcpdemo.preferences.keys"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Keys"/&gt;<br />
&nbsp;&nbsp; &lt;/extension&gt;<br />
&nbsp;&nbsp; &lt;extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point="org.eclipse.core.runtime.preferences"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;initializer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="rcpdemo.preferences.PreferenceInitializer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/initializer&gt;<br />
&nbsp;&nbsp; &lt;/extension&gt;<br />
&nbsp;&nbsp;&nbsp; //声明action命令&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; &lt;extension<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point="org.eclipse.ui.commands"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //命令分类目录声明<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description="Generic Commands Category"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="rcpdemo.genericCmdCategory"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="常用命令目录"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**命令声明:id对应相应Action类中的唯一标志id.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 注意：通过映射了key的Action在ApplicationActionBarAdvisor.java中的makeActions方&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 法中一定要通过register方法注册该Action.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;command<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; categoryId="rcpdemo.genericCmdCategory"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description="CustomerViewActionCommand"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="rcpdemo.actions.CustomerViewAction"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="客户视图命令"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //key绑定commandId指定的Command.keySequence指定命令快捷键,其中<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //M是对键盘功能键跨系统平台的通用处理(M1：Ctrl;M2: Shift;M3:Alt). <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;keyBinding<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; commandId="rcpdemo.actions.CustomerViewAction"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keySequence="M1+M2+A"/&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;keyBinding<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; commandId="org.eclipse.ui.file.exit"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keySequence="M1+Q"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; &lt;/extension&gt;</p>
<p>&nbsp;&nbsp;&nbsp;<br />
&nbsp;五、RCP中一些可重用的Actions、pages、views。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.重用的Actions可在ActionFactory类中找到。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.重用的pages、views可在ExtensionFactory类中找到。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;extension point="org.eclipse.ui.views"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;view<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="org.eclipse.ui.ExtensionFactory:progressView"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icon="icons/progress.gif"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="org.eclipsercp.hyperbola.views.progress"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Progress"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/extension&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上是在plug-in.xml中引用的配置信息。其中view节点的class属性:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "org.eclipse.ui.ExtensionFactory:progressView"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -----'org.eclipse.ui.ExtensionFactory':ExtensionFactory类路径。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -----'progressView':ExtensionFactory类中对应静态熟悉值propressView.</p>
<img src ="http://www.blogjava.net/eagle-daiq/aggbug/280276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eagle-daiq/" target="_blank">月下孤城</a> 2009-06-05 21:54 <a href="http://www.blogjava.net/eagle-daiq/articles/280276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>