通过PREFUSE库为Java显示节点的问题?
作者:互联网
我正在使用PREFUSE库开发数据的图形视图.
我的图表中有3种节点:
>申请
>数据库
>接口
以下是我的包含图形的.xml文件的一些摘录
<node id="AP-1">
<data key="name">Application1</data>
<data key="type">APPLICATION</data>
</node>
<node id="DB-1">
<data key="name">Database1</data>
<data key="type">DATABASE</data>
</node>
<node id="IT-1">
<data key="name">Interface1</data>
<data key="type">INTERFACE</data>
</node>
我想展示上面的3差异. 3种差异的节点种类.各种形状如下:
>矩形应用
>自定义形状的数据库(圆柱形状,通常用于表示数据库)
>通过圈子接口
我先读了一个.xml文件
图g
Q1.现在我如何区分数据组中的这3种节点.我想我应该写谓词.我已经阅读了prefuse的整个谓词和表达式手册,但是无法编写谓词来区分它们.那么谓词是什么呢?
Q2.如何指定我的自定义形状以及如何设置可以渲染我开发的自定义形状的渲染器?
解决方法:
为节点分配不同形状的范例是使用DataShapeAction
例如.在“国会”演示中(同样适用于节点作为表格):
int[] shapes = new int[]
{ Constants.SHAPE_RECTANGLE, Constants.SHAPE_DIAMOND };
DataShapeAction shape = new DataShapeAction(group, "Senate", shapes);
这会根据“参议院”数据字段中的值为数据点分配不同的形状,即参议员是一个形状,国会议员是另一种形式,在某种程度上(API中有各种控制,请参阅Constants.ORDINAL for一个例子).
换句话说,您可能会使用“类型”数据字段来指示节点的节点类型,然后使用DataShapeAction指定不同的形状.
定义一个新的形状当然是可能的,但需要更多的修补.我会尝试用更好的答案回复你,但我猜最简单的方法是编写自己的noderenderer子类,它能够绘制你想要的形状,然后可能扩展DataShapeAction来处理一些标记为您的新数据类型.不过,希望之后会有更多相关内容.
标签:java,prefuse 来源: https://codeday.me/bug/20191002/1844538.html