/**
   * creates a Station for animation
   *
   * @param owner
   * @param name Name and ID of Station
   * @param pos position
   * @param showInAnimation
   */
  public TransportStationAnimation(
      ModelAnimation owner, String name, Position pos, boolean showInAnimation) {
    super(owner, name);
    this.model = owner;
    this.name = name;
    this.cmdGen = owner.getCmdGen();
    this.showInAnimation = showInAnimation;
    this.id = this.cmdGen.createInternId(name);
    TimeInstant simTime = this.model.presentTime();
    boolean init = this.cmdGen.isInitPhase();
    this.position = pos;
    Command c;
    Point p = pos.getPoint();

    if (this.showInAnimation) {
      try {
        if (init)
          c = Command.getCommandInit("createStation", this.cmdGen.getAnimationTime(simTime));
        else c = Command.getCommandTime("createStation", this.cmdGen.getAnimationTime(simTime));
        c.addParameter("StationId", this.id);
        c.addParameter("Name", this.name);
        c.addParameter("Point", pos.getView() + "|" + p.x + "|" + p.y);
        c.setRemark(this.getGeneratedBy(TransportStationAnimation.class.getSimpleName()));
        cmdGen.checkAndLog(c);
        cmdGen.write(c);
      } catch (CommandException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }
  /**
   * create animation with full parameterization
   *
   * @param id internal objectId for animation. Must be unique.
   * @param pos middle point of animation object
   * @param form form of animation object
   * @param showInAnimation switch animation on or off
   */
  public void createAnimation(Position pos, FormExt form, boolean showInAnimation) {

    this.showInAnimation = showInAnimation;
    // Achtung super aendert den Namen
    switch (masterSortOrder) {
      case WaitQueueAnimation.FIFO:
        // Neue Elemente werden in der Queue hinten angefuegt. (Hohe Rankzahl)
        this.masterPriorityAttribute = List.PRIO_LAST;
        break;
      case WaitQueueAnimation.LIFO:
        // Neue Elemente werden in der Queue vorne angefuegt. (Kleine Rankzahl)
        this.masterPriorityAttribute = List.PRIO_FIRST;
        break;
      default:
        this.masterPriorityAttribute = List.PRIO_LAST;
    }
    switch (slaveSortOrder) {
      case WaitQueueAnimation.FIFO:
        // Neue Elemente werden in der Queue hinten angefuegt. (Hohe Rankzahl)
        this.slavePriorityAttribute = List.PRIO_LAST;
        break;
      case WaitQueueAnimation.LIFO:
        // Neue Elemente werden in der Queue vorne angefuegt. (Kleine Rankzahl)
        this.slavePriorityAttribute = List.PRIO_FIRST;
        break;
      default:
        this.slavePriorityAttribute = List.PRIO_LAST;
    }
    TimeInstant simTime = this.getModel().presentTime();
    boolean init = this.cmdGen.isInitPhase();
    Command c;
    Point p = pos.getPoint();
    Dimension deltaSize = form.getDeltaSize();
    String[] pointA = {pos.getView(), Integer.toString(p.x), Integer.toString(p.y)};
    if (deltaSize == null) deltaSize = new Dimension(0, 0);
    String[] deltaSizeA = {Integer.toString(deltaSize.width), Integer.toString(deltaSize.height)};

    if (this.showInAnimation) {
      try {
        if (init)
          c = Command.getCommandInit("createWaitQueue", this.cmdGen.getAnimationTime(simTime));
        else c = Command.getCommandTime("createWaitQueue", this.cmdGen.getAnimationTime(simTime));
        c.addParameter("WaitQueueId", this.id);
        c.addParameter("Name", this.getName());
        c.addParameter("Point", Parameter.cat(pointA));
        c.addParameter("DefaultEntityType", form.getDefaultType());
        c.addParameter("AnzVisible", Integer.toString(form.getNrVisible()));
        c.addParameter("Form", form.isHorizontal() ? "horizontal" : "vertikal");
        c.addParameter("DeltaSize", Parameter.cat(deltaSizeA));
        c.setRemark(this.getGeneratedBy(WaitQueueAnimation.class.getSimpleName()));
        cmdGen.checkAndLog(c);
        cmdGen.write(c);

      } catch (CommandException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }