docs: @Override protected void handleEvents(final String EVENT_TYPE) {
          super.handleEvents(EVENT_TYPE);
          if ("FINISHED".equals(EVENT_TYPE)) {
              double currentValue = gauge.getCurrentValue();
              // eu.hansolo.medusa.Check sections for value and fire section events
              if (gauge.getCheckSectionsForValue()) {
                  int listSize = sections.size();
                  for (int i = 0 ; i < listSize ; i++) { sections.get(i).checkForValue(currentValue); }
              }
  
              // eu.hansolo.medusa.Check areas for value and fire section events
              if (gauge.getCheckAreasForValue()) {
                  int listSize = areas.size();
                  for (int i = 0 ; i < listSize ; i++) { areas.get(i).checkForValue(currentValue); }
              }
  
              // Highlight Sections and/or Areas if enabled
              if (highlightSections | highlightAreas) {
                  sectionsAndAreasCtx.clearRect(0, 0, size, size);
                  drawAreasAndSections(sectionsAndAreasCtx);
              }
          } else if ("VISIBILITY".equals(EVENT_TYPE)) {
              Helper.enableNode(ledCanvas, gauge.isLedVisible());
              Helper.enableNode(titleText, !gauge.getTitle().isEmpty());
              Helper.enableNode(subTitleText, !gauge.getSubTitle().isEmpty());
              Helper.enableNode(unitText, !gauge.getUnit().isEmpty());
              Helper.enableNode(valueText, gauge.isValueVisible());
              Helper.enableNode(lcd, gauge.isLcdVisible() && gauge.isValueVisible());
              Helper.enableNode(knobCanvas, gauge.isKnobVisible());
              Helper.enableNode(threshold, gauge.isThresholdVisible());
              Helper.enableNode(average, gauge.isAverageVisible());
              sectionsVisible = gauge.getSectionsVisible();
              areasVisible    = gauge.getAreasVisible();
              boolean markersVisible = gauge.getMarkersVisible();
              for (Shape shape : markerMap.values()) { Helper.enableNode(shape, markersVisible); }
              resize();
              redraw();
          } else if ("LED".equals(EVENT_TYPE)) {
              if (gauge.isLedVisible()) { drawLed(); }
          } else if ("LCD".equals(EVENT_TYPE)) {
              if (gauge.isLcdVisible()) redraw();
          } else if ("RECALC".equals(EVENT_TYPE)) {
              startAngle = gauge.getStartAngle();
              angleRange = gauge.getAngleRange();
              angleStep  = gauge.getAngleStep();
              minValue   = gauge.getMinValue();
              maxValue   = gauge.getMaxValue();
              if (gauge.getValue() < minValue) { oldValue = minValue; }
              if (gauge.getValue() > maxValue) { oldValue = maxValue; }
              resize();
              redraw();
              rotateNeedle(gauge.getCurrentValue());
          } else if ("SECTION".equals(EVENT_TYPE)) {
              sections          = gauge.getSections();
              highlightSections = gauge.isHighlightSections();
              sectionsVisible   = gauge.getSectionsVisible();
              areas             = gauge.getAreas();
              highlightAreas    = gauge.isHighlightAreas();
              areasVisible      = gauge.getAreasVisible();
              resize();
              redraw();
          } else if ("INTERACTIVITY".equals(EVENT_TYPE)) {
              if (gauge.isInteractive()) {
                  knobCanvas.setOnMousePressed(mouseHandler);
                  knobCanvas.setOnMouseReleased(mouseHandler);
                  if (!gauge.getButtonTooltipText().isEmpty()) {
                      buttonTooltip.setText(gauge.getButtonTooltipText());
                      Tooltip.install(knobCanvas, buttonTooltip);
                  }
              } else {
                  knobCanvas.removeEventHandler(MouseEvent.MOUSE_PRESSED, mouseHandler);
                  knobCanvas.removeEventHandler(MouseEvent.MOUSE_RELEASED, mouseHandler);
                  Tooltip.uninstall(knobCanvas, buttonTooltip);
              }
          }
      }