private void _renderContentRowRtl(
      FacesContext context,
      RenderingContext arc,
      UIXProcess process,
      UIComponent stamp,
      Train train)
      throws IOException {
    ParentTrain parentTrain = train.getParentTrain();

    // Render parent start
    if (parentTrain != null && parentTrain.hasParentEnd()) {
      _renderParentContent(context, arc, parentTrain.getParentEnd());
    }

    List<Station> stations = train.getStations();
    ListIterator<Station> iterator = stations.listIterator(stations.size());
    while (iterator.hasPrevious()) {
      _renderStationContent(context, arc, process, stamp, iterator.previous());
    }

    // Render parent end
    if (parentTrain != null && parentTrain.hasParentStart()) {
      _renderParentContent(context, arc, parentTrain.getParentStart());
    }
  }
  private void _renderIconRowLtr(
      FacesContext context, RenderingContext arc, UIXProcess process, Train train)
      throws IOException {
    ParentTrain parentTrain = train.getParentTrain();

    // Render parent start
    if (parentTrain != null && parentTrain.hasParentStart()) {
      _renderParentStartLtr(context, arc, process, train);
    }

    for (Station station : train.getStations()) {
      _renderStationIconLtr(context, arc, process, station);
    }

    // Render parent end
    if (parentTrain != null && parentTrain.hasParentEnd()) {
      _renderParentEndLtr(context, arc, process, train);
    }
  }
 public String getStartJoinState() {
   if (isOverflowStart()) {
     return null;
   } else if (!hasPrevious()) {
     ParentTrain parent = _train.getParentTrain();
     if (parent != null && parent.hasParentStart()) {
       return _STATE_PARENT;
     } else {
       return null;
     }
   } else if (isVisited()) {
     return _STATE_VISITED;
   } else {
     if (isDisabled()) {
       return _STATE_DISABLED;
     }
     return _STATE_UNVISITED;
   }
 }