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());
              minValue          = gauge.getMinValue();
              threshold         = gauge.getThreshold();
              range             = gauge.getRange();
              angleStep         = angleRange / range;
              highlightSections = gauge.isHighlightSections();
              redraw();
              rotateNeedle(gauge.getCurrentValue());
          } else if ("VISIBILITY".equals(EVENT_TYPE)) {
              enableNode(titleText, !gauge.getTitle().isEmpty());
              enableNode(valueText, gauge.isValueVisible());
              enableNode(sectionPane, gauge.getSectionsVisible());
              enableNode(thresholdRect, gauge.isThresholdVisible());
              enableNode(thresholdText, gauge.isThresholdVisible());
              enableNode(unitText, !gauge.getUnit().isEmpty());
              sectionsVisible = gauge.getSectionsVisible();
          } else if ("SECTION".equals(EVENT_TYPE)) {
              sections = gauge.getSections();
              sectionMap.clear();
              for(Section section : sections) { sectionMap.put(section, new Arc()); }
          } else if ("ALERT".equals(EVENT_TYPE)) {
              enableNode(valueText, gauge.isValueVisible() && !gauge.isAlert());
              enableNode(unitText, gauge.isValueVisible() && !gauge.isAlert());
              enableNode(alertIcon, gauge.isAlert());
              alertTooltip.setText(gauge.getAlertMessage());
          }
      }
docs: ******************** Methods *******************************************