private void setStatusButton(int priority, int state) {
   String tooltip = Resources.get("Standard Priority");
   ImageIcon icon = standardIcon;
   if (state == TrainModel.STATE_STOPPED) {
     icon = stoppedIcon;
     tooltip = Resources.get("Stopped");
   } else {
     switch (priority) {
       case TrainModel.PRIORITY_EXPRESS:
         icon = expressIcon;
         tooltip = Resources.get("Express Priority");
         break;
       case TrainModel.PRIORITY_NORMAL:
         icon = standardIcon;
         tooltip = Resources.get("Standard Priority");
         break;
       case TrainModel.PRIORITY_SLOW:
         icon = slowIcon;
         tooltip = Resources.get("Slow Priority");
         break;
       default:
         throw new IllegalStateException();
     }
   }
   statusJButton.setToolTipText(tooltip);
   statusJButton.setIcon(icon);
 }
  private void setStatusLabel(TrainModel trainModel) {
    if (trainModel == null) {
      statusJLabel.setIcon((Icon) null);
      statusJLabel.setToolTipText("");
      return;
    }

    switch (trainModel.getState()) {
      case TrainModel.STATE_RUNNABLE:
        if (trainModel.isBlocked()) {
          statusJLabel.setIcon(blockedIcon);
          statusJLabel.setToolTipText(Resources.get("Track blocked"));
        } else if (trainModel.getTrainMotionModel().isLost()) {
          statusJLabel.setIcon(noRouteIcon);
          statusJLabel.setToolTipText(Resources.get("No route to destination"));
        } else if (trainModel.getTrainMotionModel().isOutOfWater()) {
          statusJLabel.setIcon(outOfWaterIcon);
          statusJLabel.setToolTipText(Resources.get("No water"));
        } else {
          statusJLabel.setIcon((Icon) null);
          statusJLabel.setToolTipText("");
        }
        break;
      case TrainModel.STATE_LOADING:
        statusJLabel.setIcon(loadingIcon);
        statusJLabel.setToolTipText(Resources.get("Loading"));
        break;
      case TrainModel.STATE_UNLOADING:
        statusJLabel.setIcon(unloadingIcon);
        statusJLabel.setToolTipText(Resources.get("Unloading"));
        break;
      default:
        statusJLabel.setIcon((Icon) null);
        statusJLabel.setToolTipText("");
        break;
    }
  }