前文《Eclipse JFace Binding/绑定 (1)》介绍了JavaBean的事件机制,Eclipse的绑定利用了这种机制,(据说Eclipse Binding的下一个目标是Pojo对象的双向绑定,利用asm这样的字节码操作库)。
绑定针对对象实例而不是类型
在深入之前,需要明确的是,在Java中绑定永远是针对对象实例的绑定,而不是针对对象类型的绑定。也就是说下面的代码会使model之前注册的监听器失效。 Continue reading
前文《Eclipse JFace Binding/绑定 (1)》介绍了JavaBean的事件机制,Eclipse的绑定利用了这种机制,(据说Eclipse Binding的下一个目标是Pojo对象的双向绑定,利用asm这样的字节码操作库)。
绑定针对对象实例而不是类型
在深入之前,需要明确的是,在Java中绑定永远是针对对象实例的绑定,而不是针对对象类型的绑定。也就是说下面的代码会使model之前注册的监听器失效。 Continue reading
binding这个词挺有意思的,中文意译为“绑定”,音译也可以是”绑定“,但是“绑定”这个词看起来又不是像“巴士”这样的词一样属于外来词。我深深地感觉第一个把binding翻译成“绑定”的人当时一定感觉很好。
为什么需要“绑定”
在MVC架构中,View(GUI)上的控件的值来源于Model,用户在View上的操作也需要更新到Model。由于桌面应用程序的实时响应特性,后台服务(如数字校验、根据单价和数量计算总价)对Model的更新也需要实时通过View反馈给用户。
Continue reading
很长一段时间没有继续写了,很多东西都快忘记了,赶紧捡起来
让你的GEF图元可以拖动和缩放
拖动算是最简单的用户交互吧,不过麻雀虽小,肝胆俱全,不理解其原理和设计思路,很难谈得上去应用,但是要理解这一整套交互模型又有相当的难度,本文虽重在实践,这里也略做介绍。后文中所述图元指EditPart对象实例。
Continue reading
一直比较喜欢ibus,毕竟是官方支持,而且的确比较简单,不用像其他的输入法,配置繁杂不说,还经常出问题。添加了中文语言支持时会自动安装ibus,然后添加拼音输入法就可以用了。
Continue reading
将View中的图形移到编辑器中
在View中是不能对图形进行移动、修改大小的,需要对图形进行修改必须使用Editor,因此,我们首先创建一个GEF编辑器,然后将图形显示在编辑器中。
创建编辑器
打开plugin.xml,打开Extensions标签页,添加org.eclipse.ui.editors扩展,然后添加一个Editor,Name为Nodes GEF Editor,Extensions为gef,如下图所示:
Continue reading
添加Tooltips
我们希望用户将鼠标移动到图元上时,能够友好的显示图元的一些详细信息,可以通过Tooltip的方法实现。GEF中Figure类中定义了图元的Tooltip,其类型为IFigure,因此我们可以创建一个Label,然后将Label作为图元的Tooltip显示。
在NodeFigure类中添加一个私有方法createToolTip(),将结点的位置和背景的颜色显示给用户。
Continue reading
一口气发了6篇关于Eclipse GEF开发的文章,主要是记录这几天来的学习和整理所得,但是目前还没有整理完,只是涉及到在视图中显示GEF图形,到编辑器中的GEF图形编辑这个目标才完成了1/5,只怪GEF太复杂,马上会放假回家,休息一个星期再继续。
添加连接线
要在两个结点(Node)之间显示连接线,需要在模型上添加连接线,修改showDiagram()函数,在node和node2之间添加一个Connection对象,为了方便,先在Connection类中添加connection()方法,如下所示:
public void connect(Node source, Node target){ setSource(source); setTarget(target); source.addOutgoingConnection(this); target.addIncomingConnection(this); }