
Eclipse相关
文章平均质量分 64
liugang594
这个作者很懒,什么都没留下…
展开
-
在OSGI容器Equinox中嵌入HttpServer
简单介绍一下如何在一个osgi的bundle中内嵌使用http服务一、基础首先看看在OSGI中怎么启动内嵌的jetty容器。看下图: 其实简单的只选中"org.eclipse.osgi"和"org.eclipse.equinox.http.jetty",然后点击"Add Required Bundles"即可。默认的Jetty监听的端口为80,可又通过指定运行参数 org....原创 2011-12-27 18:01:55 · 198 阅读 · 0 评论 -
Eclipse截屏插件
闲来无事,就写了一个截屏插件,见附件,直接放在eclipse的plugins目录下,启动eclipse,在工具栏上会出一个“截”字样的菜单,点击这个菜单就可以了进行截屏了。 使用方法: 1.点击“截”以后,整个画面会被冻结,所以不要意外画面不动 2.然后拖动鼠标选择截取区域 3.双击截取区域,该区域就会被复制到系统粘贴版上 4.在非截取区域或者是没有截取区域...原创 2010-01-19 15:59:43 · 1026 阅读 · 0 评论 -
让表项支持鼠标拖动移位,并自动滚动滚动条
设想我们有一个表,表中有很多数据(多到竖起滚动条至少要出现)。我们需要一个功能:用鼠标拖动某些项,然后将他们移动另一个位置,例如我们可能想一些名字相似啊,或者是内容相关度更高的数据项在一起。 要支持鼠标拖动,显示要增加drag-drop的支持,不过我不打算详细介绍这个,可以找些其他的资料看看。 大致希望实现以下功能: 1.希望在拖过某项时,有一个背景色的回显,需要增加一个变...2010-04-07 11:43:28 · 558 阅读 · 0 评论 -
合理的自定义扩展点
Eclipse中提供了各种各样的用于扩展Eclipse功能的扩展点。有时候,我们也要考虑提供合适的自定义扩展点来使用得应用的实现和扩展更加简单容易。 例子一: 例如以前做了一个编辑SA中各种SU的配置文件的扩展,一开始做法就很傻,把所有的类型的编辑实现都在一个插件实现类中,然后在createControl()的时候,根据用户选择的类型,就会有大致如下的实现方式: if...2009-06-26 01:43:11 · 173 阅读 · 0 评论 -
关键字高亮插件
在eclipse中,如果用Ctrl+F来进行查找,它只会一个一个的找,如果使用如EmEditor之类的编辑器,则可以将所有与查找字符串匹配的内容高亮。所以我就想做一个简单类型功能的插件! 附件是一个高亮关键字的小插件,不过它目前有一些限制: 1.当前有打开的Editor,如: IWorkbenchPage activePage = window.getActivePage(...2009-06-26 00:59:47 · 799 阅读 · 0 评论 -
EMF中的模型保存一
使用EMF生成模型代码时,通常Eclipse会有一个缺省的保存格式。在保存模型时,EMF会把根据模型生成一个EMF的Resource,然后用这个Resource来进行保存与加载。在EMF中通常使用的Resource类型有:XML和XMI。在使用genmodel生成代码之前,我们可以设置要使用的Resource类型:NoneBasicXMLXMI如果选择None,则没有Resou...2008-12-26 10:58:28 · 493 阅读 · 0 评论 -
Eclipse取得路径的方法
从插件中获得绝对路径: TestPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());通过文件得到Project:IProject project = ((IFile)o).getProject();通过文件得到全路径:String path ...原创 2009-11-27 10:30:33 · 156 阅读 · 0 评论 -
实现自己的团队协作客户端一
在Eclipse里自带了团队协作客户端CVS;另外还有好几个SVN的插件可以用。 当使用这些插件时,可以方便的进行同步、提交、更新等操作。 如果比较了CVS与SVN的实现成使用方式就会发现它们大同小异。这里因为和eclipse提供的其他功能一样,在eclipse里有一个专门提供团队协作的插件Team。而CVS和SVN就是通过实现这个Team的扩展来提供协作功能。 因此,如果...2009-11-12 15:04:06 · 111 阅读 · 0 评论 -
置窗口于显示器中央
要把窗口置于显示器的中央,也是很容易的。如下: private static final int WIDTH = 200; private static final int HEIGHT = 100; Monitor monitor = shell...2009-05-06 09:46:37 · 98 阅读 · 0 评论 -
SWT鼠标拖运的支持
对于没有标题栏的Shell,默认是不支持鼠标拖动位置的。不过要想让它支持也是很简单的。如下: final Point p = new Point(-1, -1); Listener l = new Listener() { public void handleEvent(Event arg0) { switch (arg0.type) { ca...2009-05-06 09:41:32 · 143 阅读 · 0 评论 -
EditingSupport的应用
Eclipse3.3中提供了一个EditingSupport类,用于支持对TreeViewer或TableViewer等的编辑支持。 在之前,知道的人就会知道,要实现对树或表的编辑其实挺麻烦的,要设置好CellEditor,要定义好ColumnProperties,还要有一个CellModifier等等,而且几乎都是一列就只能有一个类型的CellEditor,而不能有异样。 3.3...2009-08-10 15:20:34 · 468 阅读 · 0 评论 -
StyledCellLabelProvider的应用
昨天写了EditingSupport的应用,可以方便的编辑TableViewer中的cell。 今天要讲的也是与Cell有关的,是关键美化Cell的。在Eclipse3.4之前,要想美化或者让一个cell显示的有点不同其实是不容易的,我知道的一个方法就是通过实现监听的方式来达到目的。 Eclipse3.4中提供了一个新的类StyledCellLabelProvider可以用来很容易...2009-08-11 16:47:03 · 217 阅读 · 0 评论 -
使用Tab键实现表格的跳转
在Excel中,如果按Tab键,则焦点会在相邻的方格中不断的跳转。 在SWT的Table或TableTree中,缺省情况下,是不支持这种通过Tab键的跳转的。如果能实现一个这样的功能,是不是很酷? 好,这里就教你这一招的实现,使用EditingSupport可以很容易的实现这个功能。 这里假设你实现的是一棵树表,并且这个树表要求至少包含SWT.FULL_SELECTION的...2009-08-12 21:29:37 · 505 阅读 · 0 评论 -
GEF中用鼠标移动画布
第一步 增加Palette项: moveTool = new PanningSelectionTool() { private Point viewLocation; protected Cursor getDefaultCursor() { return new Cursor(PlatformUI.createDisplay(), Activator ...原创 2011-12-27 13:37:50 · 226 阅读 · 0 评论 -
增加Table的Column右键菜单
table.addListener(SWT.MenuDetect, new Listener() { public void handleEvent(Event event) { Point pt = display.map(null, table, new Point(event.x, event.y)); Rectangle clientArea = table.get...原创 2011-03-15 15:55:57 · 303 阅读 · 0 评论 -
在Eclipse中使用Maven
上一篇讲了Maven的基础知识,这一篇讲怎么在Eclipse里使用Maven 一、安装 要在eclipse里使用maven,首先需要安装一个插件:m2eclipse。这是专门针对maven的eclipse插件。 具体的安装指导,可以看:http://m2eclipse.sonatype.org/installing-m2eclipse.html 如果是用eclips...原创 2011-09-29 13:41:23 · 122 阅读 · 0 评论 -
RGB与HSB之间的相互转换
[引用:] [ http://www.missyuan.com/thread-379107-1-1.html ]第一部分————RGB与HSB的数值转换关系:出自设计中国slowfool1.转换公式:声明:下列三个公式乃本人通过拾色器数据研习所得,并未参考其它资料,不当之处,望各位指正。HSB亮度(B )=RGB最大颜色分量值/255*100%.HSB饱和度(S)=RGB(最大颜色分量值-最小...原创 2010-10-29 15:14:26 · 1405 阅读 · 0 评论 -
给Table和Tree的Header加右键菜单
通常,如果不做特殊处理的话,在表头(树头,以下统称表头)的上点击右键和在表体里点击右键,显示的菜单结果一样的。 有时候我希望能显示不一样的菜单,例如在Windows的Explorer上,如果在表头点击菜单,显示就是可显示的列项:在SWT中,缺省是不支持对表头添加菜单的,不过我们可以自己实现这个功能。 在SWT中有一个MenuDetect事件,可以查看源码,在Widget类的...原创 2010-10-29 11:26:23 · 283 阅读 · 0 评论 -
给Editor加上Annotation
要自定义Annotation,需要实现以下扩展点: “org.eclipse.ui.editors.annotationTypes” 和 “org.eclipse.ui.editors.markerAnnotationSpecification” 内容可以按照自己需要的随便填,不行的话可以参考java里的扩展方式。 例如: <extension...2010-10-27 17:27:31 · 312 阅读 · 0 评论 -
扩展Eclipse Java编辑器的链接功能
在JDT中,可以在一个类,或者是方法,或者是变量上进行跳转。这个功能相当方便、实用;使用也很简单:在欲跳转的对象上按ctrl+鼠标左键即可。 但是如果我们想提供一个自定义的跳转功能怎么办?这个功能可能用到的机会不多,但是如果我们需要,那我们就需要知道怎么用。对吧? 为了演示,这里我假定我想实现一个以下功能的跳转: 在方法或其他地方注释里可以声明一个“@super”标签,然后...2009-09-09 09:35:37 · 249 阅读 · 0 评论 -
org.eclipse.ui.navigator.linkHelper的使用
org.eclipse.ui.navigator.linkHelper扩展点的本意是用来在Editor和Navigator之间互相选中的支持。 勇哥问了我这个扩展点的使用,结果我也不会用。最后勇哥找出来了为啥不能用。因为还需要定义viewContentBinding。跟踪代码,查到了这部分源码: 在org.eclipse.ui.internal.navigator.extens...原创 2010-08-06 15:43:10 · 211 阅读 · 0 评论 -
添加监听到EMF对象、加密保存
一、可以注册监听来获取EMF模型改变事件,例如: public class ElementObserver { private IPersonList persons; public ElementObserver() { ModelFactory factory = ModelFactory.eINSTANCE; persons = factory.createI...2009-08-14 10:10:41 · 238 阅读 · 0 评论 -
给控件加装饰和输入提示一
在使用New Project Wizard的时候,可以看到在一些输入框左边有个小灯泡,把鼠标移到上面会有一些提示“Content assist Alt+/”;在框中使用 alt+/ 就是会出现一个提示。 Eclipse提供了一套对control的包装API,可以很简单的实现上述功能。如下: 增加decoration ControlDecoration decoration = new ...2008-11-19 15:44:56 · 207 阅读 · 0 评论 -
读取工作空间中的插件工程
有时我想知道当前workspace中的某个插件工程,或者全部插件工程的信息。 所以我需要知道怎么去得到当前工作空间中的一个插件工程。 可以如下实现: IPluginModelBase[] workspaceModels = PluginRegistry .getWorkspaceModels(); IPluginModelBase model = null;;...2008-11-19 15:35:51 · 92 阅读 · 0 评论 -
Eclipse中的Builder与Nature
builder和nature是Eclipse中提供的两个扩展点。一般来说我们都是先有自己特定的project类型,然后在这类project上加上自定义的builder和nature。 其实所谓的特定的project通常都是由特有的nature来标识的;而又一般builder是建立在某类特定的project上,所以我们可以得出:Nature决定了project和builder。 下面简单介绍...2008-11-03 11:26:34 · 747 阅读 · 0 评论 -
定义自己的Common Navigator三
OK,我们已经有了一个初步可运行的Navigator了,现在它看起来已经比较丰富了。不过我们在xml文件下的任意结点上点右键时,都没有菜单显示。另外假如我们有一个新的wizard,我们也想像java的package explorer视图一样显示在new菜单的那一层。那我们应该怎么做呢?这一节就来介绍这部分的实现。 实际上,从上面的介绍里,很多人可能都已经知道了怎么完成这些事情。不过这里还是写...2008-01-05 22:55:00 · 451 阅读 · 0 评论 -
定义自己的Common Navigator二
这一节和下一节我们都将来关注另一个扩展点: org.eclipse.ui.navigator.navigatorContent 首先我们先增加一个扩展声明,然后看看它支持什么东西: 图六 可以看到在这个扩展点下可以定义四个子元素。其中: actionProvider:用来定义可以action的。 commonFilter:定义过滤器 commonWizard:...2008-01-05 22:47:19 · 166 阅读 · 0 评论 -
定义自己的Common Navigator一
所谓的Navigator,可以简单的理解为Eclipse中的资源导航视图,例如: Project Explorer视图 Project Explorer视图这一系列,我们就要来实现一个类似的Navigator视图。 一、 定义Navigator 在开始之前,我们先了解一下做Navigator需要的扩展点: 1. org.eclipse.ui.navigator.viewe...2008-01-05 22:27:52 · 563 阅读 · 0 评论 -
Eclipse运行(launcher)框架三
ShortCuts的增加我们要运行java的时候,我们在java文件上点右键,就有一个“run as”菜单,可以到里面选择java的运行方式;在“debug as”菜单里可以选择调试方式。所以我们也想有一个这个怎么办? 这里就要用到另一个扩展点:org.eclipse.debug.ui.launchShortcuts。这是和UI相关的,所以放到我们的UI插件里。我的实现如下: ...2008-01-02 15:05:24 · 379 阅读 · 0 评论 -
Eclipse运行(launcher)框架二
定义TabGroup上面我们定义完了一个type。一般来说我们双击就可以产生一个configuration。但是现在我们双击,会出现一个异常: 图四 很明白的意思:我们没有定义Tab Group。简单的说,我们要生成一个configuration,对应需要有一些tab页去配置内容,所以每个configuration都有一个对应的tabgroup。因为我们还没有为...2008-01-02 15:02:00 · 337 阅读 · 0 评论 -
Eclipse运行(launcher)框架一
基础 首先我们需要明白两个概念: LaunchConfigurationType字面上解就是一种运行类型。比如说java类型、Ant类型或者是C++类型。不同的类型就不同的运行方式。 LaunchConfiguration具体的某个要运行的对象的一个配置。比如说一个java类要运行就得知道类路劲、信赖库、Main类等;一个Eclipse插件要运行,就得配置...2008-01-02 14:40:51 · 1389 阅读 · 0 评论 -
Eclipse属性页的支持
附件是一个属性页使用的小文章。还附有代码。有兴趣的可以浏浏!2008-01-01 13:34:49 · 400 阅读 · 0 评论 -
Eclipse Debugger框架的不足
Eclipse的Debugger框架设计还是很好的。不过也有一些个不足之处: 1。层级结构较死板 一般咱们在Debugger View看到的是以下几层: Launch |_DebugTarget ...2008-08-15 14:54:45 · 165 阅读 · 0 评论 -
内嵌Editor中Action的问题
Editor中嵌入Editor,最大的问题就是Action的问题。我们知道,通过每个Editor都有自己对应的Action组,我们通过提供Editor的Contributor来提供该Editor对应的Actions。但是这在内嵌Editor中就会有问题了。例如,我有一个GEF的Editor:ZillionaireEditor。这个Editor嵌套在另一个Editor中:ZillionaireCo...2008-07-17 13:41:13 · 471 阅读 · 0 评论 -
使用JET自动生成代码
在Eclipse的EMF里提供了一个根据模板生成代码的机制:JET。EMF就是使用JET来生成代码的。JET可以根据定制的生成模板生成最终的文本(代码)。这一节大致讲一下怎么使用JET来生成代码。 一、原理JET的原理很简单:通过一个定义的模板,生成一个中间类,这个中间类有一个generate()方法,用来生成最终的一串字符串(也就是你想生成的代码)。generate()方法里就是使用一个Stri...2008-01-08 16:43:35 · 513 阅读 · 0 评论 -
Eclipse调试框架的学习与理解一
提供一个可视化的调试器对于调试程序是很有益处的。Eclipse里的java调试器做的已经非常完美了。只要努力,我们也能得到一个那么完美(理论上)的UI调试器。在Eclipse里,定义了很多针对调试器的扩展点供我们扩展,让我们可以轻松的利用Eclipse已有的机制来实现自己的UI调试器,例如:运行堆栈的显示、变量值的显示、追加和删除断点,以及单步跟踪等等。但是首先我们需要清楚两件事:1、...2008-01-10 13:30:19 · 149 阅读 · 0 评论 -
Eclipse调试框架的学习与理解二
三、断点的管理要支持调试,断点的支持是不可少的。Eclipse里,断点通常是显示在Editor的左边的ruler上。可以通过双击增加和删除。断点类需要自己提供,一般每个断点都会含有一个对应的Marker,用来记录这个断点,这样在Editor下次再打开的时候断点还能存在。 断点的追加、删除等等操作,都是通过断点管理器来实现的。可以通过以下方式得到断点管理器:DebugPlugin.getDe...2008-01-10 13:31:26 · 175 阅读 · 0 评论 -
Wizard页面的延迟创建
在做一个wizard的时候,有多个wizard页面;有不同的页面分支是一种很常见的情况。 如果没有特别的注意,按一般的方式构建wizard的时候,所以有page页都会被wizard一次性加载,进而创建出对应的页面控件。 一般这是没有问题的。不过如果有前后页面之前数据的联系;如果页面数过多,引用不必要的页面加载;那么就可以想办法改进这些问题。 wizard中所有页面的创建是在以下方法中完...2008-10-24 15:05:50 · 112 阅读 · 0 评论 -
把Swing Image转换成SWT Image
我觉得这种转换当然可能很少会用到,不过了解一下也是没有坏处的。 例如,我们想做一个类型于Windows的explorer的一个文件树来显示文件,希望每个树结点的图标和在explorer里看到的一样。到现在为此我不知道怎么用SWT去得到每个文件或文件夹的显示图标。因此我要借助SWing来完成。 首先,我们需要得到一个对应于文件(夹)图标的Swing的Image对象。如下: java.aw...2008-10-24 13:57:49 · 279 阅读 · 0 评论 -
Eclipse手势插件
附件是一个小小的插件。 大致功能类似于现在浏览器上的“手势”,用来在Eclipse的Editor上进行快速关闭和前后移动。 (可能有反应不正确的时候,还望大家多多指正)...2008-02-24 03:35:21 · 186 阅读 · 0 评论