2

我目前正在尝试在 java 中为 yEd 转储图表。我一直在尝试使用 graphml 作为格式,但我发现它非常麻烦。特别是节点的大小不会随着标签的大小而调整大小,所以大多数时候标签会比实际文件大。

在不实际进入并指定每个节点的宽度和高度的情况下,我能做些什么来解决这个问题?

谢谢

4

1 回答 1

2

有一种方法,尽管这种方法使用非官方 API,并且可能不适用于任何版本,但当前版本(撰写时为 3.9.2)。

在 GraphML 中,在图形级别添加以下键:

  <g:key id="ppkey" for="graph" yfiles.type="postprocessors"/>
  <g:graph id="G" edgedefault="directed">
    <g:data key="ppkey">
      <y:Postprocessors>
        <y:Processor class="A.A.A.A.A">
          <y:Option name="IGNORE_WIDTHS" value="false"/>
          <y:Option name="IGNORE_HEIGHTS" value="true"/>
          <y:Option name="ADAPT_TO_MAXIMUM_NODE" value="false"/>
        </y:Processor>
      </y:Postprocessors>
    </g:data>
  </g:graph>

正如您所看到的,“AAAAA”显然是一个混淆的类名,它可能会在构建之间发生变化,并以某种方式破坏您的脚本。

造成这种不便的原因实际上很简单:yEd 不应该以自动化方式使用(许可证甚至明确禁止纯自动用例),因此针对交互式使用进行了优化。所以点击按钮实际上是有意的。为什么?因为 yEd 是一个基于强大的商业图书馆的免费产品,它是免费的,因为高级用户购买了图书馆的许可证,因此在某种程度上赞助了 yEd 的开发和支持。如果您真的需要以编程方式利用该功能,您应该查看直接许可库。

也就是说,您也可以尝试 Excel 导入 - 它会自动为您执行此步骤,但是您必须创建一个 Excel 文件才能开始。

于 2012-07-06T18:24:45.873 回答