protected void handleControlPropertyChanged(final String PROPERTY) {
        if ("RESIZE".equals(PROPERTY)) {
            resize();
        } else if ("STYLE".equals(PROPERTY)) {
            resize();            
        } else if ("VALUE".equals(PROPERTY)) {
            int currentLedPeakIndex;
            if (Orientation.HORIZONTAL == getSkinnable().getOrientation()) {                
                // HORIZONTAL
                currentLedPeakIndex = 0;
                for (int i = 0 ; i < leds.size() ; i++) {
                    leds.get(i).getStyleClass().remove("led-on");
                    if (Double.compare(i * stepSize.doubleValue(), getSkinnable().getValue()) <= 0) {
                        leds.get(i).getStyleClass().add("led-on");                    
                        currentLedPeakIndex = i;
                    }
                }
                if (getSkinnable().isPeakValueVisible()) {
                    if (currentLedPeakIndex > peakLedIndex) {
                        timer.stop();
                        leds.get(peakLedIndex).getStyleClass().remove("led-peak");
                        leds.get(currentLedPeakIndex).getStyleClass().add("led-peak");
                        peakLedIndex  = currentLedPeakIndex;
                        lastTimerCall = System.nanoTime();
                        timer.start();
                    }
                }
            } else {    
                // VERTICAL
                currentLedPeakIndex = leds.size() - 1;
                for (int i = 0 ; i < leds.size() ; i++) {
                    if (i != peakLedIndex) leds.get(i).getStyleClass().remove("led-on");
                    if (Double.compare((leds.size() - i - 1) * stepSize.doubleValue(), getSkinnable().getValue()) <= 0) {
                        leds.get(i).getStyleClass().add("led-on");                                                
                    } else {
                        currentLedPeakIndex = i;
                    }
                }                
                if (getSkinnable().isPeakValueVisible()) {
                    if (currentLedPeakIndex < peakLedIndex) {
                        timer.stop();
                        leds.get(peakLedIndex).getStyleClass().remove("led-peak");
                        leds.get(currentLedPeakIndex).getStyleClass().add("led-peak");
                        peakLedIndex  = currentLedPeakIndex;
                        lastTimerCall = System.nanoTime();
                        timer.start();
                    }
                }
            }                        
        } else if ("ORIENTATION".equals(PROPERTY)) {
            hBox.getChildren().clear();
            vBox.getChildren().clear();            
            if (Orientation.HORIZONTAL == getSkinnable().getOrientation()) {
                vBox.setManaged(false);
                vBox.setVisible(false);
                hBox.getChildren().setAll(leds);
            } else {
                hBox.setManaged(false);
                hBox.setVisible(false);                
                vBox.getChildren().setAll(leds);
            }    
        } else if ("NO_OF_LEDS".equals(PROPERTY)) {
            leds.clear();
            hBox.getChildren().clear();
            vBox.getChildren().clear();
            for (int i = 0 ; i < getSkinnable().getNoOfLeds() ; i++) {
                Region led = new Region();
                led.setPrefSize(10, 20);
                if (getSkinnable().getSections().isEmpty()) {
                    led.getStyleClass().setAll("led");
                } else {
                    for (Section section : getSkinnable().getSections()) {
                        if (section.contains(i * stepSize.doubleValue())) {
                            led.getStyleClass().setAll("led", section.getStyleClass());
                        }
                    }
                }
                leds.add(led);
            }

            if (Orientation.HORIZONTAL == getSkinnable().getOrientation()) {                
                hBox.getChildren().setAll(leds);
            } else {   
                vBox.getChildren().setAll(leds);
            }    
        } else if ("SECTIONS".equals(PROPERTY)) {
            for (int i = 0 ; i < getSkinnable().getNoOfLeds() ; i++) {
                Region led = new Region();
                led.setPrefSize(10, 20);
                if (getSkinnable().getSections().isEmpty()) {
                    led.getStyleClass().setAll("led");
                } else {
                    for (Section section : getSkinnable().getSections()) {
                        if (section.contains(i * stepSize.doubleValue())) {
                            led.getStyleClass().setAll("led", section.getStyleClass());
                        }
                    }
                }
                leds.add(led);
            }    
        }
    }