Example usage for com.badlogic.gdx.scenes.scene2d.ui SplitPane SplitPane

List of usage examples for com.badlogic.gdx.scenes.scene2d.ui SplitPane SplitPane

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.ui SplitPane SplitPane.

Prototype

public SplitPane(Actor firstWidget, Actor secondWidget, boolean vertical, SplitPaneStyle style) 

Source Link

Usage

From source file:at.hid.tabletopsimulator.screens.About.java

License:Apache License

@Override
public void show() {
    TableTopSimulator.debug(this.getClass().toString(), "creating About screen");
    stage = new Stage(new ExtendViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()));

    Gdx.input.setInputProcessor(stage);//from   w w w  . jav a  2s  . c om

    // creating skin
    TableTopSimulator.debug(this.getClass().toString(), "creating skin");
    skin = TableTopSimulator.assets.get("ui/gui.json", Skin.class);

    table = new Table(skin);
    //      table.setFillParent(true);
    //      table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    // creating heading
    TableTopSimulator.debug(this.getClass().toString(), "creating heading");
    Label lblHeading = new Label(TableTopSimulator.getLangBundle().format("About.lblHeading.text"), skin);

    final Label lblContent = new Label("http://libgdx.badlogicgames.com/\r\n" + "\r\n"
            + "libGDX is licensed under the Apache 2 License,\r\n"
            + "meaning you can use it free of charge, without strings attached in commercial and non-commercial projects.\r\n"
            + "We love to get (non-mandatory) credit in case you release a game or app using libgdx!", skin,
            "content");

    // creating list

    final List<String> listAbout = new List<String>(skin, "content");
    ArrayList<String> newItems = new ArrayList<String>();
    newItems.add("libgdx");
    newItems.add("libgdx-utils");
    newItems.add("flare gameart");
    String[] data = new String[newItems.size()];
    listAbout.setItems(newItems.toArray(data));
    listAbout.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            if (listAbout.getSelected().equals("libgdx")) {
                lblContent.clear();
                lblContent.setText("http://libgdx.badlogicgames.com/\r\n" + "\r\n"
                        + "libGDX is licensed under the Apache 2 License,\r\n"
                        + "meaning you can use it free of charge, without strings attached in commercial and non-commercial projects.\r\n"
                        + "We love to get (non-mandatory) credit in case you release a game or app using libgdx!");
            } else if (listAbout.getSelected().equals("libgdx-utils")) {
                lblContent.clear();
                lblContent.setText("https://bitbucket.org/dermetfan/libgdx-utils/wiki/Home\r\n" + "\r\n"
                        + "/* Copyright (c) 2014 PixelScientists\r\n" + "*\r\n" + "* The MIT License (MIT)\r\n"
                        + "*\r\n"
                        + "* Permission is hereby granted, free of charge, to any person obtaining a copy of\r\n"
                        + "* this software and associated documentation files (the \"Software\"), to deal in\r\n"
                        + "* the Software without restriction, including without limitation the rights to\r\n"
                        + "* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r\n"
                        + "* the Software, and to permit persons to whom the Software is furnished to do so,\r\n"
                        + "* subject to the following conditions:\r\n" + "*\r\n"
                        + "* The above copyright notice and this permission notice shall be included in all\r\n"
                        + "* copies or substantial portions of the Software.\r\n" + "*\r\n"
                        + "* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n"
                        + "* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r\n"
                        + "* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r\n"
                        + "* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r\n"
                        + "* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n"
                        + "* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n"
                        + "*/");
            } else if (listAbout.getSelected().equals("flare gameart")) {
                lblContent.clear();
                lblContent.setText("https://github.com/clintbellanger/flare-game\r\n" + "\r\n"
                        + "Flare (the game) is Copyright 2010-2013 Clint Bellanger. Contributors retain copyrights to their original contributions.\r\n"
                        + "\r\n" + "The Flare Engine is released under GPL version 3 or later.\r\n" + "\r\n"
                        + "All of Flare's art and data files are released under CC-BY-SA 3.0. Later versions are permitted.\r\n"
                        + "\r\n"
                        + "The Liberation Sans fonts version 2 are released under the SIL Open Font License, Version 1.1.\r\n"
                        + "\r\n"
                        + "The GNU Unifont font is released under GPL v2, with the exception that embedding the font in a document does not in itself bind that document to the terms of the GPL.");
            }
        }
    });

    // creating buttons
    TableTopSimulator.debug(this.getClass().toString(), "creating buttons");
    TextButton btnBack = new TextButton(TableTopSimulator.getLangBundle().format("About.btnBack.text"), skin);
    btnBack.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            TableTopSimulator.debug(this.getClass().toString(), "switching to Options screen");
            ((Game) Gdx.app.getApplicationListener()).setScreen(new Options());
            dispose();
        }
    });
    btnBack.pad(10);

    ScrollPane spAboutList = new ScrollPane(null, skin);
    ScrollPane spAboutContent = new ScrollPane(null, skin);

    SplitPane splitAbout = new SplitPane(spAboutList, spAboutContent, false, skin);
    splitAbout.setSplitAmount(0.2f);

    spAboutList.setWidget(listAbout);
    spAboutContent.setWidget(lblContent);

    // building ui
    TableTopSimulator.debug(this.getClass().toString(), "building ui");
    table.add(lblHeading).spaceBottom(100).row();
    table.add(splitAbout).spaceBottom(15).width(1200).row();
    table.add(btnBack).spaceBottom(15).row();
    if (TableTopSimulator.DEBUG) {
        table.debug(); // draw debug lines 
        splitAbout.debug(); // draw debug lines 
    }
    stage.addActor(table);
}

From source file:com.bladecoder.engineeditor.Editor.java

License:Apache License

@Override
public void create() {
    skin = new Skin(Gdx.files.internal(SKIN));

    EditorLogger.setDebug();/*  w ww.  j  a v  a2  s .com*/
    EditorLogger.debug("CREATE");
    Ctx.project = new Project();
    Message.init(skin);
    Ctx.assetManager = new EditorAssetManager();

    scnEditor = new ScnEditor(skin);
    scnEditor.setBackground("background");
    skin.getFont("default-font").getData().markupEnabled = true;

    /*** STAGE SETUP ***/
    stage = new Stage(new ScreenViewport());
    Gdx.input.setInputProcessor(stage);

    // RIGHT PANEL
    ScenePanel scenePanel = new ScenePanel(skin);
    ActorPanel actorPanel = new ActorPanel(skin);

    Table rightPanel = new Table(skin);
    rightPanel.top().left();
    rightPanel.add(actorPanel).expand().fill().left();
    rightPanel.setBackground("background");

    SplitPane splitPaneRight = new SplitPane(scnEditor, rightPanel, false, skin);

    splitPaneRight.setSplitAmount(0.75f);

    // LEFT PANEL
    ProjectPanel projectPanel = new ProjectPanel(skin);
    Image img = new Image(Ctx.assetManager.getIcon("title"));
    img.setScaling(Scaling.none);
    img.setAlign(Align.left);

    Table leftPanel = new Table(skin);
    leftPanel.top().left().padLeft(10);
    leftPanel.add(img).expand().fill().padBottom(20).padTop(20).padLeft(0).left();
    leftPanel.row();
    leftPanel.add(new ProjectToolbar(skin)).expandX().fill().left();
    leftPanel.row();
    leftPanel.add(projectPanel).expand().fill().left();
    leftPanel.row();
    leftPanel.add(scenePanel).expand().fill().left();
    leftPanel.setBackground("background");

    SplitPane splitPaneLeft = new SplitPane(leftPanel, splitPaneRight, false, skin);
    splitPaneLeft.setFillParent(true);
    splitPaneLeft.setSplitAmount(0.25f);
    stage.addActor(splitPaneLeft);

    // LOAD LAST OPEN PROJECT
    String lastProject = Ctx.project.getEditorConfig().getProperty(Project.LAST_PROJECT_PROP, "");

    if (!lastProject.isEmpty() && new File(lastProject).exists()) {
        try {
            EditorLogger.debug("Loading last project: " + lastProject);
            Ctx.project.loadProject(new File(lastProject));
        } catch (Exception e) {
            EditorLogger.debug("Error loading last project: " + e.getMessage());
            Ctx.project.closeProject();
            e.printStackTrace();
        }
    }

    stage.setScrollFocus(scnEditor.getScnWidget());
    stage.setKeyboardFocus(scnEditor.getScnWidget());

    TooltipManager.getInstance().instant();
}

From source file:com.ray3k.skincomposer.RootTable.java

License:Open Source License

private void addStyleAndPreviewSplit() {
    stylePropertiesTable = new Table();
    stylePropertiesTable.setTouchable(Touchable.enabled);

    addStyleProperties(stylePropertiesTable);

    Table right = new Table();
    right.setTouchable(Touchable.enabled);

    addPreviewPreviewPropertiesSplit(right, scrollPaneListener);

    SplitPane splitPane = new SplitPane(stylePropertiesTable, right, false, getSkin());
    add(splitPane).grow();/*from ww  w. jav  a 2 s  .  c  om*/

    splitPane.addListener(new InputListener() {
        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            }
        }

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.HorizontalResize);
            }
        }

    });

    splitPane.addListener(new DragListener() {
        @Override
        public void dragStop(InputEvent event, float x, float y, int pointer) {
            Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            draggingCursor = false;
        }

        @Override
        public void dragStart(InputEvent event, float x, float y, int pointer) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.HorizontalResize);
                draggingCursor = true;
            }
        }

    });
}

From source file:com.ray3k.skincomposer.RootTable.java

License:Open Source License

private void addPreviewPreviewPropertiesSplit(final Table right, InputListener scrollPaneListener) {
    Table bottom = new Table();
    bottom.setTouchable(Touchable.enabled);

    addPreviewProperties(bottom, scrollPaneListener);

    Table top = new Table();
    top.setTouchable(Touchable.enabled);

    addPreview(top, scrollPaneListener);

    SplitPane splitPane = new SplitPane(top, bottom, true, getSkin());
    right.add(splitPane).grow();/*from   www .  j  av  a  2 s  .c  o m*/

    splitPane.addListener(new InputListener() {
        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            }
        }

        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.VerticalResize);
            }
        }
    });

    splitPane.addListener(new DragListener() {
        @Override
        public void dragStop(InputEvent event, float x, float y, int pointer) {
            Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
            draggingCursor = false;
        }

        @Override
        public void dragStart(InputEvent event, float x, float y, int pointer) {
            if (!draggingCursor && event.getListenerActor().equals(event.getTarget())) {
                Gdx.graphics.setSystemCursor(Cursor.SystemCursor.VerticalResize);
                draggingCursor = true;
            }
        }

    });
}

From source file:com.ray3k.skincomposer.RootTable.java

License:Open Source License

public void refreshPreview() {
    if (previewTable != null) {
        previewTable.clear();//from w ww  .ja  v  a  2 s . c  o  m
        previewTable.setColor((Color) previewProperties.get("bgcolor"));

        for (BitmapFont font : previewFonts) {
            font.dispose();
        }

        if (classSelectBox.getSelectedIndex() >= 0) {
            StyleData styleData = getSelectedStyle();
            Class clazz = Main.BASIC_CLASSES[classSelectBox.getSelectedIndex()];

            if (!styleData.hasMandatoryFields()) {
                Label label;
                if (clazz.equals(SelectBox.class)) {
                    label = new Label(
                            "Please fill all mandatory fields\n(Highlighted on the left)\n\nscrollStyle and listStyle\nmust already be defined",
                            getSkin());
                } else if (clazz.equals(TextTooltip.class)) {
                    label = new Label(
                            "Please fill all mandatory fields\n(Highlighted on the left)\n\nlabel must already be defined",
                            getSkin());
                } else {
                    label = new Label("Please fill all mandatory fields\n(Highlighted on the left)", getSkin());
                }
                label.setAlignment(Align.center);
                previewTable.add(label);
            } else if (styleData.hasAllNullFields()) {
                Label label;
                label = new Label(
                        "All fields are empty!\nEmpty classes are not exported\nAdd style properties in the menu to the left",
                        getSkin());
                label.setAlignment(Align.center);
                previewTable.add(label);
            } else {
                Actor widget = null;
                if (clazz.equals(Button.class)) {
                    Button.ButtonStyle style = createPreviewStyle(Button.ButtonStyle.class, styleData);
                    widget = new Button(style);
                    ((Button) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(CheckBox.class)) {
                    CheckBox.CheckBoxStyle style = createPreviewStyle(CheckBox.CheckBoxStyle.class, styleData);
                    widget = new CheckBox("", style);
                    ((CheckBox) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    ((CheckBox) widget).setText((String) previewProperties.get("text"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(ImageButton.class)) {
                    ImageButtonStyle style = createPreviewStyle(ImageButtonStyle.class, styleData);
                    widget = new ImageButton(style);
                    ((ImageButton) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(ImageTextButton.class)) {
                    ImageTextButton.ImageTextButtonStyle style = createPreviewStyle(
                            ImageTextButton.ImageTextButtonStyle.class, styleData);
                    widget = new ImageTextButton("", style);
                    ((ImageTextButton) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    ((ImageTextButton) widget).setText((String) previewProperties.get("text"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(Label.class)) {
                    LabelStyle style = createPreviewStyle(LabelStyle.class, styleData);
                    widget = new Label("", style);
                    ((Label) widget).setText((String) previewProperties.get("text"));
                } else if (clazz.equals(List.class)) {
                    ListStyle style = createPreviewStyle(ListStyle.class, styleData);
                    widget = new List(style);
                    Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n"));
                    ((List) widget).setItems(items);
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(ProgressBar.class)) {
                    ProgressBar.ProgressBarStyle style = createPreviewStyle(ProgressBar.ProgressBarStyle.class,
                            styleData);
                    widget = new ProgressBar((float) (double) previewProperties.get("minimum"),
                            (float) (double) previewProperties.get("maximum"),
                            (float) (double) previewProperties.get("increment"),
                            (boolean) previewProperties.get("orientation"), style);
                    ((ProgressBar) widget).setValue((float) (double) previewProperties.get("value"));
                    ((ProgressBar) widget).setDisabled((boolean) previewProperties.get("disabled"));
                } else if (clazz.equals(ScrollPane.class)) {
                    ScrollPaneStyle style = createPreviewStyle(ScrollPaneStyle.class, styleData);
                    Label label = new Label("", getSkin());
                    widget = new ScrollPane(label, style);
                    ((ScrollPane) widget)
                            .setScrollbarsOnTop((boolean) previewProperties.get("scrollbarsOnTop"));
                    ((ScrollPane) widget).setScrollBarPositions(
                            (boolean) previewProperties.get("hScrollBarPosition"),
                            (boolean) previewProperties.get("vScrollBarPosition"));
                    ((ScrollPane) widget).setScrollingDisabled(
                            (boolean) previewProperties.get("hScrollDisabled"),
                            (boolean) previewProperties.get("vScrollDisabled"));
                    ((ScrollPane) widget).setForceScroll((boolean) previewProperties.get("forceHscroll"),
                            (boolean) previewProperties.get("forceVscroll"));
                    ((ScrollPane) widget)
                            .setVariableSizeKnobs((boolean) previewProperties.get("variableSizeKnobs"));
                    ((ScrollPane) widget).setOverscroll((boolean) previewProperties.get("hOverscroll"),
                            (boolean) previewProperties.get("vOverscroll"));
                    ((ScrollPane) widget).setFadeScrollBars((boolean) previewProperties.get("fadeScroll"));
                    ((ScrollPane) widget).setSmoothScrolling((boolean) previewProperties.get("smoothScroll"));
                    ((ScrollPane) widget).setFlickScroll((boolean) previewProperties.get("flickScroll"));
                    ((ScrollPane) widget).setClamp((boolean) previewProperties.get("clamp"));
                    label.setText((String) previewProperties.get("text"));
                } else if (clazz.equals(SelectBox.class)) {
                    SelectBox.SelectBoxStyle style = createPreviewStyle(SelectBox.SelectBoxStyle.class,
                            styleData);
                    widget = new SelectBox(style);
                    ((SelectBox) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n"));
                    ((SelectBox) widget).setItems(items);
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(Slider.class)) {
                    Slider.SliderStyle style = createPreviewStyle(Slider.SliderStyle.class, styleData);
                    widget = new Slider((float) (double) previewProperties.get("minimum"),
                            (float) (double) previewProperties.get("maximum"),
                            (float) (double) previewProperties.get("increment"),
                            (boolean) previewProperties.get("orientation"), style);
                    ((Slider) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(SplitPane.class)) {
                    SplitPane.SplitPaneStyle style = createPreviewStyle(SplitPane.SplitPaneStyle.class,
                            styleData);
                    Label label1 = new Label("", getSkin());
                    Label label2 = new Label("", getSkin());
                    widget = new SplitPane(label1, label2, (boolean) previewProperties.get("orientation"),
                            style);
                    label1.setText((String) previewProperties.get("text"));
                    label2.setText((String) previewProperties.get("text"));

                    if ((boolean) previewProperties.get("orientation")) {
                        widget.addListener(vSplitPaneDragListener);
                        widget.addListener(vSplitPaneInputListener);
                    } else {
                        widget.addListener(hSplitPaneDragListener);
                        widget.addListener(hSplitPaneInputListener);
                    }
                } else if (clazz.equals(TextButton.class)) {
                    TextButtonStyle style = createPreviewStyle(TextButtonStyle.class, styleData);
                    widget = new TextButton("", style);
                    ((TextButton) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    ((TextButton) widget).setText((String) previewProperties.get("text"));
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(TextField.class)) {
                    TextFieldStyle style = createPreviewStyle(TextFieldStyle.class, styleData);
                    widget = new TextField("", style);
                    ((TextField) widget).setFocusTraversal(false);
                    ((TextField) widget).setDisabled((boolean) previewProperties.get("disabled"));
                    ((TextField) widget).setPasswordMode((boolean) previewProperties.get("passwordMode"));
                    ((TextField) widget).setAlignment((int) previewProperties.get("alignment"));
                    ((TextField) widget).setText((String) previewProperties.get("text"));
                    ((TextField) widget).setMessageText((String) previewProperties.get("message"));
                    String string = (String) previewProperties.get("password");
                    if (string.length() > 0) {
                        ((TextField) widget).setPasswordCharacter(string.charAt(0));
                    }
                    widget.addListener(main.getIbeamListener());
                } else if (clazz.equals(TextTooltip.class)) {
                    TextTooltip.TextTooltipStyle style = createPreviewStyle(TextTooltip.TextTooltipStyle.class,
                            styleData);

                    TooltipManager manager = new TooltipManager();
                    manager.animations = false;
                    manager.initialTime = 0.0f;
                    manager.resetTime = 0.0f;
                    manager.subsequentTime = 0.0f;
                    manager.hideAll();
                    manager.instant();
                    TextTooltip toolTip = new TextTooltip((String) previewProperties.get("text"), manager,
                            style);

                    widget = new Label("Hover over me", getSkin());
                    widget.addListener(toolTip);
                } else if (clazz.equals(Touchpad.class)) {
                    Touchpad.TouchpadStyle style = createPreviewStyle(Touchpad.TouchpadStyle.class, styleData);
                    widget = new Touchpad(0, style);
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(Tree.class)) {
                    Tree.TreeStyle style = createPreviewStyle(Tree.TreeStyle.class, styleData);
                    widget = new Tree(style);
                    String[] lines = { "this", "is", "a", "test" };
                    Tree.Node parentNode = null;
                    for (String line : lines) {
                        Label label = new Label(line, getSkin());
                        Tree.Node node = new Tree.Node(label);
                        if (parentNode == null) {
                            ((Tree) widget).add(node);
                        } else {
                            parentNode.add(node);
                        }
                        parentNode = node;
                    }
                    widget.addListener(main.getHandListener());
                } else if (clazz.equals(Window.class)) {
                    Window.WindowStyle style = createPreviewStyle(Window.WindowStyle.class, styleData);

                    Label sampleText = new Label("", getSkin());
                    sampleText.setText((String) previewProperties.get("text"));

                    widget = new Window((String) previewProperties.get("title"), style);
                    ((Window) widget).add(sampleText);
                }

                if (widget != null) {
                    switch ((int) previewProperties.get("size")) {
                    case (0):
                        previewTable.add(widget).size(10.0f);
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (1):
                        previewTable.add(widget);
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (2):
                        previewTable.add(widget).size(200.0f);
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (3):
                        previewTable.add(widget).growX();
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (4):
                        previewTable.add(widget).growY();
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (5):
                        previewTable.add(widget).grow();
                        previewSizeSelectBox.setItems(DEFAULT_SIZES);
                        break;
                    case (6):
                        Actor addWidget = widget;
                        TextField widthField = new TextField("", getSkin());
                        TextField heightField = new TextField("", getSkin());
                        System.out.println("trigger");
                        Dialog dialog = new Dialog("Enter dimensions...", getSkin()) {
                            @Override
                            protected void result(Object object) {
                                if ((boolean) object) {
                                    previewTable.add(addWidget).size(Integer.parseInt(widthField.getText()),
                                            Integer.parseInt(heightField.getText()));
                                    Array<String> items = new Array<>(DEFAULT_SIZES);
                                    items.add(widthField.getText() + "x" + heightField.getText());
                                    previewProperties.put("sizeX", Integer.parseInt(widthField.getText()));
                                    previewProperties.put("sizeY", Integer.parseInt(heightField.getText()));
                                    previewSizeSelectBox.setItems(items);
                                    previewSizeSelectBox.setSelectedIndex(7);
                                } else {
                                    previewSizeSelectBox.setSelectedIndex(1);
                                }
                            }
                        };
                        dialog.getTitleTable().getCells().first().padLeft(5.0f);
                        dialog.text("Enter the preview dimensions: ");
                        dialog.getContentTable().getCells().first().pad(10.0f);
                        dialog.getContentTable().row();
                        Table sizeTable = new Table();
                        sizeTable.add(widthField).padLeft(10.0f);
                        sizeTable.add(new Label(" x ", getSkin()));
                        sizeTable.add(heightField).padRight(10.0f);
                        dialog.getContentTable().add(sizeTable);
                        dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f);
                        dialog.button("OK", true);
                        dialog.button("Cancel", false);
                        dialog.key(Input.Keys.ESCAPE, false);
                        dialog.key(Input.Keys.ENTER, true);
                        dialog.show(stage);
                        stage.setKeyboardFocus(widthField);
                        break;
                    case (7):
                        previewTable.add(widget).size((int) previewProperties.get("sizeX"),
                                (int) previewProperties.get("sizeY"));
                        break;
                    }
                }
            }
        }
    }
}