﻿<?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-stamp-随笔分类-Eclipse开发</title><link>http://www.blogjava.net/stamp/category/3063.html</link><description>2006年与我同在</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 18:28:05 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 18:28:05 GMT</pubDate><ttl>60</ttl><item><title>文本编辑器的辅助提示</title><link>http://www.blogjava.net/stamp/archive/2005/09/23/13861.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Fri, 23 Sep 2005 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/09/23/13861.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/13861.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/09/23/13861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/13861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/13861.html</trackback:ping><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 在进行文本编辑器的开发时候，经常会遇到对相关内容的提示，可以通过如下代码实现SourceViewerConfiguration的<BR>public IContentAssistant getContentAssistant(ISourceViewer sourceViewer)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContentAssistant assistant = new ContentAssistant();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setContentAssistProcessor&nbsp;&nbsp;&nbsp;(new&nbsp;&nbsp;&nbsp;XMLCompletionProcessor&nbsp;(),&nbsp;&nbsp;XMLPartitionScanner.XML_TAG);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.enableAutoActivation(true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setAutoActivationDelay(250);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setProposalSelectorBackground(ColorManager.background);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assistant.setProposalSelectorForeground(ColorManager.foreground);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return assistant;<BR>&nbsp;}<BR>其中XMLCompletionProcessor&nbsp;主要实现IContentAssistProcessor接口，内容辅助主要实现接口中的<BR>public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; 5;i++)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result[i] = new CompletionProposal("bbb", documentOffset, 0, 3, null,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"aaa",null, "");<BR>&nbsp;&nbsp; }&nbsp;&nbsp;<BR>&nbsp; &nbsp;return result;<BR>&nbsp;}<BR>此时会在辅助框中出现5个aaa,当确定后，补充到文本编辑器的相应位置是bbb,具体参数的说明请见API说明。</P><img src ="http://www.blogjava.net/stamp/aggbug/13861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-09-23 20:57 <a href="http://www.blogjava.net/stamp/archive/2005/09/23/13861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml编辑器</title><link>http://www.blogjava.net/stamp/archive/2005/09/19/13446.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Mon, 19 Sep 2005 11:56:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/09/19/13446.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/13446.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/09/19/13446.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/13446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/13446.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 今天想做一个xml编辑器，首先要解决的就是能够确定错误节点在文件中的行，开始想参考一下plugin.xml编辑器的实现方式，可是机器总不挣气，调试到里面，过一段时间就报内存不足。后来，想了想，能否在进行xml解析的过程中，把行号存储到节点对象中，终于发现在org.apache.xerces.impl包中有具体的实现。可是这样在文件保存的时候，进行xml校验是可行的。转而一想，如果在编辑文件的时候验证xml的合法行，如果总是重新解析内存文件，把行号存储到节点中，是不是最佳的方案，不知道plugin.xml的哪个model是什么样的，是否在每次进行文件编辑的时候，都要重新update这个model，如果这样，难道不影响编辑效率吗？看来只有继续努力了。<BR>&nbsp;&nbsp;&nbsp; <img src ="http://www.blogjava.net/stamp/aggbug/13446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-09-19 19:56 <a href="http://www.blogjava.net/stamp/archive/2005/09/19/13446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse的link</title><link>http://www.blogjava.net/stamp/archive/2005/09/09/12593.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Fri, 09 Sep 2005 12:28:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/09/09/12593.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/12593.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/09/09/12593.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/12593.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/12593.html</trackback:ping><description><![CDATA[<P>Eclipse插件使用links目录的用法：<BR>　假设把插件安装在d:\myplugin目录中，则myplugin的目录结构一定要是这样的：<BR>　　d:\myplugin\eclipse\plugins\插件 及 d:\myplugin\eclipse\features\插件<BR>　　例如安装EclipseME插件到d:\myplugin目录中，则目录结构d:\myplugin\eclipse\plugins\eclipseme_0.4.5。<BR>　　再假设eclipse安装在d:\eclipse目录中，则在eclipse目录中创建名称为links的目录，在links目录中建立一个link文件，比如myplugin.link，该文件内容为path=d:\myplugin。<BR>　　启动eclipse，插件即安装上了，如果想暂时不启动插件，只需把myplugin.link文件删除即可。<BR>补充说明：<BR>　1. 插件可以分别安装在多个自定义的目录中。<BR>　2. 一个自定义目录可以安装多个插件。<BR>　3. link文件的文件名及扩展名可以取任意名称，比如myplugin.txt，goodplugin都可以。<BR>　4. link文件可以有多行path=插件目录，对应多个自定义插件目录，每一行的path参数都将生效。<BR>　5. 在links目录也可以有多个link文件，每个link文件中的path参数都将生效。<BR>　6. 插件目录可以使用相对路径，如果我们把myplugin目录创建在eclipse安装目录中，如上例中的d:\eclipse目录中，则只需设置path=myplugin即可</P><img src ="http://www.blogjava.net/stamp/aggbug/12593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-09-09 20:28 <a href="http://www.blogjava.net/stamp/archive/2005/09/09/12593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nature和builder的添加</title><link>http://www.blogjava.net/stamp/archive/2005/09/06/12249.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Tue, 06 Sep 2005 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/09/06/12249.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/12249.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/09/06/12249.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/12249.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/12249.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 项目nature和builder都会在.project文件中看到，如下：<BR><BUILDSPEC>&lt;buildSpec&gt;<BR>&nbsp;&nbsp;&lt;buildCommand&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;org.eclipse.jdt.core.javabuilder&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;arguments&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/arguments&gt;<BR>&nbsp;&nbsp;&lt;/buildCommand&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;buildCommand&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;org.eclipse.pde.SchemaBuilder&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;arguments&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/arguments&gt;<BR>&nbsp;&nbsp;&lt;/buildCommand&gt;<BR>&nbsp;&lt;/buildSpec&gt;<BR>&nbsp;&lt;natures&gt;<BR>&nbsp;&nbsp;&lt;nature&gt;org.eclipse.pde.PluginNature&lt;/nature&gt;<BR>&nbsp;&nbsp;&lt;nature&gt;org.eclipse.jdt.core.javanature&lt;/nature&gt;<BR>&nbsp;&lt;/natures&gt;<BR>&nbsp;</NATURES><BR>&nbsp;&nbsp;&nbsp; builder主要在项目构建时使用，nature主要用来区分项目，项目的图标主要由第一个natures来决定，在plugin.xml文件对org.eclipse.core.resources.natures和org.eclipse.core.resources.builders扩展点进行扩展后，可以通过如下方法将nature添加到项目中：(builder类似实现,api查看IProjectDescription）<BR>&nbsp;private static boolean addNature(IProject prj) throws Exception {<BR>&nbsp;&nbsp;IProjectDescription description = prj.getDescription();<BR>&nbsp;&nbsp;String onatures[] = description.getNatureIds();<BR>&nbsp;&nbsp;String[] natures = new String[onatures.length + 1];<BR>&nbsp;&nbsp;natures[0] = "cn.aaa.bbb.natures";&nbsp;&nbsp;//根据plugin.xml文件配置决定<BR>&nbsp;&nbsp;System.arraycopy(onatures, 0, natures, 1, onatures.length);<BR>&nbsp;&nbsp;description.setNatureIds(natures);<BR>&nbsp;&nbsp;prj.setDescription(description, null);<BR>&nbsp;&nbsp;return true;<BR>&nbsp;}<img src ="http://www.blogjava.net/stamp/aggbug/12249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-09-06 19:48 <a href="http://www.blogjava.net/stamp/archive/2005/09/06/12249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目属性图标</title><link>http://www.blogjava.net/stamp/archive/2005/09/02/11850.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Fri, 02 Sep 2005 13:09:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/09/02/11850.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/11850.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/09/02/11850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/11850.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/11850.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在进行eclipse开发的时候，你有可能看到一般项目和Java项目的区别是Java项目的文件夹上有个带J的小图标，最近在进行插件开发的时候，自己为项目添加了nature和builder属性，为了区别与Java项目的区别，也需要在自己的项目上添加一个图片，实现方法非常简单，只需要在plugin.xml文件中配置如下代码：<BR>&lt;extension point="org.eclipse.ui.projectNatureImages"&gt;<BR>&nbsp;&lt;image<BR>&nbsp;&nbsp;id="com.aaa.bbb"<BR>&nbsp;&nbsp;natureId="com.aaa.bbb.nature"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icon="icons/nature.gif"&gt;<BR>&nbsp;&lt;/image&gt;<BR>&lt;/extension&gt;<BR>其中natureId是项目具有的属性<img src ="http://www.blogjava.net/stamp/aggbug/11850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-09-02 21:09 <a href="http://www.blogjava.net/stamp/archive/2005/09/02/11850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>资源侦听</title><link>http://www.blogjava.net/stamp/archive/2005/08/30/11585.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Tue, 30 Aug 2005 12:13:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/08/30/11585.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/11585.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/08/30/11585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/11585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/11585.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 这段时间，为一个自己开发的平台写了一个插件，用来辅助平台配置文件的开发，由于配置文件一些参数来源于其它6个总的配置文件，所以想到了资源侦听器，侦听6个配置文件，当它们发生变化了，就动态的刷新内存区，也不知道这个是不是最佳的实现方法，eclipse的资源侦听采用了visit的设计模式，它会把整个工作区的资源变化都告诉你，你可以根据需要处理你感兴趣的变化，比如资源删除，增加，改变等几个大的方面，你仔细通过查看delta.getKind()和delta.getFlags()可以了解一下eclipse的资源管理，比如资源重命名，你可以看到是先删除，然后增加等。需要注意的是，在进行资源侦听的时候，资源是被锁住了，此时你为资源添加Mark,修改资源都会出现错误，如果你想做这些，最好的方法就是自己写一个构造器。<BR><img src ="http://www.blogjava.net/stamp/aggbug/11585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-08-30 20:13 <a href="http://www.blogjava.net/stamp/archive/2005/08/30/11585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse随想</title><link>http://www.blogjava.net/stamp/archive/2005/08/29/11499.html</link><dc:creator>stamp</dc:creator><author>stamp</author><pubDate>Mon, 29 Aug 2005 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/stamp/archive/2005/08/29/11499.html</guid><wfw:comment>http://www.blogjava.net/stamp/comments/11499.html</wfw:comment><comments>http://www.blogjava.net/stamp/archive/2005/08/29/11499.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/stamp/comments/commentRss/11499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stamp/services/trackbacks/11499.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 今天项目组的成员坐在一起讨论关于eclipse开发的感想，我结合项目开发的感想从workspace和workbench两个方面对eclipse做了介绍。大家也各抒己见，总结了开发的心得：贡献法则、遵循原则、有样学样法则、分层原则、共享原则。我们做IT，最重要的就是记住它山之石，可以攻玉。我们一定要学会举一反三，思想重用。<img src ="http://www.blogjava.net/stamp/aggbug/11499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stamp/" target="_blank">stamp</a> 2005-08-29 22:10 <a href="http://www.blogjava.net/stamp/archive/2005/08/29/11499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>