private Shape getArrowShape() {
        Path2D arrow = new Path2D.Float();
        int aw = ARROW_WIDTH.get();
        int ah = ARROW_HEIGHT.get();

        switch (direction) {
          case SOUTH -> {
            arrow.moveTo(0, 0);
            arrow.lineTo(aw, 0);
            arrow.lineTo(aw / 2.0, ah);
            arrow.closePath();
          }
          case NORTH -> {
            arrow.moveTo(0, 0);
            arrow.lineTo(aw, 0);
            arrow.lineTo(aw / 2.0, -ah);
            arrow.closePath();
          }
          default -> {}
        }

        return arrow;
      }
private Shape getArrowShape()