private ArrowConfiguration getArrowType(MessageExo m) { final MessageExoType type = m.getType(); ArrowConfiguration result = null; if (type.getDirection() == 1) { result = m.getArrowConfiguration(); } else { result = m.getArrowConfiguration().reverse(); } result = result.withDecoration1(m.getArrowConfiguration().getDecoration1()); result = result.withDecoration2(m.getArrowConfiguration().getDecoration2()); return result; // ArrowConfiguration result = null; // if (type.getDirection() == 1) { // result = ArrowConfiguration.withDirectionNormal(); // } else { // result = ArrowConfiguration.withDirectionReverse(); // } // if (m.getArrowConfiguration().isDotted()) { // result = result.withDotted(); // } // if (m.getArrowConfiguration().isAsync()) { // result = result.withHead(ArrowHead.ASYNC); // } // result = result.withPart(m.getArrowConfiguration().getPart()); // return result; }
private Display getLabelOfMessage(MessageExo message) { if (message.getMessageNumber() == null) { return message.getLabel(); } Display result = Display.empty(); result = result.add(new MessageNumber(message.getMessageNumber())); result = result.addAll(message.getLabel()); return result; }
Step1MessageExo( ParticipantRange range, StringBounder stringBounder, MessageExo message, DrawableSet drawingSet, Frontier freeY) { super(range, stringBounder, message, drawingSet, freeY); setConfig(getArrowType(message)); this.messageArrow = new MessageExoArrow( freeY.getFreeY(range), drawingSet.getSkin(), drawingSet .getSkin() .createComponent( ComponentType.ARROW, getConfig(), drawingSet.getSkinParam(), getLabelOfMessage(message)), getLivingParticipantBox(), message.getType(), message.getUrl(), message.isShortArrow(), message.getArrowConfiguration()); if (message.getNote() != null) { final ISkinParam skinParam = new SkinParamBackcolored(drawingSet.getSkinParam(), message.getSpecificBackColor()); setNote( drawingSet .getSkin() .createComponent(ComponentType.NOTE, null, skinParam, message.getNote())); // throw new UnsupportedOperationException(); } }
public static List<Tile> buildOne( Iterator<Event> it, TileArguments tileArguments, final Event ev, Tile parent) { final StringBounder stringBounder = tileArguments.getStringBounder(); final Skin skin = tileArguments.getSkin(); final ISkinParam skinParam = tileArguments.getSkinParam(); final LivingSpaces livingSpaces = tileArguments.getLivingSpaces(); final List<Tile> tiles = new ArrayList<Tile>(); // System.err.println("TileBuilder::buildOne " + ev); if (ev instanceof Message) { final Message msg = (Message) ev; final LivingSpace livingSpace1 = livingSpaces.get(msg.getParticipant1()); final LivingSpace livingSpace2 = livingSpaces.get(msg.getParticipant2()); boolean reverse = false; Tile result = null; if (msg.isSelfMessage()) { result = new CommunicationTileSelf(livingSpace1, msg, skin, skinParam, livingSpaces); } else { // System.err.println("msg=" + msg); result = new CommunicationTile(livingSpace1, livingSpace2, msg, skin, skinParam); reverse = ((CommunicationTile) result).isReverse(stringBounder); } for (NoteOnMessage noteOnMessage : msg.getNoteOnMessages()) { final NotePosition notePosition = noteOnMessage.getNotePosition(); if (notePosition == NotePosition.LEFT) { result = new CommunicationTileNoteLeft( (TileWithUpdateStairs) result, msg, skin, skinParam, reverse ? livingSpace2 : livingSpace1, noteOnMessage); } else if (notePosition == NotePosition.RIGHT && msg.isSelfMessage()) { result = new CommunicationTileSelfNoteRight( (CommunicationTileSelf) result, msg, skin, skinParam, noteOnMessage); } else if (notePosition == NotePosition.RIGHT) { result = new CommunicationTileNoteRight( (TileWithUpdateStairs) result, msg, skin, skinParam, reverse ? livingSpace1 : livingSpace2, noteOnMessage); } } tiles.add(result); } else if (ev instanceof MessageExo) { final MessageExo exo = (MessageExo) ev; final LivingSpace livingSpace1 = livingSpaces.get(exo.getParticipant()); Tile result = null; result = new CommunicationExoTile(livingSpace1, exo, skin, skinParam, tileArguments); for (NoteOnMessage noteOnMessage : exo.getNoteOnMessages()) { final NotePosition notePosition = exo.getNoteOnMessages().get(0).getNotePosition(); if (notePosition == NotePosition.LEFT) { result = new CommunicationTileNoteLeft( (TileWithUpdateStairs) result, exo, skin, skinParam, livingSpace1, noteOnMessage); } else if (notePosition == NotePosition.RIGHT) { result = new CommunicationTileNoteRight( (TileWithUpdateStairs) result, exo, skin, skinParam, livingSpace1, noteOnMessage); } } tiles.add(result); } else if (ev instanceof Note) { final Note note = (Note) ev; final LivingSpace livingSpace1 = livingSpaces.get(note.getParticipant()); final LivingSpace livingSpace2 = note.getParticipant2() == null ? null : livingSpaces.get(note.getParticipant2()); tiles.add(new NoteTile(livingSpace1, livingSpace2, note, skin, skinParam)); } else if (ev instanceof Notes) { final Notes notes = (Notes) ev; tiles.add(new NotesTile(livingSpaces, notes, skin, skinParam)); } else if (ev instanceof Divider) { final Divider divider = (Divider) ev; 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)); // tiles.add(TileUtils.withMargin(tile, 0, 0, 4, 4); } else if (ev instanceof GroupingLeaf && ((GroupingLeaf) ev).getType() == GroupingType.ELSE) { final GroupingLeaf anElse = (GroupingLeaf) ev; tiles.add(new ElseTile(anElse, skin, skinParam, parent)); } else if (ev instanceof Reference) { final Reference ref = (Reference) ev; tiles.add(new ReferenceTile(ref, tileArguments.withBackColor(ref))); } else if (ev instanceof Delay) { final Delay delay = (Delay) ev; tiles.add(new DelayTile(delay, tileArguments)); } else if (ev instanceof HSpace) { final HSpace hspace = (HSpace) ev; tiles.add(new HSpaceTile(hspace, tileArguments)); } else if (ev instanceof LifeEvent) { final LifeEvent lifeEvent = (LifeEvent) ev; final LivingSpace livingSpace = livingSpaces.get(lifeEvent.getParticipant()); tiles.add(new LifeEventTile(lifeEvent, tileArguments, livingSpace, skin, skinParam)); } else { System.err.println("TileBuilder::Ignoring " + ev.getClass()); } return tiles; }