private void drawGear(Graphics g, int panelWidth, int panelHeight) {
    int x = panelWidth / 2 + WheelRadius + ElementPadding * 2;
    int y = panelHeight / 2 - WheelRadius + GearBoxOffset;

    ShiftLeverPosition shiftLeverPosition = in.getShiftLeverPosition();
    // parking
    g.setColor(Color.LIGHT_GRAY);
    if (shiftLeverPosition == ShiftLeverPosition.Parking) g.setColor(Color.BLUE);
    g.drawString("P", x, y);
    y += GearLevelPadding;

    // reverse
    g.setColor(Color.LIGHT_GRAY);
    if (shiftLeverPosition == ShiftLeverPosition.Reverse) g.setColor(Color.BLUE);
    g.drawString("R", x, y);
    y += GearLevelPadding;

    // neutral
    g.setColor(Color.LIGHT_GRAY);
    if (shiftLeverPosition == ShiftLeverPosition.Neutral) g.setColor(Color.BLUE);
    g.drawString("N", x, y);
    y += GearLevelPadding;

    // drive
    g.setColor(Color.LIGHT_GRAY);
    if (shiftLeverPosition == ShiftLeverPosition.Drive) g.setColor(Color.BLUE);
    g.drawString("D", x, y);
  }