最近在开发Eclipse插件的过程中,需要展现COBOL作业的TWS调用流程,打算通过在Eclipse的视图中展现。大致的处理流程是:开发人员通过菜单选择查询TWS流程图选项,弹出对话框,输入需要查询的作业ID和环境参数,系统去主机DB2查询作业的关系数据库,将关系组装成Map表返回给Exclipse,Exclipse再通过解析Map并在视图中展现作业调用关系。
整个流程关键是展现,需要图形化。经过考虑查找,决定使用DRAW2D。这个过程非常闹心,毕竟是新的框架,下面是使用心得。
1、FigureCanvas可以作为底层画板,不用再实例化LightWeightSystem,因为FigureCanvas实例化之后会自行创建一个LightWeightSystem.
2、为了将图形展现在不同层次,需要创建Layer层,并通过LayeredPane来管理每个Layer的层次
3、ScrollPane支持滚动条,如果图形展现区域比较大,可以将图形加载在ScrollPane上面,但是图形在展现前能通过调用layoutManger获取子图的大小,以便计算scroll的position和extent的大小。
4、PolyConnection不受FlowLayout的限制,即如果layer层加了PolyConnection,且layer的layoutManger是FlowLayout,PolyConnection还是以SourcePosition 和TargetPosition决定。而不是顺序排列。
5、AbstractLayoutManager中的Layout()方法是设置各个子图的在本图层的位置(setBounds)的,不能在这个方法中更新本图层的位置,否则出现死循环,原因是:LightWeightSystem会维护一个UpdateManger,用来更新每个invalidate的figure;如果本图层(figure)在updateManager的invalid的列表里了,那么updateManager就会调用本图层(figure)对应LayoutManager的Layout()方法,并把本图层从invalid list中剔除,但是如果layout()方法又调用了figure.setBounds()等会导致figure的状态invalidate时,则updateManger又会将本图层加入到他的invalid List里面,这样就死循环了。
分享到:
相关推荐
GEF Draw2D 使用例子,可以直接运行的
eclipse draw2d实例大全 org.eclipse.draw2d.examples.cg org.eclipse.draw2d.examples.connections org.eclipse.draw2d.examples.graph org.eclipse.draw2d.examples.hittest org.eclipse.draw2d.examples.images ...
可以使用Draw2D编写自己的用来绘制图形的Java代码,这有助于您将精力集中于缩放代码和绘制代码上,把其他与绘制相关的工作留给Draw2D和SWT。您还可以通过使用所选择的Draw2D图形来控制您的图形的外观。Draw2D简化了...
Draw2d js图形库,画各种流程图,非常强大的javascript类图库。
Draw2d教程,网上的,我收集了一下。 写的很详细
draw2d 绘制图形教程 draw2d 绘制图形教程draw2d 绘制图形教程 draw2d 绘制图形教程
使用Draw2d做的流程图工具
Draw2d API Draw2d是一个宿主在SWT Composite控件中的轻量级的构件(widge)系统。一个Draw2d应用程序由一个 SWT Composite控件, 一个轻量级系统, 以及其内容(figures)组成。
eclipse Draw2d Programmer Guide
Draw2D:eclipse Draw2D documents and samples.
网上的Draw2D的参考资料实在是太少了,对于新手来说太不友好了,所以,我总结了一份只有10来页的PPT做为新手的快速入门教程。
GEF/Draw2D入门例子 主要是Draw2d的几个入门的例子和入门的书籍 对eclipse中图形的绘画讲解
Draw2D教程,介绍了Draw2D的基本知识,对学习Draw2D有所帮助
org.eclipse.draw2d_3.1.0.jarorg.eclipse.draw2d_3.1.0.jarorg.eclipse.draw2d_3.1.0.jarorg.eclipse.draw2d_3.1.0.jar
swt总结draw2d绘图
draw2d_Demo_code
eclipse draw2d 示例代码 码很全的。。。。
用Draw2d绘制曲线图形,在eclipse环境下运行
这是一个Draw2d的开发文档,可以学习一下eclipse插件开发的一些画图技术
基于draw2d和easyui开发的一个流程管理原型界面,能拖拽,根据拖拽的内容生成xml内容,根据xml自动解析生成界面