mirror of
https://github.com/octoleo/plantuml.git
synced 2024-12-22 02:49:06 +00:00
Merge pull request #1509 from DRKV333/master
Fixed nested togethers not working
This commit is contained in:
commit
a27ff9b7f2
@ -485,7 +485,7 @@ public class Cluster implements Moveable {
|
|||||||
|
|
||||||
private int togetherCounter = 0;
|
private int togetherCounter = 0;
|
||||||
|
|
||||||
private void printTogether(Together together, StringBuilder sb, List<SvekNode> nodesOrderedWithoutTop,
|
private void printTogether(Together together, Collection<Together> otherTogethers, StringBuilder sb, List<SvekNode> nodesOrderedWithoutTop,
|
||||||
StringBounder stringBounder, Collection<SvekLine> lines, DotMode dotMode, GraphvizVersion graphvizVersion,
|
StringBounder stringBounder, Collection<SvekLine> lines, DotMode dotMode, GraphvizVersion graphvizVersion,
|
||||||
UmlDiagramType type) {
|
UmlDiagramType type) {
|
||||||
sb.append("subgraph " + getClusterId() + "t" + togetherCounter + " {\n");
|
sb.append("subgraph " + getClusterId() + "t" + togetherCounter + " {\n");
|
||||||
@ -496,6 +496,10 @@ public class Cluster implements Moveable {
|
|||||||
for (Cluster child : children)
|
for (Cluster child : children)
|
||||||
if (child.group.getTogether() == together)
|
if (child.group.getTogether() == together)
|
||||||
child.printInternal(sb, lines, stringBounder, dotMode, graphvizVersion, type);
|
child.printInternal(sb, lines, stringBounder, dotMode, graphvizVersion, type);
|
||||||
|
|
||||||
|
for (Together otherTogether : otherTogethers)
|
||||||
|
if (otherTogether.getParent() == together)
|
||||||
|
printTogether(otherTogether, otherTogethers, sb, nodesOrderedWithoutTop, stringBounder, lines, dotMode, graphvizVersion, type);
|
||||||
|
|
||||||
sb.append("}\n");
|
sb.append("}\n");
|
||||||
togetherCounter++;
|
togetherCounter++;
|
||||||
@ -513,16 +517,17 @@ public class Cluster implements Moveable {
|
|||||||
if (together == null)
|
if (together == null)
|
||||||
node.appendShape(sb, stringBounder);
|
node.appendShape(sb, stringBounder);
|
||||||
else
|
else
|
||||||
togethers.add(together);
|
addTogetherWithParents(togethers, together);
|
||||||
|
|
||||||
added = node;
|
added = node;
|
||||||
}
|
}
|
||||||
for (Cluster child : children)
|
for (Cluster child : children)
|
||||||
if (child.group.getTogether() != null)
|
if (child.group.getTogether() != null)
|
||||||
togethers.add(child.group.getTogether());
|
addTogetherWithParents(togethers, child.group.getTogether());
|
||||||
|
|
||||||
for (Together together : togethers)
|
for (Together together : togethers)
|
||||||
printTogether(together, sb, nodesOrderedWithoutTop, stringBounder, lines, dotMode, graphvizVersion, type);
|
if (together.getParent() == null)
|
||||||
|
printTogether(together, togethers, sb, nodesOrderedWithoutTop, stringBounder, lines, dotMode, graphvizVersion, type);
|
||||||
|
|
||||||
if (skinParam.useRankSame() && dotMode != DotMode.NO_LEFT_RIGHT_AND_XLABEL
|
if (skinParam.useRankSame() && dotMode != DotMode.NO_LEFT_RIGHT_AND_XLABEL
|
||||||
&& graphvizVersion.ignoreHorizontalLinks() == false)
|
&& graphvizVersion.ignoreHorizontalLinks() == false)
|
||||||
@ -535,6 +540,14 @@ public class Cluster implements Moveable {
|
|||||||
return added;
|
return added;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void addTogetherWithParents(Collection<Together> collection, Together together) {
|
||||||
|
Together t = together;
|
||||||
|
while (t != null) {
|
||||||
|
collection.add(t);
|
||||||
|
t = t.getParent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void printCluster3_forKermor(StringBuilder sb, Collection<SvekLine> lines, StringBounder stringBounder,
|
public void printCluster3_forKermor(StringBuilder sb, Collection<SvekLine> lines, StringBounder stringBounder,
|
||||||
DotMode dotMode, GraphvizVersion graphvizVersion, UmlDiagramType type) {
|
DotMode dotMode, GraphvizVersion graphvizVersion, UmlDiagramType type) {
|
||||||
final List<SvekNode> tmp = getNodes(EntityPosition.getNormals());
|
final List<SvekNode> tmp = getNodes(EntityPosition.getNormals());
|
||||||
|
Loading…
Reference in New Issue
Block a user