【问题标题】:Jgraph (vanilla): how to set edge label, ProM-specificJgraph (vanilla):如何设置边缘标签,ProM 特定
【发布时间】:2013-08-16 12:50:34
【问题描述】:

我目前正在为 ProM 编写一个插件,以防有人熟悉它。一般来说,有一个图,表示为ProMJGraph,直接从JGraph派生而来。

此图包含:

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

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

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


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

更新。找到了:http://touchflow.googlecode.com/hg-history/75fada644b2a19c744130923cbd34747fba861a2/doc/jgraphmanual.pdf

更新2。我发现第 3.5.2 章«使用边缘»应该包含我的问题的答案。 pdf 中提供的源代码对我不起作用,这可能是 ProM 特定的。也许如果有谁在 Process Miner (ProM) 方面有经验,如果ProMJGraph 有什么棘手的问题,他/她可以给我一些提示。

【问题讨论】:

    标签: java jgraph


    【解决方案1】:

    它似乎是 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);
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2014-05-27
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多