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

偶尔去GEF网站上看看, 发现在GEF的分类下除了Draw2d外,还加了一个项目: [b][color=red]Zest[/color][/b]. (太久没关注了, 汗~```)

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

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


[b][color=red]总结:[/color][/b]
[b]1[/b]. Zest是基于Draw2d上的图像化模块.

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

[b]IContainer 容器的基类.[/b]
Graph 容器. 最底层的容器. 类似于GEF里面Diagram的概念,或者SWT中的Shell的概念.
GraphContainer 容器.看名字也知道是一个包含GraphNode的容器. 就像swt里面的Section,可下拉,可收缩. 长像,效果和Section也很像.
[img]http://www.iteye.com/upload/attachment/68772/5ca12466-1712-3ff0-b5a4-3f19ce601080.jpg[/img]
[b]
GraphItem Node的基类.[/b]
GraphNode 节点,就是图上的一个节点.
GraphConnection 连接线,连接2个GraphNode的连线. 当然, GraphNode可以自己连接自己.
[img]http://www.iteye.com/upload/attachment/68774/cef5c06f-70f4-3c11-b940-198db1ba591f.jpg[/img]

[b]具体的效果:[/b]
[img]http://www.iteye.com/upload/attachment/68777/24c857ec-188e-3f39-90c9-1bafa6ca91fd.jpg[/img]

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


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

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

[b][color=red]实例代码:[/color][/b]
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();
}
}
}
}

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


[b][color=red]代码效果图:[/color][/b]
[img]http://www.iteye.com/upload/attachment/68788/0fe9de9a-64ad-32bb-8a0b-32f1b5b657e1.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值