[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网
辅助线才是可见的。我们新增了Ruler和 Guide两个类,前者表示标尺,后者表示辅助线。因为辅助线是建立在标尺上的,所以Ruler 到Guide有一个包含关系(黑色菱形);画布上有两个标尺,分别用topRuler和leftRuler这 两个变量引用,也是包含关系,也就是说,画布上只能同时具有这两个标尺;Node到Guide有 两个引用,表示Node吸附到的两条辅助线(为了简单起见,在本文附的例子中并没有实际使 用到它们,Guide类中定义的几个方法也没有用到)。Guide类里的map变量用来记录吸附在自 己上的节点和对应的吸附边。要让画布上能够显示标尺,首先要将原先的GraphicalViewer改 放在一个 RulerComposite实例上(而不是直接放在编辑器上),后者是GEF提供的专门用于 显示标尺的组件,具体的改变方法如下:
[Eclipse]GEF入门系列(九、增加易用性)(6)时间:2011-04-19 cnblogs bjzhanghao然后,要设置GraphicalViewer的几个有关属性,如下所示,其中前两个分别表示左侧和 上方的标尺,而最后一个表示标尺的可见性:
在前两个方法里用到了SubjectRulerProvider这个类,它是我们从RulerProvider类继承 过来的, RulerProvider是一个比较特殊的类,其作用有点像EditPolicy,不过除了一些 getXXXCommand()方法以外,还有其他几个方法要实现。需要返回Command的方法包括: getCreateGuideCommand()、getDeleteGuideCommand()和 getMoveGuideCommand(),分别返 回创建辅助线、删除辅助线和移动辅助线的命令,下面列出创建辅助线的命令,其他两个的 实现方式是类似的,你可以在本文所附例子中找到它们的代码:
接下来再看看RulerProvider的其他方法,SubjectRulerProvider维护一个Ruler对象,在 构造方法里要把它的值传入。此外,在构造方法里还应该给Ruler和Guide模型对象增加监听 器用来响应标尺和辅助线的变化,下面是Ruler监听器的主要代码(因为使用了EMF作为模型 ,所以监听器实现为Adapter。如 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |