protected void handleControlPropertyChanged(final String PROPERTY) {
        if ("VALUE".equals(PROPERTY)) {
            int currentLedPeakIndex = 0;
            for (int i = 0 ; i < getSkinnable().getNoOfLeds() ; i++) {
                if (Double.compare(i * stepSize.doubleValue(), getSkinnable().getValue()) <= 0) {
                    ledList.get(i).setOn(true);
                    currentLedPeakIndex = i;
                } else {
                    ledList.get(i).setOn(false);
                }
                ledList.get(peakLedIndex).setOn(true);
            }
            // PeakValue
            if (getSkinnable().isPeakValueVisible()) {
                if (currentLedPeakIndex > peakLedIndex) {
                    peakLedIndex = currentLedPeakIndex;
                    timer.stop();
                    lastTimerCall = System.nanoTime();
                    timer.start();
                }
            }
        } else if ("FRAME_VISIBLE".equals(PROPERTY)) {
            for (Led led : ledList) {
                led.setFrameVisible(getSkinnable().isFrameVisible());
            }
        } else if ("LED_SIZE".equals(PROPERTY)) {
            setLedSizes();
            setLedColors();
        } else if ("ORIENTATION".equals(PROPERTY)) {
            initGraphics();
        } else if ("LED_NUMBER".equals(PROPERTY)) {
            stepSize.set(1.0 / getSkinnable().getNoOfLeds());
        } else if ("LED_COLOR".equals(PROPERTY)) {
            setLedColors();
        } else if ("LED_TYPE".equals(PROPERTY)) {
            setLedTypes();
        } else if ("RESIZE".equals(PROPERTY)) {
            setLedSizes();
        }
    }