Eclipse
iteye_14294
这个作者很懒,什么都没留下…
展开
-
[zt]工具栏(Action Bar)
FROM:http://www.blog.edu.cn/user1/19180/archives/2006/1406358.shtml对于图形界面工具来说,工具栏是必不可少的支持。对于Eclipse插件而言,工具栏可以分为两种:主工具栏(全局)和视图工具栏。从实现的角度上,二者没有什么太大区别,只是在初始化的时候略有不同。 工具条上的每一个按钮实际上是一个Action,每个Action负责执...2007-02-14 10:30:57 · 115 阅读 · 0 评论 -
Eclipse Plugin依赖设置问题
·如何设置两个plugin工程之间的依赖关系,必须在被依赖方project的mainfest里面的exprot package设置要给依赖方可用的package,在依赖方的dependency里面要设置被依赖的project名·两个plugin工程,a依赖b,a在运行时候需要使用jar包中的c类,编译的时候没有,运行时在遇到c的地方报ClassNotFoundException异常,这个可能的原...2007-03-22 12:13:21 · 480 阅读 · 0 评论 -
[zt]自己动手编写Eclipse扩展点
FROM:http://wjj-tt.spaces.live.com/blog/扩展(Extension)是Eclipse中一个关键的机制,plug-in利用扩展向Eclipse平台添加新功能。但是扩展不能随意地创建,必须按照扩展点(extension point)定义的规范进行明确的声明,Eclipse才能认出这些扩展。我们不仅可以使用Eclipse提供的众多现成的扩展点,而且还可以定义新的扩...2007-03-25 17:50:19 · 90 阅读 · 0 评论 -
[zt]Eclipse插件开发两点小结
FROM:http://bbs.buaa.edu.cn/pc/pccon.php?id=35&tid=0&nid=749&s=all 这两天看了一下Eclipse的插件开发,参考的书就是那本著名的Contributing to Eclipse。把两点体会记录如下:1、Extension和Extension-pointExtension和Extension-poi...2007-03-25 18:00:02 · 119 阅读 · 0 评论 -
[zt]插件制作过程记录(使用TreeViewer贡献视图)
from:http://www.blogjava.net/hopeshared/archive/2006/07/25/59983.html使用TreeViewer贡献视图(根据《Eclipse入门到精通》中的例子进行的改编)作者:李红霞 2005-8-13本文章允许转载,但请要求注明文章作者及出处一 创建插件项目创建一个插件项目example.my.treeview,这个例子将...2007-03-26 09:50:53 · 133 阅读 · 0 评论 -
最近Eclipse Plugins 开发总结
·在使用TableViewer中使用CellEditor的时候,需要这样创建TableViewer:new TableViewer(composite, SWT.BORDER| SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.VIRTUAL| SWT.MULTI | SWT.FULL_SELECTION); ,这里主要是SWT.FULL_SELECTIO...2007-04-17 22:07:17 · 165 阅读 · 0 评论 -
[zt]org.eclipse.core.runtime.contentTypes扩展点详解
FROM:http://blog.matrix.org.cn/gh_aiyz/date/20060717org.eclipse.core.runtime.contentTypes用于扩展系统支持的内容类型。首先看一个example: xml 代码 <extension point="org.eclipse.core.runtime.contentTypes">...2007-04-20 23:11:23 · 340 阅读 · 0 评论 -
最近的Eclipse plugin开发总结
创建dynamic web project的第一个wizard pageorg.eclipse.jst.servlet.ui.project.facet.WebProjectFirstPage创建dynamic web project的wizardorg.eclipse.jst.servlet.ui.project.facet.WebProjectWizard指定src webConten...2007-04-21 00:49:55 · 190 阅读 · 0 评论 -
最近的Eclipse Plugin开发总结
表格行拖动参考org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeViewer如果透视图相关的配置文件以及java类被修改之后,再次启动插件发现相关的修改没有生效的时候,则需要执行一下window->Reset Perspective才能执行perspective扩展点对应的classjava.lang.VerifyError: ...2007-05-21 08:38:52 · 163 阅读 · 0 评论 -
TextViewer实现原理简单分析
以下内容都是通过阅读《The Definitive Guide to SWT and JFace》写的。只涉及到语法着色部分,还有内容自动完成,编辑器的Vertical Ruler等内容这里不介绍,Eclipse的插件开发帮助里面介绍的很详细。TextViewer的输入叫Document, TextViewer在显示文档之前,将对其分割(Partition)成各种类型的区块(Region),每...2007-05-25 10:51:21 · 325 阅读 · 0 评论 -
最近eclipse plugin开发总结
对于combo来说,在添加的selectionListener的要取得当前选中的内容,不能使用SelectionEvent的text,而必须通过调用Combo的getText()方法来取得对于IContentProvider的getElements方法一般直接调用getChildren方法对于内部类来说,使用clazz.newInstance()会抛出异常,我碰到这种情况,感觉很奇怪一...2007-05-28 20:45:15 · 118 阅读 · 0 评论 -
EMF的存储设置
一般我们在对EMF模型内容进行输出,这里需要进行一些定制,下面是我在项目中做的一些定制,第一个是要将EMF Model输出的xml中去掉一些名称空间的信息,第二个就是希望把某些信息由Attribute类型转换成Content类型,在得到的content类型的内容默认情况下会对<, >, &等字符进行转换,这个也可以进行控制。借鉴EMF开发指南的做法,其实很简单,这里要注意sav...2007-03-17 23:00:20 · 214 阅读 · 0 评论 -
最近的plugin开发总结
·在采用Dynamic EMF方式生成EMF model的时候,使用EFactory创建的EClass一定要加到EPackage中去,否则在创建EObject的时候会出错·在使用JFace Text Editor的时候,必须加入org.eclipse.ui.workbench.texteditor依赖,否则会报StatusTextEditor找不到的异常·对于需要添加SelectionLi...2007-03-16 20:20:26 · 102 阅读 · 0 评论 -
[zt]1. Draw2d 设计思想
FROM:http://blog.csdn.net/javamxj/archive/2005/04/20/356232.aspxDraw2d是一个宿主在SWT Composite控件中的轻量级的构件(widge)系统。一个Draw2d应用程序由一个 SWT Composite控件, 一个轻量级系统, 以及其内容(figures)组成。Figures是Draw2d的建造块。下面的“Hello Wo...2007-02-14 11:00:41 · 107 阅读 · 0 评论 -
[zt]第2章 图形元素(Figure)类设计层次
FROM:http://blog.csdn.net/javamxj/archive/2005/04/29/368432.aspx Draw2d是一个轻量级widget系统,定义了类似控件的一些图形元素,也定义了一些形状。图形元素能够相应各种事件,可以直接在事件处理函数中处理这些事件并对模型进行修改。 如果不需要对编辑图形元素执行编辑过程,只需要应用draw2d就可以完成显示目的。使...2007-02-14 11:07:56 · 191 阅读 · 0 评论 -
[zt]Master/Details 模式在Eclipse Forms中的应用
From:http://www.eclipseworld.org/bbs/read.php?tid=1296 Master/Details是UI设计中常见的一种模式。他有一组(列表或成树状结构)的master和一个被选中 master驱动的details集组成。 master是一些不同的对象,通过对master的选择,驱动details的UI发生变化。在下面的图中,有3各不同的maste...2007-02-28 08:14:00 · 291 阅读 · 0 评论 -
[zt]方便管理plugin或rcp的icons
From:http://blog.csdn.net/moneyice/archive/2006/04/25/677423.aspx每个UI程序都离不开图片,一般的Eclipse插件,在一个类中定义了若干静态常量,每一个常量指定一个icon的名字,在程序中用到图片的时候,通过这个常量计算得到图片。Eclipse的插件一般规模较大,图片很多,而且分不同的像素,彩色,灰白等。这样有利于统一的管理和开发...2007-02-28 21:17:35 · 66 阅读 · 0 评论 -
关于JFace的TreeViewer的Selection
tree.setSelection(tree.getItem(0))和viewer.setSelection(new StructuredSelection(new Object[] { tree.getItem(0).getData() }));之间是有区别的,前者不会触发viewer的selectionChanged事件,后者则会触发,这里还需要注意的是在构造StructuredSelecti...2007-03-07 21:54:57 · 297 阅读 · 0 评论 -
使用Dynamic EMF之后ItemProvider(AdapterFactory)的实现
当使用dynamic emf的方式来生成emf model的时候,只会使用ReflectiveItemProviderAdapterFactory和ReflectiveItemProvider来充当emf.edit部分,这个时候如果需要定制ItemProvider和AdapterFactory的话,需要从这两个类继承,重载相关的方法,例如:java 代码 List factori...2007-03-07 21:58:07 · 174 阅读 · 0 评论 -
eclipse forms的master/details 结构分析
如果使用了多页编辑器的话,就需要用到FormPage和FormEditor这两个东东,用来显示主要内容结构的是位于左边的MasterBlock(基类的名字是MasterDetailsBlock),而选中内容结构上的每一个节点则会更新位于DetailsBlock的相应内容,在MasterDetailsBlock里面我们会用到的是ManagedForm,通过它来创建Section,然后在Section...2007-03-07 22:01:32 · 278 阅读 · 0 评论 -
EMF Menu(Action, Command)使用注意事项
当我们的menu item需要根据当前选择不同对象发生动态变化就要注意了,EMF Editor的做法在添加完成之后,将焦点设置到新增的节点上,这样做看似无心,其实是有一定原因的,至少我认为是这样,如果我们增加了一个节点(不管是子节点还是兄弟节点),然后焦点还停留在当前节点上,那么当再增加一个与前一个类型一样的节点时就会失败,其原因在于没有变换焦点,command还是使用前面取得的child作为要添...2007-03-07 23:35:17 · 139 阅读 · 0 评论 -
[zt]从插件/RCP中取得文件路径的方法
FROM:http://www.blogjava.net/hopeshared/archive/2005/12/20/24798.aspx最近社区里问这个问题的人特别多,所以在这里将自己用到的几个方法写出来。假如以后还有其他的方法,会进行更新。从插件中获得绝对路径: java 代码 AaaaPlugin.getDefault().getStateLocatio...2007-03-16 19:57:59 · 143 阅读 · 0 评论 -
如何在JFace Text Editor中对非文件内容进行编辑
最近开发中碰到要在EMF中对某个模型的内容放到JFace Text Editor中去编辑,于是把Text Editor研究了一番,发现其默认的实现是基于文件的,而我希望对一段字符串进行编辑,看了半天代码没有找到突破口,曾经想过使用临时文件来处理这个问题,好在eclipse.org上找到一篇文章解决了我们的问题,其做法就是使用IStorageEditerInput 来作为Text Editor的输入...2007-03-16 20:10:40 · 115 阅读 · 0 评论 -
导致异常信息Invalid preference page path:xxx的原因
Invalid preference page path:xxx 导致该异常的原因今天碰到这个异常,google了一下,终于在http://dev.eclipse.org/newslists/news.eclipse.tools/msg18105.html找到了答案,原来是plugin.xml 中category配置的id错误...2007-05-31 19:22:56 · 456 阅读 · 0 评论 -
将emf 模型片段转换成xml字符串
EMF可以在xml和model对象之间进行串行化和反串行化,这个主要是利用Resource的相关方法来实现,但是如果需要对某个EMFmodel节点转换成xml字符串,该如何做呢?这里EMF提供了另外一个类XMLProcessor,该类提供了load方法用来将xml文件、字符串或者dom对象转换成EMF模型对象,以及save方法将EMF模型对象转换成xml字符串、xml dom对象或者xml文件。X...2007-05-31 19:37:17 · 309 阅读 · 0 评论 -
关于多页编辑器中不同Editor之间的Redo&Undo冲突的解决
在我们的插件工具的开发过程中碰到一个问题,就是在编辑xml文件的时候,因为采用了EMF建模,导致在使用Eclipse Forms编辑节点和属性与编辑事件的JavaScript脚本的Editor之间二者的Redo&Undo功能有一定的冲突,EMF的Redo&Undo不可用,当把JavaScript编辑器中TextViewer的UndoManager屏蔽了之后,EMF的Redo&...2007-09-03 15:17:43 · 374 阅读 · 0 评论 -
也说关于WizardPage的动态生成
在Eclipse中一个Wizard=WizardDialog+Wizard+WizardPage,在这三者中,可以把前者看成后者的容器(container),看看这些类里面的代码就知道,Eclipse自己也是这么认为的,而我们最终看到的东西是WizardPage,在一个Wizard中虽然我们看到的是每一个WizardPage都是在点击next的时候一个一个显示的,但是他们的创建却...2007-11-05 14:26:15 · 303 阅读 · 0 评论 -
Eclipse WTP Projects Facets实战指南(1)
这个文章基本是"Building Project Facets"的中文版在WTP中创建Dynamic Web Project工程的时候提供了Project Facets的功能,它让用户在创建web项目的时候,可以像搭积木一下给我们创建的project添加各种功能模块,下面我们通过一个例子来讲解一下WTP中的Project Facets的用法通常我们给创建的工程可能添加以下元素:资源文件, Bu...2007-11-21 20:21:19 · 136 阅读 · 0 评论 -
Eclipse WTP Projects Facets实战指南(2)
修饰工作给facet在选择列表中添加图标格式如下:xml 代码 <extension point="org.eclipse.wst.common.project.facet.ui.images"> <image facet="{string}" path="{string}"/> (0 or more) <im...2007-11-21 21:13:39 · 209 阅读 · 0 评论 -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
在eclipse3.3中,JavaFileEditorInput这个internal类已经被干掉了,所以导致在插件中使用了JavaFileEditorInput之后导致编译不通过,为了做到与eclipse3.3以前版本兼容(至少是3.2),需要进行一下变通通过google,我们发现,虽然eclipse3.3干掉了JavaFileEditorInput类,但是添加了FileStoreEditorI...2007-11-24 11:22:56 · 1135 阅读 · 0 评论 -
最近的Eclipse plugin开发总结
List控件没有提供addDblClickListener方法,如果要处理双击事件,则需要这样处理: java 代码 list.addListener(SWT.MouseDoubleClick, new Listener() { public void handleEvent(Event event) { System.out.p...2007-11-24 11:30:34 · 125 阅读 · 0 评论 -
JFace Text Editor完全掌握之终极指南(1)
JFace Text Editor是JFace里面一个功能强大,结构复杂而且非常重要的组件,要掌握它还需要花不少的功夫,下面我们将通过"Building an Eclipse Text Editor with JFace Text"的翻译来掌握它的用法提到Text Editor,就不得不提到与之密切相关的SourceViewerConfiguration类,Text Editor的许多功能都是通...2007-11-24 16:17:24 · 444 阅读 · 0 评论 -
JFace Text Editor完全掌握之终极指南(2)
最后一步就是实现各种功能语法高亮首先我们要实现的是语法高亮.如下图所示: 从本质上来说,语法高亮就是给分割后的Token指定相应的显示属性,在语法高亮的处理机制里面也需要用到Token, Scanner和Rule这些东西.通过复写SourceViewerConfiguration的getPresentationReconciler()方法来给指定的内容类型添加语法高亮的特性: ja...2007-11-24 16:53:52 · 218 阅读 · 0 评论 -
JFace Text Editor完全掌握之终极指南(3)
内容大纲之所以要给编辑器提供内容大纲主要基于两点:一是让用户更好的总览文档全局,二个是能更方便的定位到指定的文档位置如下图所示 内容大纲能做的三件事:1.对结构性文档内容的解析,在XML编辑器中,我们需要显示节点的名称,属性名与值,但是不显示节点文档内容2.能通过内容大纲进行更新,在内容大纲中直接对编辑器内容进行修改,这里我们不做实现3.导航功能的支持,当在内容大纲中选中了一个节点,...2007-11-24 16:56:05 · 161 阅读 · 0 评论 -
JFace Text Editor完全掌握之终极指南(4)
错误标识(Error Marking)Error Marking用来对编辑的文档根据一定的规则进行验证,比如对于XML文档来说,可能是XML DTD或者XML Schema.其实现跟内容大纲比较类似,首先在解析文档的时候对error加以标识.这里我们使用了SAX ErrorHandler来收集和定位所有的error, 接着在生成内容大纲的同时进行验证和error marking,这个工作在文档被...2007-11-24 17:08:38 · 280 阅读 · 0 评论 -
TextEditor原理分析笔记
Editor的语法着色原理:Eclipse使用damage ,repair和reconcile模型来实现语法着色功能,当用户每次修改了document,Reconciler就会去计算文档中哪些可视区域是无效的以及如何去repair之:这里的damage表示需要重新加以显示的文本,repair则表示重新进行显示的方式,而reconcile则是这个重新显示的过程.为了定制damage和repair,需...2007-08-23 15:48:11 · 183 阅读 · 0 评论 -
最近的Eclipse开发总结
java.lang.IllegalAccessError: tried to access field ... 定义在基类中的属性,在子类的内部类和匿名类中是无法使用的,否则会报出这样的错误,解决方法是调用属性的get方法在打包的时候,如果在binary build中没有选中META-INF的话,会导致在调用该包中的class的时候出现找不到类的异常错误在EMF中一个,使用TreeViewer...2007-08-23 15:46:42 · 117 阅读 · 0 评论 -
Velocity找不到模版文件的问题解决
Veloctity默认采用文件加载的方式(FileResourceLoader)来加载模版文件,这就要求模版文件放在系统目录下,比如system32下,或者给出绝对路径,为了让其从class目录下开始查找模版文件,需要将其加载方式指定为按类的方式(ClasspathResourceLoader )进行加载,因此要改写velocity.properties文件:classpath.resource....2007-06-04 08:55:47 · 1461 阅读 · 0 评论 -
关于插件中图标对象的获取
默认情况下,插件只能取得gif格式的图片,有时候我们需要获取其他格式的图片,这里就需要自己来写了,最近从另外一个插件aptana下发现它在获取非gif格式图片的一些做法,值得参考在需要使用图标的地方,需要这样写:java 代码 private static Image fIconFirefox = JSPlugin.getImage("icons/firefox_icon.png...2007-06-07 12:26:32 · 111 阅读 · 0 评论 -
TextActionHandler的使用以及对EditingDomainActionBarContributor的定制
在使用Eclipse Forms Editor对EMF model进行编辑的时候,由于editor的contributor是继承EditingDomainActionBarContributor,因此Cut, Copy,Paste都是使用EMF的Cut,Copy和Paste,这样在Editor中进行的所有操作都将转换为对EMF model的操作,对于Viewer上的节点来说当然没有什么问题,但是如...2007-06-08 15:58:44 · 171 阅读 · 0 评论