快速业务通道

[Eclipse]GEF入门系列(七、XYLayout和展开/折叠功能) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
onnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {      return new ChopBoxAnchor (getFigure());    }    public ConnectionAnchor getSourceConnectionAnchor(Request request) {      return new ChopBoxAnchor (getFigure());    }    public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {      return new ChopBoxAnchor (getFigure());    }    public ConnectionAnchor getTargetConnectionAnchor(Request request) {      return new ChopBoxAnchor(getFigure());    }    protected List getModelSourceConnections() {      return ((Node) this.getModel()).getOutgoingConnections();    }    protected List getModelTargetConnections() {      return ((Node) this.getModel()).getIncomingConnections();    } }

[Eclipse]GEF入门系列(七、XYLayout和展开/折叠功能)(3)

时间:2011-04-19 cnblogs bjzhanghao

从代码里可以看到,NodePart已经通过安装两个EditPolicy实现关于图形删除、移动和改 变尺寸的功能,所以具体的NodePart只要继承这个类就自动拥有了这些功能,当然模型得是 Node的子类才可以。在GEF应用程序里我们应该善于利用继承的方式来简化开发工作。代码后 半部分中的几个getXXXAnchor()方法是用来规定连接线锚点(Anchor)的,这里我们使用了 在Draw2D那篇帖子里介绍过的ChopBoxAnchor作为锚点,它是Draw2D自带的。而代码最后两个 方法的返回值则规定了以这个EditPart为起点和终点的连接列表,列表中每一个元素都应该 是Connection类型,这个类是模型的一部分,接下来就要说到。

在GEF里,节点间的连接线也需要有自己的模型和对应的EditPart,所以这里我们需要定 义Connection和ConnectionPart这两个类,前者和其他模型元素没有什么区别,它维护 source和target两个节点变量,代表连接的起点和终点;ConnectionPart继承于GEF的 AbstractConnectionPart类,请看下面的代码:

public class ConnectionPart extends AbstractConnectionEditPart {    protected IFigure createFigure() {      PolylineConnection conn = new PolylineConnection();      conn.setTargetDecoration(new PolygonDecoration());      conn.setConnectionRouter(new BendpointConnectionRouter());      return conn;    }    protected void createEditPolicies() {      installEditPolicy(EditPolicy.COMPONENT_ROLE, new ConnectionEditPolicy ());      installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new ConnectionEndpointEditPolicy());    }    protected void refreshVisuals() {    }    public void setSelected(int value) {      super.setSelected(value);      if (value != EditPart.SELECTED_NONE)        ((PolylineConnection) getFigure()).setLineWidth(2);      else        ((PolylineConnection) getFigure()).setLineWidth(1);    } }

[Eclipse]GEF入门系列(七、XYLayout和展开/折叠功能)(4)

时间:2011-04-19 cnblogs bjzhanghao

在getFigure()里可以指定你想要的连接线类型,箭头的样式,以及连接线的路由(走线 )方式,例如走直线或是直角折线等等。我们为ConnectionPart安装了一个角色为 EditPolicy.CONNECTION_ENDPOINTS_ROLE的ConnectionEndpointEditPolicy,安装它的目的 是提供连接线的选择、端点改变等功能,注意这个类是GEF内置的。另外,我们并没有

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号