code: @Override protected void handleEvents(final String EVENT_TYPE) {
          super.handleEvents(EVENT_TYPE);
          if ("RECALC".equals(EVENT_TYPE)) {
              angleRange = Helper.clamp(90.0, 180.0, gauge.getAngleRange());
              startAngle = getStartAngle();
              minValue   = gauge.getMinValue();
              range      = gauge.getRange();
              sections   = gauge.getSections();
              angleStep  = angleRange / range;
              redraw();
              rotateNeedle(gauge.getCurrentValue());
          } else if ("FINISHED".equals(EVENT_TYPE)) {
              String text = String.format(locale, formatString, gauge.getValue());
              needleTooltip.setText(text);
              double value = gauge.getValue();
              if (gauge.isValueVisible()) {
                  Bounds bounds       = barBackground.localToScreen(barBackground.getBoundsInLocal());
                  double tooltipAngle = needleRotate.getAngle();
                  double sinValue     = Math.sin(Math.toRadians(90 + angleRange * 0.5 - tooltipAngle));
                  double cosValue     = Math.cos(Math.toRadians(90 + angleRange * 0.5 - tooltipAngle));
                  double needleTipX   = bounds.getMinX() + bounds.getWidth() * 0.5 + bounds.getHeight() * sinValue;
                  double needleTipY   = bounds.getMinY() + bounds.getHeight() * 0.8 + bounds.getHeight() * cosValue;
                  if (value < (gauge.getMinValue() + (gauge.getRange() * 0.5))) {
                      needleTipX -= text.length() * 7;
                  }
                  needleTooltip.show(needle, needleTipX, needleTipY);
              }
              if (sections.isEmpty() || sectionsAlwaysVisible) return;
              for (Section section : sections) {
                  if (section.contains(value)) {
                      barTooltip.setText(section.getText());
                      break;
                  }
              }
          } else if ("VISIBILITY".equals(EVENT_TYPE)) {
              Helper.enableNode(titleText, !gauge.getTitle().isEmpty());
          }
      }
docs: ******************** Methods *******************************************