论坛首页 Java企业应用论坛

Eclipse 绘图的新选择 Zest - 轻量级可视化工具包

浏览 5275 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-14   最后修改:2009-01-14
偶尔去GEF网站上看看, 发现在GEF的分类下除了Draw2d外,还加了一个项目: Zest. (太久没关注了, 汗~```)

介绍URL: http://www.eclipse.org/gef/zest/
Demo源码URL: http://www.eclipse.org/gef/zest/snippets.php

下面这段是从IBM developerworks抄来的.
引用
Zest 是一个轻量级可视化工具包,该工具包将在传统 GEF 编辑器顶部提供类似于 JFace 的包装。Zest 已经在 JFace 之后被模型化,并且所有 Zest 视图都与现有的 Eclipse 视图一样遵守相同的标准和约定(认为包括标签和内容提供程序)。这意味着可以在 Zest 中利用现有应用程序中使用的提供程序、操作和侦听程序。此外,Zest 拥有可重用布局,可以轻松地应用到您的可视化结果中。



总结:
1. Zest是基于Draw2d上的图像化模块.

2. widgets包下只提供了极少量的widgets, 可快速上手.

IContainer 容器的基类.
Graph 容器. 最底层的容器. 类似于GEF里面Diagram的概念,或者SWT中的Shell的概念.
GraphContainer 容器.看名字也知道是一个包含GraphNode的容器. 就像swt里面的Section,可下拉,可收缩. 长像,效果和Section也很像.


GraphItem Node的基类.

GraphNode 节点,就是图上的一个节点.
GraphConnection 连接线,连接2个GraphNode的连线. 当然, GraphNode可以自己连接自己.


具体的效果:


3. Zest简单,能做的事情也比较有限. 如果只需考虑可视化而不需编辑等功能,完全可以使用 Zest。比如:无逻辑的 组织结构图,流程图 等完全可以使用Zest来完成.


注意:
目前提供的 org.eclipse.zest.core 和 org.eclipse.zest.layouts 都不是Eclipse插件, 需要直接加到你项目的ClassPath中.

后记;
基于Zest, Eclipse实现了一个PDE的工具,PDE Incubator Dependency Visualization 插件依赖的分析器.
URL: http://www.eclipse.org/pde/incubator/dependency-visualization/index.php

实例代码:
public class GraphSnippet1 {
	public static void main(String[] args) {
		Display d = new Display();
		Shell shell = new Shell(d);
		shell.setText("GraphSnippet1");
		shell.setLayout(new FillLayout());
		shell.setSize(400, 400);

		Graph g = new Graph(shell, SWT.NONE);

		GraphNode n = new GraphNode(g, SWT.NONE, "Paper");
		GraphNode n2 = new GraphNode(g, SWT.NONE, "Rock");
		GraphNode n3 = new GraphNode(g, SWT.NONE, "Scissors");
		new GraphConnection(g, SWT.NONE, n, n2);
		new GraphConnection(g, SWT.NONE, n2, n3);
		new GraphConnection(g, SWT.NONE, n3, n);
		g.setLayoutAlgorithm(new SpringLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING), true);

		shell.open();
		while (!shell.isDisposed()) {
			while (!d.readAndDispatch()) {
				d.sleep();
			}
		}
	}
}

代码总结:
就是这么简单. 和SWT,JFace在一起, 完全没有任何问题. 可以快速的做出一个效果来.


代码效果图:

  • 描述: GraphContainer
  • 大小: 3.4 KB
  • 大小: 7.3 KB
  • 描述: 类图
  • 大小: 13.1 KB
  • 大小: 3.5 KB
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics