Search in sources :

Example 6 with PopTable

use of com.ray3k.stripe.PopTable in project skin-composer by raeleus.

the class HorizontalGroupListeners method horizontalGroupReverseListener.

public static EventListener horizontalGroupReverseListener(final DialogSceneComposerEvents events, SimActor simActor) {
    var simHorizontalGroup = (DialogSceneComposerModel.SimHorizontalGroup) simActor;
    var popTableClickListener = new PopTableClickListener(skin) {

        {
            getPopTable().key(Keys.ESCAPE, popTable::hide);
        }

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var table = new Table();
            popTable.add(table);
            table.defaults().left().spaceRight(5);
            var imageTextButton = new ImageTextButton("Reverse", skin, "scene-checkbox-colored");
            imageTextButton.setChecked(simHorizontalGroup.reverse);
            table.add(imageTextButton);
            imageTextButton.addListener(handListener);
            imageTextButton.addListener(new TextTooltip("Reverse the display order of the widgets.", tooltipManager, skin, "scene"));
            imageTextButton.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    events.horizontalGroupReverse(imageTextButton.isChecked());
                }
            });
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : PopTable(com.ray3k.stripe.PopTable) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) SimActor(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 7 with PopTable

use of com.ray3k.stripe.PopTable in project skin-composer by raeleus.

the class DialogSceneComposer method showHelpDialog.

public PopTable showHelpDialog() {
    var root = new PopTable(skin);
    root.setHideOnUnfocus(true);
    root.setModal(true);
    root.setKeepSizedWithinStage(true);
    root.setKeepCenteredInWindow(true);
    root.pad(20);
    root.addListener(handListener);
    root.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            root.hide();
        }
    });
    var label = new Label("About Scene Composer", skin, "scene-title-bg");
    label.setAlignment(Align.center);
    root.add(label).growX().padBottom(10);
    root.row();
    label = new Label("Scene Composer is a live scenegraph editor for Scene2D.UI. The primary goal is to allow " + "Skin Composer users to test out their skins quickly in simple, reusable layouts. \n\nAs a consequence, " + "Scene Composer is not capable of making complex UI's. The user is encouraged to learn the nuances of " + "Scene2D and create their layouts via code. The export options are included as a convenience, not a " + "replacement for learning proper libGDX techniques.", skin, "scene-label-colored");
    label.setWrap(true);
    root.add(label).growX();
    root.row();
    var horizontalGroup = new HorizontalGroup();
    root.add(horizontalGroup).padTop(20).left();
    label = new Label("Documentation on creating scenes is available ", skin, "scene-label-colored");
    horizontalGroup.addActor(label);
    var textButton = new TextButton("here", skin, "scene-link");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Gdx.net.openURI("https://github.com/raeleus/skin-composer/wiki/Scene-Composer");
        }
    });
    root.row();
    horizontalGroup = new HorizontalGroup();
    root.add(horizontalGroup).padTop(20).left();
    label = new Label("Building scene JSON widgets requires ", skin, "scene-label-colored");
    horizontalGroup.addActor(label);
    textButton = new TextButton("Stripe Widgets", skin, "scene-link");
    horizontalGroup.addActor(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Gdx.net.openURI("https://github.com/raeleus/stripe/blob/master/README.md");
        }
    });
    label = new Label(".", skin, "scene-label-colored");
    horizontalGroup.addActor(label);
    root.show(getStage());
    return root;
}
Also used : PopTable(com.ray3k.stripe.PopTable) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Example 8 with PopTable

use of com.ray3k.stripe.PopTable in project skin-composer by raeleus.

the class DialogSceneComposer method showFindDialog.

public PopTable showFindDialog() {
    var root = new PopTable(skin);
    root.setHideOnUnfocus(true);
    root.setModal(true);
    root.setKeepSizedWithinStage(true);
    root.setKeepCenteredInWindow(true);
    root.pad(20);
    defaults().space(15);
    var label = new Label("Find by Name", skin, "scene-title-bg");
    label.setAlignment(Align.center);
    root.add(label).growX().pad(10);
    root.row();
    var table = new Table();
    root.add(table);
    table.defaults().space(5);
    label = new Label("Name:", skin, "scene-label-colored");
    table.add(label);
    var textField = new TextField("", skin, "scene");
    table.add(textField).minWidth(300);
    textField.addListener(ibeamListener);
    textField.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            var simActor = model.findSimActorByName(textField.getText());
            Label label = root.findActor("found-label");
            TextButton textButton = root.findActor("find-button");
            if (simActor != null) {
                label.setText("Actor found (" + simActor.getClass().getSimpleName() + ")");
                textButton.setDisabled(false);
                textButton.setUserObject(simActor);
            } else {
                label.setText("Actor not found");
                textButton.setDisabled(true);
            }
        }
    });
    textField.addListener(new InputListener() {

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            TextButton textButton = root.findActor("find-button");
            if (!textButton.isDisabled() && (keycode == Keys.ENTER || keycode == Keys.NUMPAD_ENTER)) {
                textButton.setChecked(true);
                return true;
            } else {
                return false;
            }
        }
    });
    root.row();
    label = new Label(" ", skin, "scene-label-colored");
    label.setName("found-label");
    root.add(label);
    root.row();
    table = new Table();
    root.add(table);
    table.defaults().space(10);
    var textButton = new TextButton("Select Widget", skin, "scene-med");
    textButton.setName("find-button");
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            simActor = ((SimActor) actor.getUserObject());
            dialog.populateProperties();
            dialog.populatePath();
            dialog.model.updatePreview();
            root.hide();
        }
    });
    textButton = new TextButton("Cancel", skin, "scene-med");
    table.add(textButton);
    textButton.addListener(handListener);
    textButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            root.hide();
        }
    });
    root.addListener(new PopTable.TableShowHideListener() {

        @Override
        public void tableShown(Event event) {
            getStage().setKeyboardFocus(textField);
        }

        @Override
        public void tableHidden(Event event) {
        }
    });
    root.show(getStage());
    return root;
}
Also used : PopTable(com.ray3k.stripe.PopTable) PopTable(com.ray3k.stripe.PopTable) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 9 with PopTable

use of com.ray3k.stripe.PopTable in project skin-composer by raeleus.

the class DialogSceneComposer method rootBackgroundColorListener.

private EventListener rootBackgroundColorListener() {
    var popTableClickListener = new PopTableClickListener(skin) {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            update();
        }

        public void update() {
            var popTable = getPopTable();
            popTable.clearChildren();
            var label = new Label("Color:", skin, "scene-label-colored");
            popTable.add(label);
            popTable.row();
            var imageButton = new ImageButton(skin, "scene-color");
            imageButton.getImage().setColor(rootActor.backgroundColor == null ? Color.WHITE : rootActor.backgroundColor.color);
            popTable.add(imageButton).minWidth(100);
            imageButton.addListener(handListener);
            imageButton.addListener(new TextTooltip("Select the color of the background.", tooltipManager, skin, "scene"));
            imageButton.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    popTable.hide();
                    dialogFactory.showDialogColors(new StyleProperty(), (colorData, pressedCancel) -> {
                        if (!pressedCancel) {
                            events.rootBackgroundColor(colorData);
                        }
                    }, new DialogListener() {

                        @Override
                        public void opened() {
                        }

                        @Override
                        public void closed() {
                        }
                    });
                }
            });
            popTable.row();
            label = new Label(rootActor.backgroundColor == null ? "white" : rootActor.backgroundColor.getName(), skin, "scene-label-colored");
            popTable.add(label);
        }
    };
    popTableClickListener.update();
    return popTableClickListener;
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener) com.badlogic.gdx.scenes.scene2d.ui(com.badlogic.gdx.scenes.scene2d.ui) com.ray3k.skincomposer.dialog.scenecomposer.menulisteners(com.ray3k.skincomposer.dialog.scenecomposer.menulisteners) Array(com.badlogic.gdx.utils.Array) Cursor(com.badlogic.gdx.graphics.Cursor) DialogListener(com.ray3k.skincomposer.dialog.DialogListener) Gdx(com.badlogic.gdx.Gdx) Align(com.badlogic.gdx.utils.Align) Color(com.badlogic.gdx.graphics.Color) DialogSceneComposerModel(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel) PopTable(com.ray3k.stripe.PopTable) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) StripeMenuBar(com.ray3k.stripe.StripeMenuBar) KeyboardShortcut(com.ray3k.stripe.StripeMenuBar.KeyboardShortcut) Keys(com.badlogic.gdx.Input.Keys) Main(com.ray3k.skincomposer.Main) IntPair(com.ray3k.skincomposer.utils.IntPair) Input(com.badlogic.gdx.Input) com.badlogic.gdx.scenes.scene2d(com.badlogic.gdx.scenes.scene2d) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) DialogListener(com.ray3k.skincomposer.dialog.DialogListener) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 10 with PopTable

use of com.ray3k.stripe.PopTable in project skin-composer by raeleus.

the class DialogSceneComposer method populateProperties.

public void populateProperties() {
    var root = propertiesTable;
    root.clear();
    var horizontalGroup = new HorizontalGroup();
    horizontalGroup.wrap();
    horizontalGroup.align(Align.top);
    root.add(horizontalGroup).grow();
    if (simActor instanceof SimRootGroup) {
        propertiesLabel.setText("Properties");
        var textButton = new TextButton("Add Table", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(rootAddTableListener());
        textButton.addListener(new TextTooltip("Creates a table with the specified number of rows and columns.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimTable) {
        propertiesLabel.setText("Table Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TableListeners.tableNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the table to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::tableTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::tableVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Background", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.selectDrawableListener(((SimTable) simActor).background, "The background image for the table.", events::tableBackground));
        textButton.addListener(new TextTooltip("Sets the background drawable for the table.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TableListeners.tableColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the table background and of the table contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TableListeners.tablePaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("The padding around all of the contents inside the table.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Align", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TableListeners.tableAlignListener(events, simActor));
        textButton.addListener(new TextTooltip("The alignment of the entire contents inside the table.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Set Cells", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TableListeners.tableSetCellsListener(events));
        textButton.addListener(new TextTooltip("Sets the cells for this table. This will erase the existing contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Table", events::tableReset));
        textButton.addListener(new TextTooltip("Resets all options back to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Table", events::tableDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimCell) {
        propertiesLabel.setText("Cell Properties");
        var textButton = new TextButton("Set Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> TableListeners.showConfirmCellSetWidgetDialog(DialogSceneComposer.this, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Creates a new widget and sets it as the contents of this cell.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Cell...", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellAddCellListener(events, simActor));
        textButton.addListener(new TextTooltip("Adds a new cell.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Move Cell...", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellMoveCellListener(events, simActor));
        textButton.addListener(new TextTooltip("Moves the cell in a given direction.", tooltipManager, skin, "scene"));
        var table = new Table();
        horizontalGroup.addActor(table);
        textButton = new TextButton("Column Span", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellColSpanListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the column span of the current cell.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the alignment of the contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding / Spacing", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellPaddingSpacingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding and/or spacing of the current cell.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Expand / Fill / Grow", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellExpandFillGrowListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets how the current cell and its contents are sized.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Size", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellSizeListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the specific sizes of the contents in the cell.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Uniform", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CellListeners.cellUniformListener(events, simActor));
        textButton.addListener(new TextTooltip("All cells set to to uniform = true will share the same size.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Cell", events::cellReset));
        textButton.addListener(new TextTooltip("Resets all of the settings of the cell to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete Cell", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Cell", events::cellDelete));
        textButton.addListener(new TextTooltip("Deletes the cell and its contents.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimTextButton) {
        propertiesLabel.setText("TextButton Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the table to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::textButtonTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::textButtonVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the text button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Checked", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonCheckedListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is checked initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the table background and of the table contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextButtonListeners.textButtonPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding of the contents of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("TextButton", events::textButtonReset));
        textButton.addListener(new TextTooltip("Resets the settings of the TextButton to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("TextButton", events::textButtonDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimButton) {
        propertiesLabel.setText("Button Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the table to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the text button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::buttonTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::buttonVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Checked", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonCheckedListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is checked initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the table background and of the table contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ButtonListeners.buttonPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding of the contents of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Button", events::buttonReset));
        textButton.addListener(new TextTooltip("Resets the settings of the TextButton to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Button", events::buttonDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimImageButton) {
        propertiesLabel.setText("ImageButton Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the table to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the text button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::imageButtonTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::imageButtonVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Checked", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonCheckedListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is checked initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the table background and of the table contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageButtonListeners.imageButtonPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding of the contents of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("ImageButton", events::imageButtonReset));
        textButton.addListener(new TextTooltip("Resets the settings of the TextButton to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("ImageButton", events::imageButtonDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimImageTextButton) {
        propertiesLabel.setText("ImageTextButton Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the table to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the text button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::imageTextButtonTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::imageTextButtonVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Checked", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonCheckedListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is checked initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the table background and of the table contents.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageTextButtonListeners.imageTextButtonPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding of the contents of the button.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("ImageTextButton", events::imageTextButtonReset));
        textButton.addListener(new TextTooltip("Resets the settings of the TextButton to their defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("ImageTextButton", events::imageTextButtonDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimCheckBox) {
        propertiesLabel.setText("CheckBox Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the CheckBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::checkBoxTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::checkBoxVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the CheckBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Checked", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxCheckedListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the CheckBox is checked initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the color of the CheckBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding of the contents of the CheckBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(CheckBoxListeners.checkBoxDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the CheckBox is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("CheckBox", events::checkBoxReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("CheckBox", events::checkBoxDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimImage) {
        propertiesLabel.setText("Image Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageListeners.imageNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Drawable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.selectDrawableListener(((SimImage) simActor).drawable, "The selected drawable for the image.", events::imageDrawable));
        textButton.addListener(new TextTooltip("Sets the drawable to be drawn as the Image.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::imageTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::imageVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Scaling", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ImageListeners.imageScalingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the scaling strategy of the Image when it's stretched or squeezed.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Image", events::imageReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Image", events::imageDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimLabel) {
        propertiesLabel.setText("Label Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the Label.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::labelTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::labelVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the Label.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Color", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelColorListener(events, simActor));
        textButton.addListener(new TextTooltip("Changes the color of the text in the Label.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelTextAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the alignment of the text when the Label is larger than it's minimum size.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Ellipsis", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelEllipsisListener(this));
        textButton.addListener(new TextTooltip("Enabling ellipsis allows the Label to be shortened and appends ellipsis characters (eg. \"...\")", tooltipManager, skin, "scene"));
        textButton = new TextButton("Wrap", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(LabelListeners.labelWrapListener(events, simActor));
        textButton.addListener(new TextTooltip("Allows the text to be wrapped to the next line if it exceeds the width of the Label.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Label", events::labelReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Label", events::labelDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimList) {
        propertiesLabel.setText("List Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ListListeners.listNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ListListeners.listStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the List.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::listTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::listVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text List", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ListListeners.listTextListListener(this));
        textButton.addListener(new TextTooltip("Set the text entries for the List.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("List", events::listReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("List", events::listDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimProgressBar) {
        propertiesLabel.setText("ProgressBar Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the ProgressBar.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::progressBarTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::progressBarVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Value Settings", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarValueSettingsListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the value, minimum, maximum, and increment of the ProgressBar.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Orientation", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarOrientationListener(events, simActor));
        textButton.addListener(new TextTooltip("Change the orientation of the ProgressBar.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Animation", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarAnimationListener(this));
        textButton.addListener(new TextTooltip("Change the progress animation as it increases or decreases.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Round", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarRoundListener(events, simActor));
        textButton.addListener(new TextTooltip("Rounds the drawable positions to integers.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ProgressBarListeners.progressBarDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the ProgressBar is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("ProgressBar", events::progressBarReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("ProgressBar", events::progressBarDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimSelectBox) {
        propertiesLabel.setText("SelectBox Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the SelectBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::selectBoxTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::selectBoxVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text List", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxTextListListener(this));
        textButton.addListener(new TextTooltip("Set the text entries for the SelectBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Max List Count", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxMaxListCountListener(events, simActor));
        textButton.addListener(new TextTooltip("The maximum visible entries.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("The alignment of the text in the SelectBox.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Scrolling", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxScrollingListener(events, simActor));
        textButton.addListener(new TextTooltip("Choose if scrolling is enabled.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SelectBoxListeners.selectBoxDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the SelectBox is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("SelectBox", events::selectBoxReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("SelectBox", events::selectBoxDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimSlider) {
        propertiesLabel.setText("Slider Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the Slider.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::sliderTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::sliderVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Value Settings", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderValueSettingsListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the value, minimum, maximum, and increment of the Slider.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Orientation", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderOrientationListener(events, simActor));
        textButton.addListener(new TextTooltip("Change the orientation of the Slider.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Animation", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderAnimationListener(this));
        textButton.addListener(new TextTooltip("Change the progress animation as it increases or decreases.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Round", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderRoundListener(events, simActor));
        textButton.addListener(new TextTooltip("Rounds the drawable positions to integers.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SliderListeners.sliderDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the button is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Slider", events::sliderReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Slider", events::sliderDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimTextArea) {
        propertiesLabel.setText("TextArea Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the TextArea.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::textAreaTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::textAreaVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the TextArea.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Message Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaMessageTextListener(this));
        textButton.addListener(new TextTooltip("The text to be shown while there is no text, and the TextArea is not focused.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Password", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaPasswordListener(this));
        textButton.addListener(new TextTooltip("Enable password mode and set the password character.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Selection", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaSelectionListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the cursor position and selected range.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the typed text.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Focus Traversal", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaFocusTraversalListener(events, simActor));
        textButton.addListener(new TextTooltip("Enable traversal to the next TextArea by using the TAB key.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Max Length", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaMaxLengthListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the maximum length of the typed text.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Preferred Rows", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaPreferredRowsListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the preferred number of lines.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextAreaListeners.textAreaDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the TextArea is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("TextArea", events::textAreaReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("TextArea", events::textAreaDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimTextField) {
        propertiesLabel.setText("TextField Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the TextField.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::textFieldTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::textFieldVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldTextListener(this));
        textButton.addListener(new TextTooltip("Sets the text inside of the TextField.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Message Text", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldMessageTextListener(this));
        textButton.addListener(new TextTooltip("The text to be shown while there is no text, and the TextField is not focused.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Password", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldPasswordListener(this));
        textButton.addListener(new TextTooltip("Enable password mode and set the password character.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Selection", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldSelectionListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the cursor position and selected range.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the typed text.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Focus Traversal", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldFocusTraversalListener(events, simActor));
        textButton.addListener(new TextTooltip("Enable traversal to the next TextField by using the TAB key.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Max Length", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldMaxLengthListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the maximum length of the typed text.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Disabled", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TextFieldListeners.textFieldDisabledListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets whether the TextField is disabled initially.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("TextField", events::textFieldReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("TextField", events::textFieldDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimTouchPad) {
        propertiesLabel.setText("TouchPad Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TouchPadListeners.touchPadNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TouchPadListeners.touchPadStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the TouchPad.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::touchPadTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::touchPadVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Dead Zone", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TouchPadListeners.touchPadDeadZoneListener(events, simActor));
        textButton.addListener(new TextTooltip("Change the dead zone that does not react to user input.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset on Touch Up", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TouchPadListeners.touchPadResetOnTouchUpListener(events, simActor));
        textButton.addListener(new TextTooltip("Enable the reset of the touch pad position upon the release of the widget.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("TouchPad", events::touchPadReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("TouchPad", events::touchPadDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimContainer) {
        propertiesLabel.setText("Container Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ContainerListeners.containerNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Set Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> ContainerListeners.showConfirmContainerSetWidgetDialog(DialogSceneComposer.this, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Set the widget assigned to this Container.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::containerTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::containerVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Background", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.selectDrawableListener(((SimContainer) simActor).background, "The background image of the Container.", events::containerBackground));
        textButton.addListener(new TextTooltip("Set the background of the Container.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Fill", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ContainerListeners.containerFillListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the fill of the widget.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Size", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ContainerListeners.containerSizeListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the size of the widget.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ContainerListeners.containerPaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the padding of the widget.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ContainerListeners.containerAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the widget.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Container", events::containerReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Container", events::containerDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimHorizontalGroup) {
        propertiesLabel.setText("HorizontalGroup Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Child", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> HorizontalGroupListeners.horizontalGroupAddChild(events, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Adds a widget to the HorizontalGroup", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::horizontalGroupTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::horizontalGroupVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Expand", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupExpandFillGrowListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the widgets to expand to the available space", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding/Spacing", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupPaddingSpacingListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the padding of the widgets.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Wrap", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupWrapListener(events, simActor));
        textButton.addListener(new TextTooltip("Set whether widgets will wrap to the next line when the width is decreased.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the widgets", tooltipManager, skin, "scene"));
        textButton = new TextButton("Row Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupRowAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the widgets", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reverse", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(HorizontalGroupListeners.horizontalGroupReverseListener(events, simActor));
        textButton.addListener(new TextTooltip("Reverse the display order of the widgets.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("HorizontalGroup", events::horizontalGroupReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("HorizontalGroup", events::horizontalGroupDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimScrollPane) {
        propertiesLabel.setText("ScrollPane Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ScrollPaneListeners.scrollPaneNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ScrollPaneListeners.scrollPaneStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the ScrollPane.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Set Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> ScrollPaneListeners.showConfirmScrollPaneSetWidgetDialog(DialogSceneComposer.this, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Set the widget assigned to this ScrollPane.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::scrollPaneTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::scrollPaneVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Knobs", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ScrollPaneListeners.scrollPaneKnobsListener(events, simActor));
        textButton.addListener(new TextTooltip("Knob and Scroll Bar settings.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Scrolling", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(ScrollPaneListeners.scrollPaneScrollListener(events, simActor));
        textButton.addListener(new TextTooltip("Scroll settings.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("ScrollPane", events::scrollPaneReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("ScrollPane", events::scrollPaneDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimSplitPane) {
        propertiesLabel.setText("SplitPane Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SplitPaneListeners.splitPaneNameListener(this));
        textButton.addListener(new TextTooltip("Set the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SplitPaneListeners.splitPaneStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the style that controls the appearance of the SplitPane.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Set First Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> {
            SplitPaneListeners.showConfirmSplitPaneSetWidgetDialog(this, widgetType, popTable, true);
        }));
        textButton.addListener(new TextTooltip("Set the first widget applied to the SplitPane", tooltipManager, skin, "scene"));
        textButton = new TextButton("Set Second Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> {
            SplitPaneListeners.showConfirmSplitPaneSetWidgetDialog(this, widgetType, popTable, false);
        }));
        textButton.addListener(new TextTooltip("Set the second widget applied to the SplitPane", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::splitPaneTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::splitPaneVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Orientation", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SplitPaneListeners.splitPaneOrientationListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the orientation of the SplitPane.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Split", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(SplitPaneListeners.splitPaneSplitListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the split, splitMin, and splitMax values.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("SplitPane", events::splitPaneReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("SplitPane", events::splitPaneDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimStack) {
        propertiesLabel.setText("Stack Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(StackListeners.stackNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Child", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> StackListeners.stackAddChild(events, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Add a child to the Stack.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::stackTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::stackVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Stack", events::stackReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Stack", events::stackDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimNode) {
        propertiesLabel.setText("Node Properties");
        var textButton = new TextButton("Set Widget", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> TreeListeners.showConfirmNodeSetWidgetDialog(DialogSceneComposer.this, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Set the widget applied to this Node.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Node", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeEvent event, Actor actor) {
                events.nodeAddNode();
            }
        });
        textButton.addListener(new TextTooltip("Adds a new child Node to this Node.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Icon", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.selectDrawableListener(((SimNode) simActor).icon, "The selected drawable for the icon.", events::nodeIcon));
        textButton.addListener(new TextTooltip("Select the Drawable applied as an icon to the Node.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Options", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TreeListeners.nodeOptionsListener(events, simActor));
        textButton.addListener(new TextTooltip("Change the expanded and selected values.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Node", events::nodeReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Node", events::nodeDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof SimTree) {
        propertiesLabel.setText("Tree Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TreeListeners.treeNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Style", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TreeListeners.treeStyleListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the style that controls the appearance of the Tree.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Node", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeEvent event, Actor actor) {
                events.treeAddNode();
            }
        });
        textButton.addListener(new TextTooltip("Adds a new node to this tree.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::treeTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::treeVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TreeListeners.treePaddingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the padding for the tree.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Spacing", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(TreeListeners.treeSpacingListener(events, simActor));
        textButton.addListener(new TextTooltip("Sets the spacing for the tree nodes.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("Tree", events::treeReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("Tree", events::treeDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    } else if (simActor instanceof DialogSceneComposerModel.SimVerticalGroup) {
        propertiesLabel.setText("VerticalGroup Properties");
        var textButton = new TextButton("Name", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupNameListener(this));
        textButton.addListener(new TextTooltip("Sets the name of the widget to allow for convenient searching via Group#findActor().", tooltipManager, skin, "scene"));
        textButton = new TextButton("Add Child", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.setWidgetListener(this, (widgetType, popTable) -> VerticalGroupListeners.verticalGroupAddChild(events, widgetType, popTable)));
        textButton.addListener(new TextTooltip("Adds a widget to the VerticalGroup.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Touchable", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.touchableListener(simActor, events::verticalGroupTouchable));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Visible", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.visibleListener(simActor, events::verticalGroupVisible));
        textButton.addListener(new TextTooltip("Sets whether this widget can be clicked on.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Expand", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupExpandFillGrowListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the widgets to expand to the available space.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Padding/Spacing", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupPaddingSpacingListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the padding/spacing of the widgets.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Wrap", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupWrapListener(events, simActor));
        textButton.addListener(new TextTooltip("Set whether widgets will wrap to the next line when the height is decreased.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the widgets", tooltipManager, skin, "scene"));
        textButton = new TextButton("Column Alignment", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupColumnAlignmentListener(events, simActor));
        textButton.addListener(new TextTooltip("Set the alignment of the widgets", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reverse", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(VerticalGroupListeners.verticalGroupReverseListener(events, simActor));
        textButton.addListener(new TextTooltip("Reverse the display order of the widgets.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Reset", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetResetListener("VerticalGroup", events::verticalGroupReset));
        textButton.addListener(new TextTooltip("Resets the settings of the widget to its defaults.", tooltipManager, skin, "scene"));
        textButton = new TextButton("Delete", skin, "scene-med");
        horizontalGroup.addActor(textButton);
        textButton.addListener(handListener);
        textButton.addListener(GeneralListeners.widgetDeleteListener("VerticalGroup", events::verticalGroupDelete));
        textButton.addListener(new TextTooltip("Removes this widget from its parent.", tooltipManager, skin, "scene"));
    }
}
Also used : FileHandle(com.badlogic.gdx.files.FileHandle) PopTableClickListener(com.ray3k.stripe.PopTableClickListener) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener) com.badlogic.gdx.scenes.scene2d.ui(com.badlogic.gdx.scenes.scene2d.ui) com.ray3k.skincomposer.dialog.scenecomposer.menulisteners(com.ray3k.skincomposer.dialog.scenecomposer.menulisteners) Array(com.badlogic.gdx.utils.Array) Cursor(com.badlogic.gdx.graphics.Cursor) DialogListener(com.ray3k.skincomposer.dialog.DialogListener) Gdx(com.badlogic.gdx.Gdx) Align(com.badlogic.gdx.utils.Align) Color(com.badlogic.gdx.graphics.Color) DialogSceneComposerModel(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel) PopTable(com.ray3k.stripe.PopTable) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) StripeMenuBar(com.ray3k.stripe.StripeMenuBar) KeyboardShortcut(com.ray3k.stripe.StripeMenuBar.KeyboardShortcut) Keys(com.badlogic.gdx.Input.Keys) Main(com.ray3k.skincomposer.Main) IntPair(com.ray3k.skincomposer.utils.IntPair) Input(com.badlogic.gdx.Input) com.badlogic.gdx.scenes.scene2d(com.badlogic.gdx.scenes.scene2d) StyleProperty(com.ray3k.skincomposer.data.StyleProperty) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) PopTable(com.ray3k.stripe.PopTable) DialogSceneComposerModel(com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel)

Aggregations

PopTable (com.ray3k.stripe.PopTable)34 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)32 PopTableClickListener (com.ray3k.stripe.PopTableClickListener)32 SimActor (com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor)26 Actor (com.badlogic.gdx.scenes.scene2d.Actor)18 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)18 Spinner (com.ray3k.stripe.Spinner)10 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)7 StyleSelectorPopTable (com.ray3k.skincomposer.dialog.scenecomposer.StyleSelectorPopTable)6 IntPair (com.ray3k.skincomposer.utils.IntPair)6 Array (com.badlogic.gdx.utils.Array)5 DialogSceneComposerModel (com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel)5 Input (com.badlogic.gdx.Input)4 Keys (com.badlogic.gdx.Input.Keys)4 FileHandle (com.badlogic.gdx.files.FileHandle)4 Color (com.badlogic.gdx.graphics.Color)4 com.badlogic.gdx.scenes.scene2d (com.badlogic.gdx.scenes.scene2d)4 com.badlogic.gdx.scenes.scene2d.ui (com.badlogic.gdx.scenes.scene2d.ui)4 Align (com.badlogic.gdx.utils.Align)4 Main (com.ray3k.skincomposer.Main)4