﻿<?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-子非鱼-随笔分类-eclipse</title><link>http://www.blogjava.net/GEF/category/22149.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 15 Sep 2011 21:52:55 GMT</lastBuildDate><pubDate>Thu, 15 Sep 2011 21:52:55 GMT</pubDate><ttl>60</ttl><item><title>jboss server view找不到</title><link>http://www.blogjava.net/GEF/archive/2011/09/15/358733.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Thu, 15 Sep 2011 10:40:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2011/09/15/358733.html</guid><wfw:comment>http://www.blogjava.net/GEF/comments/358733.html</wfw:comment><comments>http://www.blogjava.net/GEF/archive/2011/09/15/358733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/GEF/comments/commentRss/358733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GEF/services/trackbacks/358733.html</trackback:ping><description><![CDATA[<div><br />eclipse瘦身后发现jboss server view找不到<br /><br />原因: org.jboss.ide.eclipse.as.feature中定义:<br /><br />&nbsp;&lt;requires&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;import plugin="org.eclipse.wst.server.ui.doc.user"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />&lt;/requires&gt;<br /><br />该doc插件包在瘦身时被干掉了,导致jbossideplugin未正常加载,恢复该包即可</div><img src ="http://www.blogjava.net/GEF/aggbug/358733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2011-09-15 18:40 <a href="http://www.blogjava.net/GEF/archive/2011/09/15/358733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse.ini内存设置各参数含义（转）</title><link>http://www.blogjava.net/GEF/archive/2009/03/28/262575.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Sat, 28 Mar 2009 03:54:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2009/03/28/262575.html</guid><wfw:comment>http://www.blogjava.net/GEF/comments/262575.html</wfw:comment><comments>http://www.blogjava.net/GEF/archive/2009/03/28/262575.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/GEF/comments/commentRss/262575.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/GEF/services/trackbacks/262575.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/GEF/archive/2009/03/28/262575.html'>阅读全文</a><img src ="http://www.blogjava.net/GEF/aggbug/262575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2009-03-28 11:54 <a href="http://www.blogjava.net/GEF/archive/2009/03/28/262575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 快捷键定制（转）</title><link>http://www.blogjava.net/GEF/archive/2008/10/06/232671.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Mon, 06 Oct 2008 07:18:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2008/10/06/232671.html</guid><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">转自：http://lemon.javaeye.com/blog/51480<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.blogjava.net/fhawk/archive/2007/01/16/28993.html<br style="font-family: " />
<span style="color: #0000ff">利用IKeyBindingService接口为Action绑定快捷键：</span><br style="font-family: " />
<br style="font-family: " />
<font style="font-family: " size="2">1、<br style="font-family: " />
设置commands extension</font></span><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">extension<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">point&nbsp;</span><span style="color: #0000ff">=&nbsp;"org.eclipse.ui.commands"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;activeKeyConfiguration项用来说明所绑定快捷键的初始设置&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">activeKeyConfiguration&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="org.eclipse.ui.defaultAcceleratorConfiguration"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;如果快捷键设置有多套，可以添加多个类别&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">category<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="intelliPlatform.Category1"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description</span><span style="color: #0000ff">="Test&nbsp;description"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id</span><span style="color: #0000ff">="intelliPlatform.Category1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;其中id为这个command的ID，相关的action通过这个ID标志找到这个command&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">command<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="intelliPlatform.command.DataSource"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;category</span><span style="color: #0000ff">="intelliPlatform.Category1"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description</span><span style="color: #0000ff">="数据源配置"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id</span><span style="color: #0000ff">="com.longtop.intelliplatform.ide.project.commands.DataSource"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;具体的快捷键设置，其中command指定实际的coomand的ID&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">keyBinding<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">command</span><span style="color: #0000ff">="com.longtop.intelliplatform.ide.project.commands.DataSource"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configuration</span><span style="color: #0000ff">="org.eclipse.ui.defaultAcceleratorConfiguration"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keySequence</span><span style="color: #0000ff">="Ctrl+Shift+D"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">extension</span><span style="color: #0000ff">&gt;</span></div>
<span style="font-size: 10pt; font-family: Verdana">&nbsp;以上是设置了plugin.xml中command extension，并指定了keybinding，在keybinding中<br />
&nbsp;的keysequence中的字符串是设置的快捷键。&nbsp;<br />
<br />
------------<br />
<br />
在具体的Action配置中，只要在其属性definitionId设置成command的ID即可，示例如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">action<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #ff0000">label</span><span style="color: #0000ff">="Sample&nbsp;Action"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;icon</span><span style="color: #0000ff">="icons/sample.gif"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;class</span><span style="color: #0000ff">="cli.bacchus.portal.ui.actions.BacchusAction"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;tooltip</span><span style="color: #0000ff">="Hello,&nbsp;Eclipse&nbsp;world"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;menubarPath</span><span style="color: #0000ff">="sampleMenu/sampleGroup"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;toolbarPath</span><span style="color: #0000ff">="sampleGroup"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;id</span><span style="color: #0000ff">="bacchus.portal.ui.actions.BacchusAction"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;definitionId</span><span style="color: #0000ff">="com.longtop.intelliplatform.ide.project.commands.datesource"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span></div>
<br />
注意：当给相关的action设置完definitionID后，必须保证其中设置的command是有的，而且是正确的，否则有可能导致该action显示不出来。<br />
更具体的信息请参考eclipse开发参考中关于扩展点org.eclipse.ui.commands的详细描述。<br />
<br />
------------<br />
<br />
2、<br />
<font size="2">&nbsp;建立Acion,在此建立的action可以是实现IAction接口的任何类。比较方便的是继承<br />
&nbsp;org.eclipse.jface.Action，然后在新类中覆盖父类的run（） 方法.</font></span><font size="2"><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_39_198_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_198_Open_Text.style.display='none'; Codehighlighter1_39_198_Closed_Image.style.display='inline'; Codehighlighter1_39_198_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_39_198_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_198_Closed_Text.style.display='none'; Codehighlighter1_39_198_Open_Image.style.display='inline'; Codehighlighter1_39_198_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CopyAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Action</span><span id="Codehighlighter1_39_198_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_39_198_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_63_195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_63_195_Open_Text.style.display='none'; Codehighlighter1_63_195_Closed_Image.style.display='inline'; Codehighlighter1_63_195_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_63_195_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_63_195_Closed_Text.style.display='none'; Codehighlighter1_63_195_Open_Image.style.display='inline'; Codehighlighter1_63_195_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;CopyAction()</span><span id="Codehighlighter1_63_195_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_63_195_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;setId(</span><span style="color: #000000">"</span><span style="color: #000000">org.example.copyaction</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;setActionDefinitionId(</span><span style="color: #000000">"</span><span style="color: #000000">com.longtop.intelliplatform.ide.project.commands.DataSource</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;}</span></span></div>
<span style="font-size: 10pt; font-family: Verdana"><br />
3、<br />
在创建CopyAction的instance之后，将copyActionInstance用IKeyBindingService绑定到<br />
指定的command。<br />
获得IKeyBinddingservice的一种简单方式为：<br />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">IKeyBindingService&nbsp;keyBindingService&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getKeyBindingService();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />keyBindingService.registerAction(copyActionInstance);</span></div>
<br />
<span style="font-size: 10pt; font-family: Verdana"><font size="2"><br />
</font><font size="2">注意：<br />
1、action的definitionid和command定义的id必须一致。<br />
2、当指定的keySequence与系统默认的冲突时，如：在窗体的菜单栏中<br />
指定了Edit-&gt;Copy(默认的快捷键为Ctrl+C),若将上面的keySequence改为<br />
M1+C(Ctrl+C)则系统默认的快捷键(Ctrl+C)将更改为Ctrl+Insert。即RCP默认<br />
的为用户指定的优先，系统动态更新。<br />
3、IKeyBindingService指定的快捷键是有作用范围的。<br />
<br />
<br />
<br />
<br />
<span style="color: #0000ff">为主菜单绑定快捷键</span><br />
<br />
主菜单的快捷键即为 Alt + 菜单名称中带下划线的字母<br />
定义主菜单快捷键只要在主菜单lable中确定的字母前面加上&amp;字符即可<br />
如：<br />
plugin.properties&nbsp; menulabel = &amp;Intelliplatform<br />
plugin_zh.properties menulabel = 平台(&amp;I)<br />
（注意：在该label引用的properties国际化文件中加，直接在plugin.xml中加好像无效，此处存疑）</font></span></font> 
<img src ="http://www.blogjava.net/GEF/aggbug/232671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2008-10-06 15:18 <a href="http://www.blogjava.net/GEF/archive/2008/10/06/232671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有关插件工程构建和打包的问题</title><link>http://www.blogjava.net/GEF/archive/2008/02/20/180773.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Wed, 20 Feb 2008 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2008/02/20/180773.html</guid><description><![CDATA[<br />
<span style="color: #333399">打包时过滤文件<br />
</span><br />
<span style="font-family: Verdana">在build.properties中的bin.excludes加入要过滤的文件<br style="font-family: " />
（例如：过滤jar包中所有文件夹下的CC配置文件.copyarea.db，应该填写 bin.excludes = **/.copyarea.db ）</span><br />
<br />
<br />
<span style="color: #333399">构建时过滤文件</span><br />
<p>&nbsp;</p>
<p><span style="font-family: Verdana">Properties -&gt; Java Compiler -&gt; Building</span></p>
<p><span style="font-family: Verdana">勾选Enable project specific settings, 在Output folder栏的Filtered Resources中填写你要过滤的文件&nbsp;&nbsp; （例如：过滤bin目录中所有文件夹下的CC配置文件.copyarea.db，应该填写 *.copyarea.db）</span></p>
<br />
<img src ="http://www.blogjava.net/GEF/aggbug/180773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2008-02-20 10:10 <a href="http://www.blogjava.net/GEF/archive/2008/02/20/180773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse奇技淫巧</title><link>http://www.blogjava.net/GEF/archive/2007/08/29/140922.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Wed, 29 Aug 2007 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2007/08/29/140922.html</guid><description><![CDATA[<a id="_32afb273341c_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/eclipshine/archive/2005/09/22/13776.html">一个在RCP中快速打开文件的小技巧</a><br />
<span style="font-family: Verdana">一个在RCP中快速打开文件的小技巧，例如，在Word中打开一个Word文档，或者在Acrobat中打开一个PDF文件。<br />
这可以通过SWT的org.eclipse.swt.program.Program类来实现：<br />
<br />
&nbsp;&nbsp;&nbsp; String filename = "myword.doc";<br />
&nbsp;&nbsp;&nbsp; Program.launch(filename);<br />
<br />
这个类还提供了其他一些有用的方法，例如得到某一特定扩展名对应的可执行程序，甚至得到这个可执行程序的图标。<br />
转自（</span><a href="http://www.blogjava.net/eclipshine/">http://www.blogjava.net/eclipshine/</a>） <br />
<br />
<br />
<span style="font-family: Verdana"><span style="color: #333399"><span style="font-family: Verdana">文件系统不同步问题resource is out of sync with the file&nbsp; system的解决办法(转)</span></span><br style="font-family: " />
在eclipse中，启动run on server时报错：<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">Resource is out of sync with the file system: <br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '/Test_1_Struts_Spring_Hibernate/WebContent/WEB-INF/.struts-config.xml.strutside'.<br style="font-family: " />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查阅资料后发现这是文件系统不同步的问题，是因为在eclipse之外对工程中的resource进行修改引起的；但是，有时没有在eclipse之外进行修改，也会报类似的错误。<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决办法：需要手动刷新一下资源管理器。<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）在eclipse中，工程目录右键，选择F5（refresh）<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （2）设置eclipse自动刷新。<br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过Window-&gt;Preferences-&gt;General-&gt;Workspace，选中Refresh <br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; automatically。</span> <br />
<br />
<br />
<span style="color: #0000ff; font-family: Verdana"><span style="color: #333399"><span style="font-family: Verdana">将Eclipse中的插件包导入成源码工程</span><br />
</span></span><span style="font-family: Verdana">打开Eclipse的PDE的Plug-ins视图，可以列出当前eclipse下（包括workspace中）的所有插件，可以将某一插件导入成工程(右键Import as-&gt;Source Project)</span> <br />
<br />
<p><span style="font-family: Verdana"><span style="color: #0000ff"><span style="font-family: Verdana">删除eclipse的configuration目录导致eclipse无法启动的解决办法</span></span> <br />
这是由于equinox可以创建 configuration目录，但是无法自己创建config.ini文件。在启动eclipse的时候，需要用到config.ini中的配置内容。 <br />
删除了configuration后，启动eclipse会自动重建configuration目录。<br />
然后可以自己在configuration目录下新建一个config.ini文件，增加以下五行内容到config.ini文件中。</span></p>
<p><span style="font-size: 10pt; font-family: Verdana">osgi.splashPath = platform:/base/plugins/org.eclipse.platform<br />
osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start<br />
eclipse.product=org.eclipse.sdk.ide<br />
osgi.instance.area.default=@user.home/workspace<br />
eof=eof</span></p>
<p><span style="font-family: Verdana">保存文件后，重新启动eclipse就没有问题了</span></p>
<br />
<span style="color: #0000ff; font-family: Verdana">IFile点滴</span><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">取得IFile文件的绝对路径</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;path</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ifile.getLocation().makeAbsolute().toFile().getAbsolutePath();&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IFile转File</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">iFile.getLocation().toFile();</span></div>
<br />
<span style="color: #0000ff">在New菜单组里添加一项</span><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">extension<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">point</span><span style="color: #0000ff">="org.eclipse.ui.perspectiveExtensions"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">perspectiveExtension<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">targetID</span><span style="color: #0000ff">="org.eclipse.jdt.ui.JavaPerspective"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">newWizardShortcut&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="XX.WebProjectWizard"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">perspectiveExtension</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">extension</span><span style="color: #0000ff">&gt;</span></div>
<br />
其中：如果设置targetID = <span style="color: #ff0000">*</span> 表示应用到所有透视图 <br />
<br />
<p><span style="font-family: Verdana">java web工程报错 Java compiler level does not match the version of the installed Java project facet </span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">这个是因为Facted Project中的Java版本设定与项目的Java版本设定不一致。<br />
解决方法1：<br />
eclipse 加vm参数&nbsp; 如<br />
创建一个快捷方式，设定目标位置为 D:\eclipse_jee\eclipse.exe -vm D:\Java\jdk1.5.0_10\bin\javaw<br />
<br />
<br />
<strong>Eclipse插件项目运行调试报内存溢出的解决</strong><br />
<br />
</p>
<p>插件调试时内存溢出 ，调优JVM参数，增加内存：</p>
<p>-Xms64m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128M -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError</p>
(有关JVM参数调优讲解可参考：<font face="Verdana" size="2"><a href="http://niyunjiu.javaeye.com/blog/337266">http://niyunjiu.javaeye.com/blog/337266</a></font>)</span></span> <br />
<br />
Eclipse WorkSet<br />
将所有的已有的项目引入到工作区后，显示在一个文件夹下。<br />
&nbsp;<br />
Show -&gt; Working Sets -&gt; create a working set -&gt; select all projects -&gt; ok<br />
&nbsp;<br />
这样，在eclipse工作区中，所有的项目将以Working Set来显示。
<img src ="http://www.blogjava.net/GEF/aggbug/140922.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2007-08-29 15:01 <a href="http://www.blogjava.net/GEF/archive/2007/08/29/140922.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)Eclipse快捷键</title><link>http://www.blogjava.net/GEF/archive/2007/08/02/134089.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Thu, 02 Aug 2007 10:27:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2007/08/02/134089.html</guid><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">F2: 类或者方法，查看注释。<br />
<span style="color: red">F3</span>: 类或者方法，查看源码（同：Ctrl+鼠标左键）<br />
F4: 类，查看在类库中的继承层次。<br />
F5：调试时单步跳入。<br />
F6：调试时单步跳过。<br />
F8：调到下一个断点，如果没有，则执行完毕。<br />
F11：快速运行最新运行过的程序（调试状态）。<br />
F12：激活编辑器。<br />
<strong>Ctrl + Shift + G</strong>: 类或者方法，查看在其它地方的用法。<br />
Ctrl + Shift + T: 打开按名称查找类的对话框。<br />
Ctrl + Shift + R：打开资源对话框。<br />
Ctrl + Shift + F: 代码格式化。<br />
<strong>Ctrl + Shift + O</strong>: 快速导入import的包。<br />
Ctrl + Shift + L：显示当前平台的全部快捷键。<br />
Shift + Alt + R: 类或方法、变量，重命名<br />
<strong>Ctrl + T</strong>: 方法，查看实现该方法的类及其父类。<br />
Ctrl + O: 查看当前编辑器中打开的类中定义的方法。<br />
Ctrl + J: 在编辑器中查找某个字符串，然后"Ctrl + K",查找下一个。<br />
Ctrl + D: 删除当前光标所在的一行。<br />
Ctrl + F：打开"Find/Replace"对话框。<br />
Ctrl + H：打开&#8220;Search&#8221;对话框。<br />
Ctrl + L：打开&#8220;Go to Line&#8221;对话框。<br />
Ctrl + N：打开New Wizard对话框。<br />
Ctrl + Q: 回到最后一次编辑的地方。<br />
Ctrl + M：最大化/最小化编辑器窗口。<br />
Ctrl + /：注释/取消注释<br />
Ctrl + 1：显示快速重构方案。<br />
<strong style="color: red">Alt + /</strong>: 补足类名或者方法名<br />
Shift + Alt + Q,&nbsp;&nbsp;Q: 打开视图框。<br />
Shift + Alt + Q, L: 打开"Error Log"视图。<br />
Shift + Alt + Q，P：打开&#8220;Package Explorer"视图。<br />
Alt +S,V: 打开Override对话框。<br />
<span style="font-family: Verdana">双击左括号：选中括号中的全部内容。<br />
</span><span style="font-size: 10pt; font-family: Verdana">shift + alt + X : j 运行MAIN<br />
shift + alt + X : T 运行JUNIT<br />
Shift + alt + S : R 帮你自动完成 set get 方法！<br />
shift + alt + Z : 4 加 try ,catch<br />
</span>ctrl+D删除一行。<br />
<li>Ctrl + Shift + O :引入及管理imports语句
<li>Ctrl + Shift + T : 打开Open Type 查找类文件
<li>Ctrl + Shift + F4 : 关闭所在打开的窗口
<li>Ctrl + O : Open declarations
<li>Ctrl + E : 打开编辑器（切换窗口）
<li>Ctrl + / : 注释本行
<li>Alt + Shift + R : 重命名
<li>Alt + Shift + L : 抽取本地变量
<li>Alt + Shift + M : 抽取方法
<li><strong>F3 </strong>: Open Declaration <br />
转自：<br />
<a href="http://www.blogjava.net/xiaoxiaoleemin/archive/2007/05/02/115072.html">http://www.blogjava.net/xiaoxiaoleemin/archive/2007/05/02/115072.html</a></span>
<p><br />
&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-size: 8pt"><span style="color: #808080">使用Eclipse IDE的技巧 <br />
作者：Sam Brodkin <br />
翻译：tetsu <br />
版权声明：可以任意转载，转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 <br />
作者: <br />
Sam Brodkin ;tetsu <br />
原文地址: <br />
http://www.javaworld.com/javaworld/jw-08-2005/jw-0829-eclipse.html<br />
中文地址: <br />
http://www.matrix.org.cn/resource/article/43/43844_Eclipse_Hot_Key.html<br />
关键词： Eclipse Hot Key <br />
概要</span></span></span></p>
<p><span style="color: #808080"><span style="font-family: Verdana"><span style="font-size: 8pt">Eclipse IDE 变得如此热门，以至于出现在许多工作简历中。但是，也正因为它的功能繁多，使得难于入手了。在这篇文章中，Sam Brodkin 分享了他最常用的一些Eclipse功能。他也提到了那些会让你的手指动的飞快的热键组合。在工作的时候，人们会怀疑你是在打电玩。（1,200字；2005年8月29日） <br />
Eclipse最妙的地方是它的功能是如此的丰富。如果你找不到某项功能，要么是你没有好好的去找，要么有一个插件可以实现它。Eclipse最糟的地方也是它的功能如此的丰富。拥挤的工具条，臃肿的菜单，以及配置对话框都让我想起了拉比林特斯迷宫（译者注：Minotau&#8217;s labyrinth，希腊神户中的人身牛头怪，住在Labyrinth迷宫中，吃人们供奉的童男童女，最后被Theseus杀死）（尽管配置对话框在Eclipse3.1中已经好了很多）。甚至是有经验的Eclipse程序员也是慢吞吞，笨手笨脚的。我观察过无数的同事，当试图在Eclipse的navigation面板里找一个类的时候，不假思索的按下&#8220;Ctrl ＋ Shift ＋ T&#8221;（打开型别（open type））。其实，只要有意识的投入一点点时间，你也会不在笨手笨脚的，而成为热键高手。 <br />
精通Eclipse不单提高了你的效率，（我知道，按小时赚钱的签约人更喜欢文本编辑器），对你的求职简历也有好处。既然Eclipse已经越来越多的出现在Java工作说明上，那么在你的求职简历上也绝对是个好词。我把它放在我的个人简历上，就在POJO（简单初始Java对象）和POJI（简单初始Java接口）的中间。越来越多的公司转向Eclipse，因为它免费，而且为大多数程序员所接受。（除了那些少有的IntelliJ和Emacs的崇拜者） <br />
因此，你的简历上并不都是帮助你提高编程效率的大话，在本文中，我将给你几条Eclipse高效的建议。注意：如果你是个在寻找初学者教程的新手，那么请参看资源部分。 <br />
Eclipse的快捷键组合功能 <br />
使用Eclipse的快捷键组合功能，让你看起来像是在打电玩。特别是让人想起《真人快打》（Mortal Combat）的感觉。要成为《真人快打》的高手，你必须记住大量的按键顺序。比如，要使出Sub-Zero Skeleton Rip，你必须依次按下????和X键。这里的控制杆就是Ctrl，Alt，Shift，字母键，数字键和功能键的组合。 <br />
让我们按照使用频率来看看我最爱用的一些热键组合。（注：以下内容在Eclipse3.02及一上版本通过测试） <br />
1. <span style="color: #000000">Control-Shift-T</span>: 打开类型（Open type）。如果你不是有意磨洋工，还是忘记通过源码树（source tree）打开的方式吧。 <br />
2. <span style="color: #000000">Control-Shift-R</span>: 打开资源（不只是用来寻找Java文件）。小提示：利用Navigator视图的黄色双向箭头按钮让你的编辑窗口和导航器相关联。这会让你打开的文件对应显示在导航器的层级结构中，这样便于组织信息。如果这影响了速度，就关掉它。 <br />
3. <span style="color: #000000">F3</span>: 打开申明（Open declaration）。或者，利用Declaration Tab（在Java视图模式下，选择Windows --&gt; Show View -- &gt; Declaration）。当你选中代码中的一个方法，然后按这个按键，它会把整个方法在申明方框里显示出来。 <br />
4. <span style="color: #000000">Alt-left arrow</span>: 在导航历史记录（Navigation History）中后退。就像Web浏览器的后退按钮一样，在利用F3跳转之后，特别有用。（用来返回原先编译的地方） <br />
5. <span style="color: #000000">Alt-right arrow</span>: 导航历史记录中向前。 <br />
6. <span style="color: #000000">Control-Q</span>: 回到最后依次编辑的地方。这个快捷键也是当你在代码中跳转后用的。特别是当你钻的过深，忘记你最初在做什么的时候。 <br />
7. <span style="color: #000000">Control-Shift-G</span>: 在workspace中搜索引用（reference）。这是重构的前提。对于方法，这个热键的作用和F3恰好相反。它使你在方法的栈中，向上找出一个方法的所有调用者。一个与此相关的功能是开启&#8220;标记&#8221;功能（occurrence marking） 。选择Windows-&gt;Preferences-&gt;Java-&gt; Editor-&gt; Mark Occurrences，勾选选项。这时，当你单击一个元素的时候，代码中所有该元素存在的地方都会被高亮显示。我个人只使用&#8220;标记本地变量&#8221;（Mark Local Variables）。注意：太多的高亮显示会拖慢Eclipse。 <br />
8.<span style="color: #000000">&nbsp;Control-Shift-F</span>: 根据代码风格设定重新格式化代码。我们的团队有统一的代码格式，我们把它放在我们的wiki上。要这么做，我们打开Eclipse，选择Window?Preferences?Java?Code Style，然后设置Code Formatter，Code Style和Organize Imports。利用导出（Export）功能来生成配置文件。我们把这些配置文件放在wiki上，然后团队里的每个人都导入到自己的Eclipse中。 <br />
9. <span style="color: #000000">Control-O</span>: 快速概要(quick outline)。通过这个快捷键，你可以迅速的跳到一个方法或者属性，只需要输入名字的头几个字母。 <br />
10. <span style="color: #000000">Control-/</span>: 对一行注释或取消注释。对于多行也同样适用。 <br />
11. <span style="color: #000000">Control-Alt-down arrow</span>: 复制高亮显示的一行或多行。 <br />
12. <span style="color: #000000">Alt-down arrow</span>: 将一行或多行向下移动。Alt-up arrow会向上移动。 <br />
其他的热键在菜单里有。你可以通过按下Control-Shift-L（从3.1版本开始），看到所有快捷键的列表。按下Control-Shift-L两次，会显示热键对话框（Keys Preferences dialog），你可以在这里自己设置热键。我欢迎你在Talkback部分发表你的Eclipse提示。 <br />
<span style="font-size: 10pt">其他的Eclipse窍门 </span><br />
我总结了几个相关的小窍门： <br />
<span style="color: #000000">锁定命令行窗口</span>：在命令行视图中（Window ? Show View ? Other ? Basic ? Console），试试看用滚动锁定按钮来锁定控制台输出不要滚屏。 <br />
<span style="color: #000000">使用Ant视图</span>：在我的Java或Debug模式下，我喜欢显示出Ant视图，这样我就可以迅速的运行Ant任务。通过Window ? Show View ? Other ? Ant可以找到该视图。把Ant视图放在屏幕的一角， 通过&#8220;添加编译文件（Add Buildfiles）&#8221;按钮来添加build.xml文件。在3.1版本中，甚至支持Ant调试脚本语言。 <br />
<span style="color: #000000">自动遍历一个集合</span>：for + Control-Space: 如果你还不知道，那么你应该记住Control-Space是自动完成功能。在Eclipse中，你还可以自动完成结构。在一个数组或集合范围内，试试看输入&#8220;for&#8221;然后按下Control-Space键。Eclipse会问你你想要遍历哪一个集合然后自动完成循环代码。 <br />
<span style="color: #000000">使用分级布局</span>：在包浏览视图（Package Explorer view）中默认的布局（扁平式）方式让我困惑，它把包的全名显示在导航树（navigation tree）中。我更喜欢我源码的包和文件系统视图，在Eclipse中叫做分级布局（Hierarchical Layout）。要切换到这种模式，点击包浏览视图中向下的按钮，选择布局（Layout），然后选择分级（Hierarchial）。 <br />
<span style="color: #000000">一次显示多个文件</span>：你可以一次浏览多个文件。把不在激活状态的编辑窗口拖到激活窗口的底部或侧边的滚动条上，就可以打开该编辑窗口。这是我能描述该窍门的最好方式了。 <br />
<span style="color: #000000">同时打开两个Eclipse</span>：要将改动从一个CVS分支上合并到另外一个上，我喜欢通过同时打开两个工作目录（Workspace）不同Eclipse来实现。这样我可以通过比较CVS上的最新版本看到所有的变化（右键单击工程，然后选择Compare with ? Lastest from HEAD）然后把每一个变化都合并到另外一个CVS分支上。启动多个Eclipse的最简单的方法是利用Eclipse Launcher。 <br />
<span style="color: #000000">Implementors插件</span>：安装一个能够跳到一个接口的实现的插件。如果你是个dependency injection 粉丝，或者正在基于编写优良的接口工作，那么你需要一个这样的插件来加速代码导航。 你可以在SourceForge找到这个插件。 <br />
就像Modest Mouse乐队的歌曲&#8220;Out of Gas&#8221;唱的，&#8220;意见就像小猫，我已经送给别人&#8221;。这些是我的Eclipse小猫，希望你能给它找一个温暖的家。 <br />
关于作者 <br />
Sam Brodkin使一个自由Java技术者，住在荷兰的Rotterdam。Brodkin&#8217;s的正式职业开始于8年前的Sun公司。他工作内容是Sun Java System Web Server。他目前正致力J2EE软件开发，特别是可维护性和漂亮的代码。Brodkin是一个IntelliJ的狂热者很多年了，但是却被迫转到Eclipse来开发现在的项目。虽然从没被抓到过，不过他还是被人怀疑在上班的时候玩电子游戏。 <br />
资源 <br />
Eclipse 文档说明页: <br />
http://www.eclipse.org/documentation/main.html <br />
"A Starter&#8217;s Guide to the Eclipse IDE, Part 1," Satya Komatineni (java.net, 2005年3月): <br />
http://today.java.net/pub/a/today/2005/03/02/eclipsestarter1.html <br />
Eclipse Launcher: <br />
http://sourceforge.net/projects/eclauncher/ <br />
Jesper Kamstrup Linnet的Implementors插件: <br />
http://eclipse-tools.sourceforge.net/implementors/ <br />
可打印的Eclipse快捷键列表: <br />
http://eclipse-tools.sourceforge.net/shortcuts.html <br />
关于Java开发工具的更多文章，请浏览JavaWorld的主题索引的开发工具部分: <br />
http://www.javaworld.com/channel_content/jw-tools-index.shtml <br />
-----------------------------------------------</span></span> </span><br />
</p>
</li>
<img src ="http://www.blogjava.net/GEF/aggbug/134089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2007-08-02 18:27 <a href="http://www.blogjava.net/GEF/archive/2007/08/02/134089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模态窗口</title><link>http://www.blogjava.net/GEF/archive/2007/07/27/132734.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Fri, 27 Jul 2007 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2007/07/27/132734.html</guid><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Shell&nbsp;&nbsp;&nbsp;dlgShell&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;Shell(parent,&nbsp;&nbsp;&nbsp;SWT.DIALOG_TRIM&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;SWT.APPLICATION_MODAL);&nbsp;&nbsp;&nbsp;</span></div>
<br><br><span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">setShellStyle(这里可以任意设置样式);能够设置的样式如下：（以下属性可以多选，但是某些属性相冲突时会导致设置的其他属性失效）<br></span>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SWT.BORDER&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个有边框但没有标题栏的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.CLOSE&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个只有关闭按钮的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.MIN&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个不能最大化的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.MAX,&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个可以最大化最小化的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.NO_TRIM&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个没有任何边界和标题栏的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.RESIZE&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个可以改变大小的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.TITLE&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个没有标题栏图标，没有关闭按钮的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.ON_TOP&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个总是在上的窗口，注意：此属性最好与CLOSE、MIN、MAX一起使用。</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.TOOL&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个类似工具栏的窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.APPLICATION_MODAL&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个APPLICATION模态窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.MODELESS&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个非模态窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.PRIMARY_MODAL&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个PRIMARY模态窗口</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">SWT.SYSTEM_MODAL&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个SYSTEM模态窗口</span></div>
<span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; 还有两个快捷属性来建立窗口<br></span>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SHELL_TRIM&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个标准模式的窗口，相当于属性设置为CLOSE&nbsp;|&nbsp;TITLE&nbsp;|&nbsp;MIN&nbsp;|&nbsp;MAX&nbsp;|&nbsp;RESIZE</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">DIALOG_TRIM&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">建立一个对话框模式的窗口，相当于属性设置为TITLE&nbsp;|&nbsp;CLOSE&nbsp;|&nbsp;BORDER</span></div>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">所谓模态对话框，就是指除非采取有效的关闭手段，用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会强制此种特性，用户可以在当前对话框以及其他窗口间进行切换。 <br><br><br>参考引用：<br></span><br><a href="http://blog.csdn.net/zxy6173/archive/2007/03/04/1520113.aspx"><span style="FONT-SIZE: 10pt">http://blog.csdn.net/zxy6173/archive/2007/03/04/1520113.aspx</span></a><br><a href="http://www.cnblogs.com/hg98/archive/2006/09/18/507897.aspx">http://www.cnblogs.com/hg98/archive/2006/09/18/507897.aspx</a> 
<img src ="http://www.blogjava.net/GEF/aggbug/132734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2007-07-27 11:55 <a href="http://www.blogjava.net/GEF/archive/2007/07/27/132734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>actionSet 和 perspective、view、editor等关联</title><link>http://www.blogjava.net/GEF/archive/2007/07/25/132336.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Wed, 25 Jul 2007 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2007/07/25/132336.html</guid><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">extension&nbsp;</span><span style="COLOR: #ff0000">point</span><span style="COLOR: #0000ff">="org.eclipse.ui.actionSets"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">actionSet<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #800000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="org.eclipse.mylar.java.actionSet.browsing"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label</span><span style="COLOR: #0000ff">="Mylar&nbsp;Java&nbsp;Browsing"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visible</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #800000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="org.eclipse.mylar.internal.java.ui.actions.ApplyMylarToBrowsingPerspectiveAction"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id</span><span style="COLOR: #0000ff">="org.eclipse.mylar.java.ui.actions.ApplyMylarToBrowsingPerspectiveAction"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="COLOR: #0000ff">="toggle"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label</span><span style="COLOR: #0000ff">="Apply&nbsp;Mylar"</span><span style="COLOR: #ff0000">&nbsp;<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon</span><span style="COLOR: #0000ff">="icons/elcl16/interest-filtering-browsing.gif"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tooltip</span><span style="COLOR: #0000ff">="Filter&nbsp;Packages,&nbsp;Types,&nbsp;and&nbsp;Members&nbsp;views"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toolbarPath</span><span style="COLOR: #0000ff">="mylar"</span><span style="COLOR: #ff0000"><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enablesFor</span><span style="COLOR: #0000ff">="*"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">action</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">actionSet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">extension</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">extension&nbsp;</span><span style="COLOR: #ff0000">point</span><span style="COLOR: #0000ff">="org.eclipse.ui.actionSetPartAssociations"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">actionSetPartAssociation&nbsp;</span><span style="COLOR: #ff0000">targetID</span><span style="COLOR: #0000ff">="org.eclipse.mylar.java.actionSet.browsing"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">part&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="org.eclipse.jdt.ui.MembersView"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">part&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="org.eclipse.jdt.ui.PackagesView"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">part&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="org.eclipse.jdt.ui.TypesView"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">actionSetPartAssociation</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">extension</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">extension&nbsp;</span><span style="COLOR: #ff0000">point</span><span style="COLOR: #0000ff">="org.eclipse.ui.perspectiveExtensions"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">perspectiveExtension&nbsp;<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #800000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #ff0000">targetID</span><span style="COLOR: #0000ff">="org.eclipse.jdt.ui.JavaBrowsingPerspective"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">actionSet&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="org.eclipse.mylar.java.actionSet.browsing"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">perspectiveExtension</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">extension</span><span style="COLOR: #0000ff">&gt;</span></div>
<br><span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><strong><font style="BACKGROUND-COLOR: #ffff66">org.eclipse.ui.actionSetPartAssociations</font></strong> 扩展点提供了另一种选择，当特定的视图或者编辑器打开的时候，不管它们所处的透视图是否打开，都允许一个action集处于可见状态。这是一种极好的方式来保证特定的action出现大范围的透视图中，而不是明确的为这些透视图添加action。</span>
<img src ="http://www.blogjava.net/GEF/aggbug/132336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2007-07-25 16:27 <a href="http://www.blogjava.net/GEF/archive/2007/07/25/132336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在非Editor中实现syntax coloring</title><link>http://www.blogjava.net/GEF/archive/2007/07/24/132081.html</link><dc:creator>子非鱼</dc:creator><author>子非鱼</author><pubDate>Tue, 24 Jul 2007 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/GEF/archive/2007/07/24/132081.html</guid><description><![CDATA[<hr />
参考：<a href="http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg01745.html">http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg01745.html</a><!--x-head-body-sep-end--><!--x-body-of-message--><tt><br />
在非Editor中实现syntax coloring<br />
<br />
<br />
Rainer wrote: </tt>
<blockquote style="padding-left: 0.85em; margin: 0em; border-left: #5555ee 0.2em solid"><tt>I hope this is the right place to ask this question: </tt></blockquote>
<pre style="margin: 0em"><br />
It's fine; eclipse.platform would have been right as well.</pre>
<br />
<blockquote style="padding-left: 0.85em; margin: 0em; border-left: #5555ee 0.2em solid"><tt>I am working on a simple XML editing rich client. One of the main components is a JFace TextViewer, embedded in an Eclipse view (I can't use an Eclipse editor in my special case, unfortunately). I want to add syntax coloring, but can't seem to get the presentation reconciler to work.</tt><br />
<br />
<pre style="margin: 0em">Here's the sample code:</pre>
<br />
<pre style="margin: 0em">[...]</pre>
<br />
<tt>reconciler= new PresentationReconciler();<br />
DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new CodeRuleScanner());<br />
dr.setDocument(viewer.getDocument());<br />
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);<br />
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);<br />
reconciler.install(viewer);</tt><br />
<br />
<pre style="margin: 0em">[..]</pre>
<br />
<tt>The CodeRuleScanner (extends RuleBasedScanner) is configured with a set of rules and a default token. However, the PresentationReconciler seems to be totally inactive. Is there any further configuration necessary? </tt></blockquote><tt><br />
No. If you look at the implementation of<span style="color: #003300"> PresentationReconciler.install</span>, you will see that it waits until the viewer's document is set (via an ITextInputListener). So, in order for the above to work, <span style="color: red">you have to set the document *after* installing the reconciler</span>.</tt><br />
<br />
<tt>You should also look at SourceViewer that adds more features and configures itself in the right order using a SourceViewerConfiguration.</tt><br />
<br />
<pre style="margin: 0em">HTH, tom</pre>
<pre style="margin: 0em">&nbsp;</pre>
<pre style="margin: 0em">正确的做法：</pre>
<pre style="margin: 0em">&nbsp;</pre>
<pre style="margin: 0em">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">PresentationReconciler&nbsp;reconciler</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PresentationReconciler();<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DefaultDamagerRepairer&nbsp;dr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultDamagerRepairer(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PolicyCodeScanner(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ColorProvider()));<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reconciler.setDamager(dr,&nbsp;IDocument.DEFAULT_CONTENT_TYPE);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reconciler.setRepairer(dr,&nbsp;IDocument.DEFAULT_CONTENT_TYPE);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reconciler.install(sourceViewer);</span><span style="color: #008000">//</span><span style="color: #008000">PresentationReconciler.install必须在setDoucument之前，切记<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置字体</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sourceViewer.getTextWidget().setFont(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Font(sourceViewer.getControl().getDisplay(),&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FontData(</span><span style="color: #000000">"</span><span style="color: #000000">Courier</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">,&nbsp;SWT.NORMAL)));<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置当前编辑行的背景色</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CursorLinePainter&nbsp;painter</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;CursorLinePainter(sourceViewer);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;painter.setHighlightColor(yellow);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sourceViewer.addPainter(painter);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置文档帮助</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;ContentAssistant&nbsp;assistant&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ContentAssistant();<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setContentAssistProcessor(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PolicyContentAssistProcessor(),&nbsp;IDocument.DEFAULT_CONTENT_TYPE);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.install(sourceViewer);<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置文本内容</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sourceViewer.setDocument(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Document(</span><span style="color: #0000ff">this</span><span style="color: #000000">.content));<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr.setDocument(sourceViewer.getDocument());<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
&nbsp;
<br />
&nbsp;&nbsp;</pre>
<font face="Verdana" size="2"><span style="font-size: 10pt">另外：<br />
注入config:</span><br />
</font>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">sourceViewer.configure(SourceViewerConfiguration&nbsp;configuration)</span></div>
<br />
<!--x-body-of-message-end--><!--x-msgbody-end--><!--x-follow-ups-->
<hr />
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/GEF/aggbug/132081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/GEF/" target="_blank">子非鱼</a> 2007-07-24 16:34 <a href="http://www.blogjava.net/GEF/archive/2007/07/24/132081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>