summaryrefslogtreecommitdiff
path: root/src/net/sourceforge/plantuml/sequencediagram
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/sourceforge/plantuml/sequencediagram')
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java1
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java14
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java7
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java43
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java41
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java2
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java11
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java2
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java8
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java11
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java6
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java2
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java2
-rw-r--r--src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java9
14 files changed, 102 insertions, 57 deletions
diff --git a/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java b/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java
index 994afb5..0e8f7f0 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/GroupingLeaf.java
@@ -113,7 +113,6 @@ final public class GroupingLeaf extends Grouping implements EventWithDeactivate
}
public boolean addLifeEvent(LifeEvent lifeEvent) {
- lifeEvent.setLinkedToGroupingEnd(true);
return true;
}
diff --git a/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java b/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java
index a887b93..131d52d 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/LifeEvent.java
@@ -87,10 +87,6 @@ public class LifeEvent extends AbstractEvent implements Event {
return this.p == p && type == LifeEventType.DESTROY;
}
- // public double getStrangePos() {
- // return message.getPosYendLevel();
- // }
- //
private AbstractMessage message;
public void setMessage(AbstractMessage message) {
@@ -101,14 +97,4 @@ public class LifeEvent extends AbstractEvent implements Event {
return message;
}
- // private boolean linkedToGroupingEnd;
- //
- // // public boolean isLinkedToGroupingEnd() {
- // // return linkedToGroupingEnd;
- // // }
-
- public void setLinkedToGroupingEnd(boolean linkedToGroupingEnd) {
- // this.linkedToGroupingEnd = linkedToGroupingEnd;
- }
-
}
diff --git a/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java b/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java
index ba86a48..4f8fa0b 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/command/CommandArrow.java
@@ -152,16 +152,19 @@ public class CommandArrow extends SingleLineCommand2<SequenceDiagram> {
final boolean hasDressing2 = contains(dressing2, ">", "\\", "/", "x");
final boolean hasDressing1 = contains(dressing1, "x", "<", "\\", "/");
+ final boolean reverseDefine;
if (hasDressing2) {
p1 = getOrCreateParticipant(diagram, arg, "PART1");
p2 = getOrCreateParticipant(diagram, arg, "PART2");
circleAtStart = dressing1.contains("o");
circleAtEnd = dressing2.contains("o");
+ reverseDefine = false;
} else if (hasDressing1) {
p2 = getOrCreateParticipant(diagram, arg, "PART1");
p1 = getOrCreateParticipant(diagram, arg, "PART2");
circleAtStart = dressing2.contains("o");
circleAtEnd = dressing1.contains("o");
+ reverseDefine = true;
} else {
return CommandExecutionResult.error("Illegal sequence arrow");
@@ -202,11 +205,13 @@ public class CommandArrow extends SingleLineCommand2<SequenceDiagram> {
}
if (dressing1.contains("x")) {
config = config.withHead2(ArrowHead.CROSSX);
-
}
if (dressing2.contains("x")) {
config = config.withHead2(ArrowHead.CROSSX);
}
+ if (reverseDefine) {
+ config = config.reverseDefine();
+ }
config = applyStyle(arg.getLazzy("ARROW_STYLE", 0), config);
diff --git a/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java b/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java
index 961d61d..50f21da 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/command/CommandReturn.java
@@ -35,10 +35,11 @@
*/
package net.sourceforge.plantuml.sequencediagram.command;
-import java.util.List;
-
import net.sourceforge.plantuml.command.CommandExecutionResult;
-import net.sourceforge.plantuml.command.SingleLineCommand;
+import net.sourceforge.plantuml.command.SingleLineCommand2;
+import net.sourceforge.plantuml.command.regex.RegexConcat;
+import net.sourceforge.plantuml.command.regex.RegexLeaf;
+import net.sourceforge.plantuml.command.regex.RegexResult;
import net.sourceforge.plantuml.cucadiagram.Display;
import net.sourceforge.plantuml.sequencediagram.EventWithDeactivate;
import net.sourceforge.plantuml.sequencediagram.LifeEventType;
@@ -47,34 +48,48 @@ import net.sourceforge.plantuml.sequencediagram.SequenceDiagram;
import net.sourceforge.plantuml.skin.ArrowBody;
import net.sourceforge.plantuml.skin.ArrowConfiguration;
-public class CommandReturn extends SingleLineCommand<SequenceDiagram> {
+public class CommandReturn extends SingleLineCommand2<SequenceDiagram> {
public CommandReturn() {
- super("(?i)^return[%s]*(.*)$");
+ super(getRegexConcat());
+ }
+
+ private static RegexConcat getRegexConcat() {
+ return new RegexConcat(new RegexLeaf("^"), //
+ new RegexLeaf("PARALLEL", "(&%s*)?"), //
+ new RegexLeaf("[%s]*"), //
+ new RegexLeaf("return[%s]*"), //
+ new RegexLeaf("MESSAGE", "(.*)"), //
+ new RegexLeaf("$"));
}
@Override
- protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, List<String> arg) {
+ protected CommandExecutionResult executeArg(SequenceDiagram sequenceDiagram, RegexResult arg) {
- Message message = sequenceDiagram.getActivatingMessage();
+ Message message1 = sequenceDiagram.getActivatingMessage();
boolean doDeactivation = true;
- if (message == null) {
+ if (message1 == null) {
final EventWithDeactivate last = sequenceDiagram.getLastEventWithDeactivate();
if (last instanceof Message == false) {
return CommandExecutionResult.error("Nowhere to return to.");
}
- message = (Message) last;
+ message1 = (Message) last;
doDeactivation = false;
}
- final ArrowConfiguration arrow = message.getArrowConfiguration().withBody(ArrowBody.DOTTED);
+ final ArrowConfiguration arrow = message1.getArrowConfiguration().withBody(ArrowBody.DOTTED);
- sequenceDiagram.addMessage(
- new Message(message.getParticipant2(), message.getParticipant1(), Display.getWithNewlines(arg
- .get(0)), arrow, sequenceDiagram.getNextMessageNumber()));
+ final Display display = Display.getWithNewlines(arg.get("MESSAGE", 0));
+ final Message message2 = new Message(message1.getParticipant2(), message1.getParticipant1(), display, arrow,
+ sequenceDiagram.getNextMessageNumber());
+ final boolean parallel = arg.get("PARALLEL", 0) != null;
+ if (parallel) {
+ message2.goParallel();
+ }
+ sequenceDiagram.addMessage(message2);
if (doDeactivation) {
- final String error = sequenceDiagram.activate(message.getParticipant2(), LifeEventType.DEACTIVATE, null);
+ final String error = sequenceDiagram.activate(message1.getParticipant2(), LifeEventType.DEACTIVATE, null);
if (error != null) {
return CommandExecutionResult.error(error);
}
diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java
index 13392dc..9be36c0 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSet.java
@@ -36,6 +36,7 @@
package net.sourceforge.plantuml.sequencediagram.graphic;
import java.awt.geom.Dimension2D;
+import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -50,7 +51,9 @@ import net.sourceforge.plantuml.ISkinParam;
import net.sourceforge.plantuml.LineParam;
import net.sourceforge.plantuml.SkinParamBackcolored;
import net.sourceforge.plantuml.Url;
+import net.sourceforge.plantuml.graphic.InnerStrategy;
import net.sourceforge.plantuml.graphic.StringBounder;
+import net.sourceforge.plantuml.graphic.TextBlock;
import net.sourceforge.plantuml.sequencediagram.Englober;
import net.sourceforge.plantuml.sequencediagram.Event;
import net.sourceforge.plantuml.sequencediagram.Newpage;
@@ -62,6 +65,7 @@ import net.sourceforge.plantuml.skin.ComponentType;
import net.sourceforge.plantuml.skin.Context2D;
import net.sourceforge.plantuml.skin.SimpleContext2D;
import net.sourceforge.plantuml.skin.Skin;
+import net.sourceforge.plantuml.ugraphic.MinMax;
import net.sourceforge.plantuml.ugraphic.UClip;
import net.sourceforge.plantuml.ugraphic.UGraphic;
import net.sourceforge.plantuml.ugraphic.UStroke;
@@ -244,30 +248,55 @@ public class DrawableSet {
return dimension;
}
+ TextBlock asTextBlock(final double delta, final double width, final Page page, final boolean showTail) {
+ return new TextBlock() {
+
+ public void drawU(UGraphic ug) {
+ drawU22(ug, delta, width, page, showTail);
+ }
+
+ public Dimension2D calculateDimension(StringBounder stringBounder) {
+ final double height = page.getHeight();
+ return new Dimension2DDouble(width, height);
+ }
+
+ public MinMax getMinMax(StringBounder stringBounder) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Rectangle2D getInnerPosition(String member, StringBounder stringBounder, InnerStrategy strategy) {
+ throw new UnsupportedOperationException();
+ }
+
+ };
+
+ }
+
void drawU22(final UGraphic ug, final double delta, double width, Page page, boolean showTail) {
- // final UGraphic ugOrig = ug;
final double height = page.getHeight();
final UGraphic ugTranslated = clipAndTranslate2(delta, width, page, ug);
final SimpleContext2D context = new SimpleContext2D(true);
this.drawEnglobers(ug, height - MARGIN_FOR_ENGLOBERS1, context);
this.drawPlaygroundU(ugTranslated, context);
- // ug = ugOrig;
-
this.drawLineU22(ug, showTail, page);
this.drawHeadTailU(ug, page, showTail ? height - getTailHeight(ug.getStringBounder(), true) : 0);
- // ug = clipAndTranslate2(delta, width, page, ug);
this.drawPlaygroundU(ugTranslated, new SimpleContext2D(false));
}
private UGraphic clipAndTranslate2(final double delta, double width, Page p, UGraphic ug) {
ug = ug.apply(new UClip(0, p.getBodyRelativePosition(), width, p.getBodyHeight() + 1));
+ ug = ug.apply(getTranslate4(delta));
+ return ug;
+ }
+
+ private UTranslate getTranslate4(final double delta) {
if (delta > 0) {
- ug = ug.apply(new UTranslate(0, -delta));
+ return new UTranslate(0, -delta);
}
- return ug;
+ return new UTranslate();
}
private void drawLineU22(UGraphic ug, boolean showTail, Page page) {
diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java
index af988a9..822d889 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/DrawableSetInitializer.java
@@ -626,7 +626,7 @@ class DrawableSetInitializer {
drawableSet.getSkinParam(), null);
final LifeLine lifeLine = new LifeLine(box, comp.getPreferredWidth(stringBounder), drawableSet.getSkinParam()
- .shadowing());
+ .shadowing(p.getStereotype()));
drawableSet.setLivingParticipantBox(p, new LivingParticipantBox(box, lifeLine));
this.freeX = box.getMaxX(stringBounder);
diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java
index 80dc784..e4e4b13 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java
@@ -147,7 +147,8 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker {
final SequenceDiagramArea area = new SequenceDiagramArea(fullDimension.getWidth(), page.getHeight());
final TextBlock compTitle;
- final TextBlock caption = new AnnotatedWorker(diagram, diagram.getSkinParam()).getCaption();
+ final AnnotatedWorker annotatedWorker = new AnnotatedWorker(diagram, diagram.getSkinParam(), stringBounder);
+ final TextBlock caption = annotatedWorker.getCaption();
area.setCaptionArea(caption.calculateDimension(stringBounder));
if (Display.isNull(page.getTitle())) {
@@ -211,8 +212,12 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker {
if (legendTop) {
sequenceAreaY += legendBlock.calculateDimension(ug.getStringBounder()).getHeight();
}
- drawableSet.drawU22(ug.apply(new UTranslate(area.getSequenceAreaX() + delta1 / 2, sequenceAreaY)),
- delta, fullDimension.getWidth(), page, diagram.isShowFootbox());
+ final UTranslate forCore = new UTranslate(area.getSequenceAreaX() + delta1 / 2, sequenceAreaY);
+ TextBlock core = drawableSet.asTextBlock(delta, fullDimension.getWidth(), page, diagram.isShowFootbox());
+ core = annotatedWorker.addFrame(core);
+ core.drawU(ug.apply(forCore));
+ // drawableSet.drawU22(ug.apply(forCore), delta, fullDimension.getWidth(), page,
+ // diagram.isShowFootbox());
drawHeader(area, ug, index);
drawFooter(area, ug, index);
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java
index fd168d6..2f8569d 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java
@@ -82,7 +82,7 @@ public class CommunicationExoTile implements TileWithUpdateStairs {
arrowConfiguration = arrowConfiguration.reverse();
}
final Component comp = skin.createComponent(ComponentType.ARROW, arrowConfiguration, skinParam,
- message.getLabel());
+ message.getLabelNumbered());
return comp;
}
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java
index 894feb6..8a0b0b8 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java
@@ -40,6 +40,7 @@ import java.awt.geom.Point2D;
import java.util.Iterator;
import net.sourceforge.plantuml.ISkinParam;
+import net.sourceforge.plantuml.Log;
import net.sourceforge.plantuml.graphic.StringBounder;
import net.sourceforge.plantuml.real.Real;
import net.sourceforge.plantuml.sequencediagram.Event;
@@ -101,10 +102,10 @@ public class CommunicationTileSelf implements TileWithUpdateStairs {
if (message.isActivate()) {
livingSpace1.addStepForLivebox(getEvent(), y + p2.getY());
- System.err.println("CommunicationTileSelf::updateStairs activate y=" + (y + p2.getY()) + " " + message);
+ Log.info("CommunicationTileSelf::updateStairs activate y=" + (y + p2.getY()) + " " + message);
} else if (message.isDeactivate()) {
livingSpace1.addStepForLivebox(getEvent(), y + p1.getY());
- System.err.println("CommunicationTileSelf::updateStairs deactivate y=" + (y + p1.getY()) + " " + message);
+ Log.info("CommunicationTileSelf::updateStairs deactivate y=" + (y + p1.getY()) + " " + message);
}
// livingSpace1.addStep(y + arrowY, level1);
@@ -121,8 +122,7 @@ public class CommunicationTileSelf implements TileWithUpdateStairs {
double x1 = getPoint1(stringBounder).getCurrentValue();
final int levelIgnore = livingSpace1.getLevelAt(this, EventsHistoryMode.IGNORE_FUTURE_ACTIVATE);
final int levelConsidere = livingSpace1.getLevelAt(this, EventsHistoryMode.CONSIDERE_FUTURE_DEACTIVATE);
- System.err.println("CommunicationTileSelf::drawU levelIgnore=" + levelIgnore + " levelConsidere="
- + levelConsidere);
+ Log.info("CommunicationTileSelf::drawU levelIgnore=" + levelIgnore + " levelConsidere=" + levelConsidere);
x1 += CommunicationTile.LIVE_DELTA_SIZE * levelIgnore;
if (levelIgnore < levelConsidere) {
x1 += CommunicationTile.LIVE_DELTA_SIZE;
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java
index adb8779..a377aac 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/EmptyTile.java
@@ -45,12 +45,11 @@ import net.sourceforge.plantuml.ugraphic.UGraphic;
public class EmptyTile implements Tile {
private final double height;
+ private final Tile position;
- private final Real origin;
-
- public EmptyTile(double height, TileArguments tileArguments) {
- this.origin = tileArguments.getOrigin();
+ public EmptyTile(double height, Tile position) {
this.height = height;
+ this.position = position;
}
public void drawU(UGraphic ug) {
@@ -64,11 +63,11 @@ public class EmptyTile implements Tile {
}
public Real getMinX(StringBounder stringBounder) {
- return origin;
+ return position.getMinX(stringBounder);
}
public Real getMaxX(StringBounder stringBounder) {
- return origin;
+ return position.getMaxX(stringBounder);
}
public Event getEvent() {
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java
index 887f604..5bae2e1 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/EventsHistory.java
@@ -135,6 +135,12 @@ public class EventsHistory {
}
private SymbolContext getActivateColor(Event event) {
+ if (event instanceof LifeEvent) {
+ final LifeEvent le = (LifeEvent) event;
+ if (le.isActivate()) {
+ return le.getSpecificColors();
+ }
+ }
for (Iterator<Event> it = events.iterator(); it.hasNext();) {
final Event current = it.next();
if (event != current) {
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java
index c1ba862..1644fb4 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxFinder.java
@@ -112,7 +112,7 @@ public class LiveBoxFinder implements UGraphic {
} else if (shape instanceof NotesTile) {
// Nothing ?
} else if (shape instanceof Tile) {
- Log.error("OtherTile " + shape);
+ Log.info("OtherTile " + shape);
} else {
throw new UnsupportedOperationException(shape.getClass().getName());
}
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java
index b3edc67..4f2b360 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java
@@ -84,7 +84,7 @@ public class SequenceDiagramFileMakerTeoz implements FileMaker {
this.skin = skin;
this.footer = getFooterOrHeader(FontParam.FOOTER);
this.header = getFooterOrHeader(FontParam.HEADER);
- this.annotatedWorker = new AnnotatedWorker(sequenceDiagram, sequenceDiagram.getSkinParam());
+ this.annotatedWorker = new AnnotatedWorker(sequenceDiagram, sequenceDiagram.getSkinParam(), stringBounder);
this.main = new MainTileAdapter(createMainTile());
this.min1 = ((MainTileAdapter) main).getMinX(stringBounder);
diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java
index 86d8c94..c5a0b1d 100644
--- a/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java
+++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/TileBuilder.java
@@ -139,10 +139,11 @@ public class TileBuilder {
tiles.add(new DividerTile(divider, tileArguments));
} else if (ev instanceof GroupingStart) {
final GroupingStart start = (GroupingStart) ev;
- tiles.add(new EmptyTile(4, tileArguments));
- tiles.add(new GroupingTile(it, start, tileArguments.withBackColorGeneral(start.getBackColorElement(),
- start.getBackColorGeneral()), tileArguments));
- tiles.add(new EmptyTile(4, tileArguments));
+ final GroupingTile groupingTile = new GroupingTile(it, start, tileArguments.withBackColorGeneral(
+ start.getBackColorElement(), start.getBackColorGeneral()), tileArguments);
+ tiles.add(new EmptyTile(4, groupingTile));
+ tiles.add(groupingTile);
+ tiles.add(new EmptyTile(4, groupingTile));
// tiles.add(TileUtils.withMargin(tile, 0, 0, 4, 4);
} else if (ev instanceof GroupingLeaf && ((GroupingLeaf) ev).getType() == GroupingType.ELSE) {
final GroupingLeaf anElse = (GroupingLeaf) ev;