protected void paintComponent(Graphics g) {
      super.paintComponent(g);
      Graphics gg = g.create();
      if (trainNumber < 0) return;

      TrainModel tm = (TrainModel) w.get(KEY.TRAINS, trainNumber, modelRoot.getPlayerPrincipal());

      trainModelViewer.setTrainModel(tm);
      int waterRemaining = trainModelViewer.getWaterRemaining();

      int maxWater =
          ((EngineType) w.get(KEY.ENGINE_TYPES, tm.getEngineType(), Player.AUTHORITATIVE))
              .getWaterCapacity();

      // draw a dark-blue rectangle and a light blue rectangle
      gg.setColor(Color.BLUE);
      gg.fillRect(0, 0, getWidth() * waterRemaining / maxWater, getHeight());
    }