public CommunicationTileSelfNoteRight(
     CommunicationTileSelf tile, Message message, Skin skin, ISkinParam skinParam) {
   this.tile = tile;
   this.message = message;
   this.skin = skin;
   this.skinParam = skinParam;
   this.notes = message.getNote();
   // this.notePosition = message.getNotePosition();
 }
 private Component getComponent(StringBounder stringBounder) {
   final Component comp =
       skin.createComponent(
           ComponentType.NOTE, null, message.getSkinParamNoteBackcolored(skinParam), notes);
   return comp;
 }
예제 #3
0
  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;
  }