public final void showDrawer(Region drawer, Side side, int percentage) {
        // fail fast
        if (!Range.closed(0, MAX_PERCENT).or(number -> number == -1).test(percentage)) {
            throw new IllegalArgumentException("Percentage needs to be between 0 and 100 or -1");
        }
        Pos position;
        drawer.minWidthProperty().unbind();
        drawer.maxWidthProperty().unbind();
        drawer.minHeightProperty().unbind();
        drawer.maxHeightProperty().unbind();
        switch (side) {
            case TOP:
                // fall through to BOTTOM
            case BOTTOM:
                position = side == Side.TOP ? Pos.TOP_LEFT : Pos.BOTTOM_LEFT;
                drawer.minWidthProperty().bind(widthProperty());
                if (percentage == -1) {
                    bindDrawerHeight(drawer);
                } else {
                    drawer.maxHeightProperty().bind(
                            heightProperty().multiply((double) percentage / MAX_PERCENT));
                }
                break;
            case RIGHT:
                // fall through to LEFT
            default: // LEFT
                position = side == Side.LEFT ? Pos.TOP_LEFT : Pos.TOP_RIGHT;
                drawer.minHeightProperty().bind(heightProperty());
                if (percentage == -1) {
                    bindDrawerWidth(drawer);
                } else {
                    drawer.maxWidthProperty().bind(
                            widthProperty().multiply((double) percentage / MAX_PERCENT));
                }
                break;
        }
        StackPane.setAlignment(drawer, position);
        drawer.getStyleClass().add("drawer");
        setDrawerSideShown(side);
        setDrawerShown(drawer);
    }
Shows the {@code drawer} on the defined {@code side} in the {@link Workbench}, ensuring the
{@code drawer} doesn't cover more than the specified {@code percentage}.

@param drawer     to be shown
@param side       of the workbench, on which the {@code drawer} should be positioned
@param percentage value between 0 and 100, defining how much <b>maximum</b> coverage the drawer
                  should have or -1, to have the drawer size according to its computed size
workbenchfx-core/src/main/java/com/dlsc/workbenchfx/Workbench.java