private void resize() {
        width  = getSkinnable().getWidth();
        height = getSkinnable().getHeight();
        if (getSkinnable().isKeepAspect()) {
            if (aspectRatio * width > height) {
                width  = 1 / (aspectRatio / height);
            } else if (1 / (aspectRatio / height) > width) {
                height = aspectRatio * width;
            }
        }

        if (width > 0 && height > 0) {
            // Autocenter the control
            //getSkinnable().setTranslateX((getSkinnable().getWidth() - width) * 0.5);
            //getSkinnable().setTranslateY((getSkinnable().getHeight() - height) * 0.5);

            flapHeight = 0.49206349206349204 * height;

            fixtureRight.setPrefSize(0.0476190476 * height, 0.164021164021164 * height);
            fixtureRight.setTranslateX(width - 0.0476190476 * height);
            fixtureRight.setTranslateY(0.41798941798941797 * height);

            fixtureLeft.setPrefSize(0.0476190476 * height, 0.164021164021164 * height);
            fixtureLeft.setTranslateY(0.41798941798941797 * height);

            if (width > height && width > 0 && height > 0) {
                final Path UPPER = new Path();
                UPPER.setFillRule(FillRule.EVEN_ODD);
                UPPER.getElements().add(new MoveTo(width, 0.0));
                UPPER.getElements().add(new LineTo(width, 0.4074074074074074 * height));
                UPPER.getElements().add(new LineTo(width - 0.0582010582 * height, 0.4074074074074074 * height));
                UPPER.getElements().add(new LineTo(width - 0.0582010582 * height, 0.49206349206349204 * height));
                UPPER.getElements().add(new LineTo(0.0582010582 * height, 0.49206349206349204 * height));
                UPPER.getElements().add(new LineTo(0.0582010582 * height, 0.4074074074074074 * height));
                UPPER.getElements().add(new LineTo(0.0, 0.4074074074074074 * height));
                UPPER.getElements().add(new LineTo(0.0, 0.0));
                UPPER.getElements().add(new LineTo(width, 0.0));
                UPPER.getElements().add(new ClosePath());
                final String UPPER_SVG = ShapeConverter.shapeToSvgString(UPPER);

                final Path LOWER = new Path();
                LOWER.setFillRule(FillRule.EVEN_ODD);
                LOWER.getElements().add(new MoveTo(width, height));
                LOWER.getElements().add(new LineTo(width, 0.5925925925925926 * height));
                LOWER.getElements().add(new LineTo(width - 0.0582010582 * height, 0.5925925925925926 * height));
                LOWER.getElements().add(new LineTo(width - 0.0582010582 * height, 0.5079365079365079 * height));
                LOWER.getElements().add(new LineTo(0.0582010582 * height, 0.5079365079365079 * height));
                LOWER.getElements().add(new LineTo(0.0582010582 * height, 0.5925925925925926 * height));
                LOWER.getElements().add(new LineTo(0.0, 0.5925925925925926 * height));
                LOWER.getElements().add(new LineTo(0.0, height));
                LOWER.getElements().add(new LineTo(width, height));
                LOWER.getElements().add(new ClosePath());
                final String LOWER_SVG = ShapeConverter.shapeToSvgString(LOWER);

                upperBackground.setStyle(new StringBuilder("-fx-shape:").append("\"").append(UPPER_SVG).append("\";").toString());
                lowerBackground.setStyle(new StringBuilder("-fx-shape:").append("\"").append(LOWER_SVG).append("\";").toString());
                flap.setStyle(new StringBuilder("-fx-shape:").append("\"").append(UPPER_SVG).append("\";").toString());
            }

            upperBackground.setPrefSize(width, flapHeight);
            lowerBackground.setPrefSize(width, flapHeight);
            lowerBackground.setTranslateY(0.5079365079365079 * height);

            //font = Font.font("Bebas Neue", height * 0.9);
            font = Font.font("Droid Sans Mono", height * 0.75);

            upperBackgroundText.setWidth(width);
            upperBackgroundText.setHeight(flapHeight);
            lowerBackgroundText.setWidth(width);
            lowerBackgroundText.setHeight(flapHeight);
            lowerBackgroundText.setTranslateY(0.5079365079365079 * height);

            flap.setPrefSize(width, flapHeight);
            rotateFlap.setPivotY(height * 0.5);

            flapTextFront.setWidth(width);
            flapTextFront.setHeight(flapHeight);
            flapTextBack.setWidth(width);
            flapTextBack.setHeight(flapHeight);

            ctxUpperBackgroundText.setFont(font);
            ctxLowerBackgroundText.setFont(font);
            ctxTextFront.setFont(font);
            ctxTextBack.setFont(font);

            refreshTextCtx();

            innerShadow.setOffsetY(-0.01 * flapHeight);
            innerShadow.setRadius(0.01 * flapHeight);
            innerHighlight.setOffsetY(0.01 * flapHeight);
            innerHighlight.setRadius(0.01 * flapHeight);

            reversedInnerShadow.setOffsetY(-0.01 * 0.4920634921 * height);
            reversedInnerShadow.setRadius(0.01 * 0.4920634921 * height);
            reversedInnerHighlight.setOffsetY(0.01 * 0.4920634921 * height);
            reversedInnerHighlight.setRadius(0.01 * 0.4920634921 * height);
        }
    }