我正在为ProM编写一个插件,以防有人熟悉它。通常,有一个图表,表示为ProMJGraph
,它直接来自JGraph
。
此图表包含:
ProMGraphEdge
的(org.jgraph.graph.DefaultEdge
的直接孩子)和ProMGraphCell
的(org.jgraph.graph.DefaultGraphCell
的直接孩子)。我必须在边缘贴上标签。
例如,我将指向名为jgraph
的图形的第一条边的指针存储到e0
类型的变量ProMGraphEdge
。
我没有谷歌,我现在应该在哪里和我应该调用什么来为边缘e0
设置标签«hello»?
如果列表中的任何人都有指向JGraph手册的链接,请在此处发布。我找不到jgraph和NOT JGraphX的参考书,也没有找到JGraphT。
UPD2。我找到了第3.5.2章“使用边缘”,它应该包含我的问题的答案。特定于ProM的是,pdf中提供的源代码对我不起作用。也许如果Process Miner(ProM)中有任何人有经验,他/她可以给我一些提示,如果ProMJGraph
有些棘手的话。
答案 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
。稍后将此实例转换为带代码
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);
...
}