- 浏览: 987478 次
- 性别:
- 来自: 北京
最新评论
-
运乃强谦:
老哥,你确定这个wsdl 地址 可以访问?
[CXF] Server与Client实现方式五:HTTPS -
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
[CXF] Server与Client实现方式四:JMS -
dengmiao:
JAXB学习三 (验证) -
panamera:
你好。可以提供maven pom配置是怎么配置的?不知道你使用 ...
[CXF] Server与Client实现方式四:JMS -
u010221220:
请问楼主一二三部分的代码都应该放在哪个函数体中。
使用JDI监听Java程序运行
文章列表
三、断点的管理
要支持调试,断点的支持是不可少的。Eclipse里,断点通常是显示在Editor的左边的ruler上。可以通过双击增加和删除。断点类需要自己提供,一般每个断点都会含有一个对应的Marker,用来记录这个断点,这样在Editor下次再打开的时候断点还能存在。
断点的追加、删除等等操作,都是通过断点管理器来实现的。可以通过以下方式得到断点管理器:
DebugPlugin.getDefault().getBreakpointManager();
四、事件交互
调试时的事件交互一般是通过Socket连接来完成,而且一般有两个连接:一个是发送命令用的Socket;另一个是接收事件用的 ...
- 2008-01-10 13:31
- 浏览 3336
- 评论(7)
提供一个可视化的调试器对于调试程序是很有益处的。Eclipse里的java调试器做的已经非常完美了。
只要努力,我们也能得到一个那么完美(理论上)的UI调试器。在Eclipse里,定义了很多针对调试器的扩展点供我们扩展,让我们可以轻松的利用Eclipse已有的机制来实现自己的UI调试器,例如:运行堆栈的显示、变量值的显示、追加和删除断点,以及单步跟踪等等。
但是首先我们需要清楚两件事:
1、Eclipse并没有提供任何针对调试器的默认实现。
2、Eclipse本身并不支持调试,这需要语言工具或引擎的支持。
Eclipse只是提供了一个共通的UI界面来操作和显示结果。这点我们是需要首先
在Eclipse的EMF里提供了一个根据模板生成代码的机制:JET。EMF就是使用JET来生成代码的。JET可以根据定制的生成模板生成最终的文本(代码)。这一节大致讲一下怎么使用JET来生成代码。 一、原理JET的原理很简单:通过一个定义 ...
- 2008-01-08 16:43
- 浏览 5353
- 评论(3)
OK,我们已经有了一个初步可运行的Navigator了,现在它看起来已经比较丰富了。不过我们在xml文件下的任意结点上点右键时,都没有菜单显示。另外假如我们有一个新的wizard,我们也想像java的package explorer视图一样显示在new菜单的那一层。那我们应该怎么做呢?这一节就来介绍这部分的实现。 实际上,从上面的介绍里,很多人可能都已经知道了怎么完成这些事情。不过这里还是写一个完整的介绍过程。 先说一下我们的目标:在IResource对象的new菜单里,加上java project wizard。在xml文件的
- 2008-01-05 22:55
- 浏览 4386
- 评论(7)
这一节和下一节我们都将来关注另一个扩展点: org.eclipse.ui.navigator.navigatorContent 首先我们先增加一个扩展声明,然后看看它支持什么东西: 图六 可以看到在这个扩展点下可以定义四个子元素。其中: actionProvider:用来定义可以action的。
- 2008-01-05 22:47
- 浏览 4832
- 评论(5)
所谓的Navigator,可以简单的理解为Eclipse中的资源导航视图,例如: Project Explorer视图
- 2008-01-05 22:27
- 浏览 6930
- 评论(4)
ShortCuts的增加
我们要运行java的时候,我们在java文件上点右键,就有一个“run as”菜单,可以到里面选择java的运行方式;在“debug as”菜单里可以选择调试方式。所以我们也想有一个这个怎么办?
这里就要用到另一个扩展点:org.eclipse.debug.ui.launchShortcuts。这是和UI相关的,所以放到我们的UI插件里。我的实现如下:
<extension point="org.eclipse.debug.ui.launchShortcuts">
<short ...
定义TabGroup
上面我们定义完了一个type。一般来说我们双击就可以产生一个configuration。但是现在我们双击,会出现一个异常:
图四
很明白的意思:我们没有定义Tab Group。简单的说,我们要生成一个configuration,对应 ...
基础
首先我们需要明白两个概念:
LaunchConfigurationType
字面上解就是一种运行类型。比如说java类型、Ant类型或者是C++类型。不同的类型就不同的运行方式。
LaunchConfiguration
具体的某个要运行的对象的一个配置。比如说一个java类要运行就得知道类路劲、信赖库、Main类等;一个Eclipse插件要运行,就得配置有插件领事信息等等;或者是一个A
到目前为止,其实我们已经有了一个虽然简单,但还算完整的应用。不过总是有点单调。
这一节我们给我们的Editor加一点其他的东西。严格来说已经不属性GEF的范围了。
一、增加属性页的支持
在Eclipse里要支持属性页,你选择的对象必须是实现了ISelectionProvider接口。幸好,在GEF里,所有的选择都返回的是一个EditPart,而这些EditPart已经默认实现了这个接口,所以我们就省了很多事了。
要想在属性页里显示内容,除了对象实现ISelectionProvider接口以外,我们还需要实现一个IPropertySource接口,用来提供属性页要显 ...
这一节,我们继续来看一下连接线。
一、带箭头的连接线
带箭头本身其实通常来说都不是模型需要的,只是为了看起来方便而已。呵呵。这里我们就做这样的假设。所以要实现一个带箭头的连接线,只要让连线figure加一个箭头就可以了。
之前我们建了一个抽象的连接模型,但是一直只有一个子类。这里它终于又要派上用场了。
我们再建一个连接线模型:ArrowConnectionModel,让它也继承AbstractConnectionModel。这就够了,模型就建好了。然后我们再建一个ArrowConnectionEditPart,继承AbstractConnectionModelEditPart,这就是Ar ...
GEF理解系列七(2)
- 博客分类:
- GEF
二、放置EditManager
在GEF的EditPart里,有一个方法可以用来处理此事:performRequest();
那我们就把我们的EditManager放在这吧。如下:
到现在为止,我们已经完成了很多工作了:图形的缩放,移动;增加,删除;连线的增加删除,重定向。
不过我们还没有办法修改我们HelloWorld上的文字。这一节我们就来实现对文字的修改。
一、直接编辑的支持
要想支持编辑功能。显示我们也需要安装Policy,写command。那好,我们先做好这部分工作。
EditPolicy里有一个直接编辑Policy:DirectEditPolicy。我们写一个子类继承这个Policy,然后显然应该把它安放在HelloWorldEditPart上。OK,先完成这些。
在HelloWorldEditPart里安装Policy:
installEditP ...
GEF理解系列六(2)
- 博客分类:
- GEF
三、删除结点时删除连接线
刚才我们已经完成了删除结点的操作。不过它有一个问题:结点是被删除了,可连在它上面的连接线还存在。这是一个很可笑しい的结果。所以这里我们要修改一下,删除结点时,把它上面的连接线也一并删除。
这个操作要关注的地方只有一个,就是删除结点命令。
之前我们说过,一个连接线要想被显示出来的条件。这里我们可以借助这个条件来实现连接线的删除:让连接线脱离源的目标。所以删除结点时要想把连接线一并删除,我们就要在删除结点时先得到结点的所有连接线,然后让这些连接线脱离源和目标。修改删除结点命令如下:
public class DeleteHelloWorldCommand ...