private void initGraphics() {                
        hBox = new HBox();        
        hBox.getStyleClass().setAll("vu-meter");
        hBox.setSpacing(getSkinnable().getLedSpacing());        
        
        vBox = new VBox();
        vBox.getStyleClass().setAll("vu-meter");
        vBox.setSpacing(getSkinnable().getLedSpacing());        

        leds = FXCollections.observableArrayList();
        for (int i = 0 ; i < getSkinnable().getNoOfLeds() ; i++) {
            Region led = new Region();                    
            led.setOnMouseClicked(new WeakEventHandler<>(event -> active = !active));
            led.setOnMouseEntered(new WeakEventHandler<>(event -> handleMouseEvent(event)));                                    
            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()) {
            vBox.setManaged(false);            
            vBox.setVisible(false);
            hBox.getChildren().setAll(leds);
            peakLedIndex = 0;
        } else {
            hBox.setManaged(false);
            hBox.setVisible(false); 
            FXCollections.reverse(leds);
            vBox.getChildren().setAll(leds);
            peakLedIndex = leds.size() - 1;
        }
                                        
        // Add all nodes
        getChildren().setAll(hBox, vBox);        
    }