Jgraph(vanilla):如何设置边缘标签,特定于ProM

时间:2013-08-14 10:20:45

标签: java jgraph

我正在为ProM编写一个插件,以防有人熟悉它。通常,有一个图表,表示为ProMJGraph,它直接来自JGraph

此图表包含:

  • ProMGraphEdge的(org.jgraph.graph.DefaultEdge的直接孩子)和
  • ProMGraphCell的(org.jgraph.graph.DefaultGraphCell的直接孩子)。

我必须在边缘贴上标签。 例如,我将指向名为jgraph的图形的第一条边的指针存储到e0类型的变量ProMGraphEdge

我没有谷歌,我现在应该在哪里和我应该调用什么来为边缘e0设置标签«hello»?


如果列表中的任何人都有指向JGraph手册的链接,请在此处发布。我找不到jgraph和NOT JGraphX的参考书,也没有找到JGraphT。

UPD。找到它:http://touchflow.googlecode.com/hg-history/75fada644b2a19c744130923cbd34747fba861a2/doc/jgraphmanual.pdf

UPD2。我找到了第3.5.2章“使用边缘”,它应该包含我的问题的答案。特定于ProM的是,pdf中提供的源代码对我不起作用。也许如果Process Miner(ProM)中有任何人有经验,他/她可以给我一些提示,如果ProMJGraph有些棘手的话。

1 个答案:

答案 0 :(得分:0)

它出现了ProM特定。

问题中提到的pdf部分3.5.2包含有关如何向普通JGraph添加标签的答案,我不得不使用一些不同的代码来获得任何效果:

newArc = addArc(places.get(src), transitions.get(dest));
if (label != null) {        
    AttributeMap amap = newArc.getAttributeMap();
    amap.put(AttributeMap.LABEL, "Hello world");
    amap.put(AttributeMap.SHOWLABEL, true);
    amap.put(AttributeMap.LABELALONGEDGE, true);
}

此代码驻留在派生自AbstractResetInhibitorNet的类中,其实例称为graph。稍后将此实例转换为带代码

的JGraph
ProMJGraphPanel visualizeGraph(PluginContext context,
                               CPNGraph graph, // instanceof AbstractResetInhibitorNet
                               ViewSpecificAttributeMap map) {
    ProMGraphModel model = new ProMGraphModel(graph);
    GraphLayoutConnection layoutConnection = new GraphLayoutConnection(graph);
    layoutConnection.expandAll();
    ProMJGraph jgraph = new ProMJGraph(model, map, layoutConnection);
    ...
}