protected void handleControlPropertyChanged(final String PROPERTY) {
        if ("RESIZE".equals(PROPERTY)) {
            resize();
        } else if ("PREF_SIZE".equals(PROPERTY)) {
            aspectRatio = getSkinnable().getPrefHeight() / getSkinnable().getPrefWidth();
        } else if ("TEXT".equals(PROPERTY)) {
            flipForward();
        } else if ("FLAP_COLOR".equals(PROPERTY)) {
            getSkinnable().setStyle("-flap-base: " + Util.colorToCss(getSkinnable().getFlapColor()) + ";");
        } else if ("TEXT_COLOR".equals(PROPERTY)) {
            refreshTextCtx();
        } else if ("CHARACTER_SET".equals(PROPERTY)) {
            selectedSet.clear();
            for (String text : getSkinnable().getSelectedSet()) {
                selectedSet.add(text);
            }
        } else if ("WITH_FIXTURE".equals(PROPERTY)) {
            fixtureLeft.setOpacity(getSkinnable().isWithFixture() ? 1 : 0);
            fixtureRight.setOpacity(getSkinnable().isWithFixture() ? 1 : 0);
            if (!getSkinnable().isWithFixture()) {
                upperBackground.getStyleClass().setAll("upper-no-fixture");
                lowerBackground.getStyleClass().setAll("lower-no-fixture");
                flap.getStyleClass().setAll("upper-no-fixture");
            }
        } else if ("DARK_FIXTURE".equals(PROPERTY)) {
            fixtureLeft.getStyleClass().setAll(getSkinnable().isDarkFixture() ? "fixture-left-dark" : "fixture-left");
            fixtureRight.getStyleClass().setAll(getSkinnable().isDarkFixture() ? "fixture-right-dark" : "fixture-right");
        } else if ("SQUARE_FLAPS".equals(PROPERTY)) {
            if (getSkinnable().isWithFixture()) {
                upperBackground.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "upper-square" : "upper");
                lowerBackground.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "lower-square" : "lower");
                flap.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "upper-square" : "upper");
            } else {
                upperBackground.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "upper-no-fixture-square" : "upper-no-fixture");
                lowerBackground.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "lower-no-fixture-square" : "lower-no-fixture");
                flap.getStyleClass().setAll(getSkinnable().isSquareFlaps() ? "upper-no-fixture-square" : "upper-no-fixture");
            }
        }
    }