WEB开发网
开发学院软件开发Java 基于 GMF 的流程分析工具的设计与实现 阅读

基于 GMF 的流程分析工具的设计与实现

 2009-12-17 00:00:00 来源:WEB开发网   
核心提示: layoutLayoutNodes()方法,该方法是真正计算所要布局的节点的坐标从而进行布局的更新,基于 GMF 的流程分析工具的设计与实现(9),和上面提到的做Node的布局是类似的,所不同的是此方法返回一个Runnable对象,Process和Task节点的图标和文本是放在同一行的,如何设置

layoutLayoutNodes()方法,该方法是真正计算所要布局的节点的坐标从而进行布局的更新,和上面提到的做Node的布局是类似的。所不同的是此方法返回一个Runnable对象,由这个Runnable对象的执行,完成真正的布局功能的执行。具体的功能实现可参见GMF默认的LayoutProvider: org.eclipse.gmf.runtime.diagram.ui.providers.internal.DefaultProvider。

UI外观的修改

GMF和GEF一样,都是用Draw2D来完成模型前端的显示工作,这里提到的对UI外观的修改主要是对Draw2D功能的一些应用。

在GMF中,每一个EditPart都会有一个Figure或PolylineConnection对象来做其前端的显示,因此对UI的外观的修改也就是对这些图形属性的修改。

设置渐变背景色

在图2中,要实现图形背景的渐变色,需要对TaskEditPart对应的TaskFigure进行修改,在图形进行重新绘制时设置其背景色。这里Draw2D提供了fillGradient()方法来绘制渐变色。如下:


清单 3. 设置渐变的背景色
 public void paintFigure(Graphics g) { 
  super.paintFigure(g); 
  Color oldForeground = g.getForegroundColor(); 
  Color oldBackground = g.getBackgroundColor(); 
  g.setForegroundColor(FlowUtil.FORE_COLOR); 
  g.setBackgroundColor(FlowUtil.TASK_BG_COLOR); 
  g.fillGradient(bounds, true); 
  g.setForegroundColor(oldForeground); 
  g.setBackgroundColor(oldBackground); 
 } 

设置子图形位置

默认情况下,Process和Task节点的图标和文本是放在同一行的,如何设置其为上下布局呢?修改它们对应的XXXNameEditPart的两个方法如下,设置文本的在下,图标在上:

上一页  4 5 6 7 8 9 10  下一页

Tags:基于 GMF 流程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接