GEF 学习系列之一:给画布添加标尺和辅助线

本文介绍了如何在GEF环境中为画布添加标尺和辅助线。首先修改模型,新增DiagramRuler和DiagramGuide类。接着通过RulerComposite和RulerProvider设置标尺的可见性。创建自定义的Command如CreateGuideCommand来处理辅助线的创建。通过DiagramRulerProvider监听和响应标尺和辅助线的变化。最后,将ToggleRulerVisibilityAction添加到上下文菜单,实现标尺的切换功能。
摘要由CSDN通过智能技术生成

      标尺位于画布的上部和左侧,在每个标尺上可以建立很多与标尺垂直的辅助线,这些显示在画布上的虚线具有吸附功能。效果图如下所示:

      标尺和辅助线的实现要稍微复杂一些。首先要修改原有的模型,新增加标尺和辅助线这两个类:DiagramRuler、DiagramGuide。在根模型ShapesDiagram中新增如下变量:

    /**为模型添加标尺对象*/
    private DiagramRuler leftRuler,topRuler;
    private boolean rulersVisibility = true;
    private boolean gridVisibility = true;

      标尺和网格是否显示是保存在根模型中的,编辑后模型保存时需要将这两个值保存(可以写XML或者序列化都行),下次在打开该模型文件时就可以还原上次的设置了。rulersVisibility 用来表示标尺的可见性,因为辅助线是建立在标尺上的,所以DiagramRuler到DiagramGuide有一个包含的关系。

   ModelElement 到Guide有两个引用,表示ModelElement 吸附到的两条辅助线(为了简单起见,在本文附的例子中并没有实际使用到它们,Guide类中定义的几个方法也没有用到)。Guide类

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值