docs: @Override protected void handleEvents(final String EVENT_TYPE) {
          super.handleEvents(EVENT_TYPE);
          if ("FINISHED".equals(EVENT_TYPE)) {
              if (gauge.getCheckSectionsForValue()) {
                  double currentValue = gauge.getCurrentValue();
                  int listSize = sections.size();
                  for (int i = 0 ; i < listSize ; i++) { sections.get(i).checkForValue(currentValue); }
              }
              // Highlight Sections if enabled
              if (highlightSections) {
                  drawSections();
              }
          } else if ("RECALC".equals(EVENT_TYPE)) {
              minValue  = gauge.getMinValue();
              maxValue  = gauge.getMaxValue();
              angleStep = ANGLE_RANGE / gauge.getRange();
              needleRotate.setAngle((180 - START_ANGLE) + (gauge.getValue() - gauge.getMinValue()) * angleStep);
              resize();
              rotateNeedle(gauge.getCurrentValue());
          } else if ("SECTION".equals(EVENT_TYPE)) {
              sections          = gauge.getSections();
              highlightSections = gauge.isHighlightSections();
              resize();
              redraw();
          } else if ("VISIBILITY".equals(EVENT_TYPE)) {
              enableNode(valueText, gauge.isValueVisible());
              enableNode(titleText, !gauge.getTitle().isEmpty());
              enableNode(subTitleText, !gauge.getSubTitle().isEmpty());
          }
      }