快速业务通道

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
但没有像缩放功能那样提供对应的 RetargetAction,不知道GEF是出于什么考虑。另外因为这个Action没有预先设置的图标,所 以把它直接添加到工具条上会很不好看,所以要么把它只放在菜单中,要么为它设置一个图 标,至于添加到菜单的方法这里不赘述了。

要想在保存模型时同时记录当前网格线是否显示,必须在画布模型里增加一个布尔类型变 量,并在打开模型和保存模型的方法中增加处理它的代码。

[Eclipse]GEF入门系列(九、增加易用性)(4)

时间:2011-04-19 cnblogs bjzhanghao

几何对齐

这个功能也是为了方便用户排列图形元素的,如果打开了此功能,当用户拖动的图形有某 个边靠近另一图形的某个平行边延长线时,会自动吸附到这条延长线上;若两个图形的中心 线(通过图形中心点的水平或垂直线)平行靠近时也会产生吸附效果。例如下图中, Subject1的左边与 Subject2的右边是吸附在一起的,Subject3原本是与Subject2水平中心线 吸附的,而用户在拖动的过程中它的上边吸附到 Subject1的底边。

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

图4 几何对齐

几何对齐也是通过GraphicalViewer的属性来控制是否打开的,属性的名称是 SnapToGeometry.PROPERTY_SNAP_ENABLED,值为布尔类型。在程序里增加吸附对齐切换的功 能和前面说的增加网格切换功能基本是一样的,记住GEF为它提供的Action是 ToggleSnapToGeometryAction。

要实现对齐功能,还有一个重要的步骤,那就是在画布所对应的EditPart的getAdapter() 方法里增加对 SnapToHelper类的回应,像下面这样:

public Object getAdapter(Class adapter) {    if (adapter == SnapToHelper.class) {      List snapStrategies = new ArrayList();      Boolean val = (Boolean)getViewer().getProperty (RulerProvider.PROPERTY_RULER_VISIBILITY);      if (val != null && val.booleanValue())        snapStrategies.add(new SnapToGuides(this));      val = (Boolean)getViewer().getProperty (SnapToGeometry.PROPERTY_SNAP_ENABLED);      if (val != null && val.booleanValue())        snapStrategies.add(new SnapToGeometry(this));      val = (Boolean)getViewer().getProperty (SnapToGrid.PROPERTY_GRID_ENABLED);      if (val != null && val.booleanValue())        snapStrategies.add(new SnapToGrid(this));      if (snapStrategies.size() == 0)        return null;      if (snapStrategies.size() == 1)        return (SnapToHelper)snapStrategies.get(0);      SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()];      for (int i = 0; i < snapStrategies.size(); i++)        ss[i] = (SnapToHelper)snapStrategies.get(i);      return new CompoundSnapToHelper(ss);    }    return super.getAdapter(adapter); }

[Eclipse]GEF入门系列(九、增加易用性)(5)

时间:2011-04-19 cnblogs bjzhanghao

标尺和辅助线

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

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

图5 标尺和辅助线

标尺和辅助线的实现要稍微复杂一些。首先要修改原有的模型,新增加标尺和辅助线这两 个类,它们之间的关系请看下图:< /p>

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

图6 增加标尺和辅助线后的模型

与上篇帖子里的 模型图比较后可以发现,在Diagram类里增加了四个变量,其中除 rulerVisibility以外三个的作用都在前面部分做过介绍,而rulerVisibility和它们类似, 作用记录标尺的可见性,当然只有在标尺可见的时候

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号