private void registerListeners() {
        getSkinnable().widthProperty().addListener(observable -> handleControlPropertyChanged("RESIZE"));
        getSkinnable().heightProperty().addListener(observable -> handleControlPropertyChanged("RESIZE"));
        getSkinnable().infoTextProperty().addListener(observable -> handleControlPropertyChanged("INFO_TEXT"));
        getSkinnable().targetEnabledProperty().addListener(observable -> handleControlPropertyChanged("TARGET_ENABLED"));
        getSkinnable().valueProperty().addListener(observable -> handleControlPropertyChanged("VALUE"));
        getSkinnable().minValueProperty().addListener(observable -> handleControlPropertyChanged("RECALC"));
        getSkinnable().maxValueProperty().addListener(observable -> handleControlPropertyChanged("RECALC"));
        getSkinnable().minMeasuredValueProperty().addListener(observable -> handleControlPropertyChanged("MIN_MEASURED_VALUE"));        
        getSkinnable().maxMeasuredValueProperty().addListener(observable -> handleControlPropertyChanged("MAX_MEASURED_VALUE"));                             
        getSkinnable().thresholdProperty().addListener(observable -> handleControlPropertyChanged("TARGET"));        
        getSkinnable().angleRangeProperty().addListener(observable -> handleControlPropertyChanged("ANGLE_RANGE"));        
        
        valueIndicatorRotate.angleProperty().addListener(observable -> handleControlPropertyChanged("ANGLE"));        

        targetIndicator.setOnMousePressed(mouseEventHandler);
        targetIndicator.setOnMouseDragged(mouseEventHandler);
        targetIndicator.setOnMouseReleased(mouseEventHandler);

        targetIndicator.setOnTouchPressed(touchEventHandler);
        targetIndicator.setOnTouchMoved(touchEventHandler);
        targetIndicator.setOnTouchReleased(touchEventHandler);
    }