Example usage for com.badlogic.gdx.scenes.scene2d.ui Dialog hide

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

Introduction

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

Prototype

public void hide() 

Source Link

Document

Hides the dialog.

Usage

From source file:ateamproject.kezuino.com.github.render.screens.LoginScreen.java

public LoginScreen(Game game) {
    super(game);//from  www  .ja v  a  2 s.  c  o  m

    TextField txtUsername = new TextField("pactales1@gmail.com", skin);

    TextField txtPassword = new TextField("pactales!", skin);
    txtPassword.setPasswordCharacter('*');
    txtPassword.setPasswordMode(true);

    TextButton btnLogin = new TextButton("Inloggen", skin);

    btnLogin.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            btnLogin.setTouchable(Touchable.disabled);
            btnLogin.setText("Laden");
            Thread loginThread = new Thread(() -> {
                PacketLoginAuthenticate packet = new PacketLoginAuthenticate(txtUsername.getText(),
                        txtPassword.getText(), null);
                Client.getInstance().send(packet);

                Gdx.app.postRunnable(() -> {
                    // Login was successful..
                    if (Client.getInstance().getId() != null) {
                        PacketLoginUserExists packetUserExists = new PacketLoginUserExists(
                                txtUsername.getText(), null);
                        Client.getInstance().send(packetUserExists);

                        // Handle user doesn't exist.
                        if (!packetUserExists.getResult()) {
                            Dialog d = new Dialog("Geen gebruiker gevonden", skin);
                            d.add("Gebruikersnaam:");
                            TextField f = new TextField("", skin);
                            d.add(f);
                            bExit = new TextButton("Oke", skin);
                            bExit.addListener(new ClickListener() {
                                @Override
                                public void clicked(InputEvent event, float x, float y) {
                                    if (!f.getText().isEmpty()) {
                                        PacketLoginCreateNewUser packet1;
                                        packet1 = new PacketLoginCreateNewUser(f.getText(),
                                                txtUsername.getText());
                                        Client.getInstance().send(packet1);
                                        if (!packet1.getResult()) {
                                            new Dialog("Error", skin) {
                                                {
                                                    text("De naam bestaat al.");
                                                    button("Oke");
                                                }
                                            }.show(stage);
                                        } else {
                                            d.hide();
                                            Client.getInstance().setUsername(f.getText());
                                            game.setScreen(new MainScreen(game));
                                        }
                                    }
                                }
                            });
                            d.add(bExit);
                            d.show(stage);
                        } else {
                            game.setScreen(new MainScreen(game));
                        }
                    } else {
                        new Dialog("Error", skin) {
                            {
                                text(packet.getResult().getMessage());
                                button("Oke");
                            }
                        }.show(stage);
                    }
                    btnLogin.setText("Inloggen");
                    btnLogin.setTouchable(Touchable.enabled);//enable button touch
                });
            });
            loginThread.start();
        }
    });

    txtUsername.setSize(300, 40);
    txtPassword.setSize(300, 40);
    txtPassword.setPasswordMode(true);
    btnLogin.setSize(300, 40);

    btnLogin.setPosition(stage.getWidth() / 2 - btnLogin.getWidth() / 2, 150);
    txtUsername.setPosition(stage.getWidth() / 2 - txtUsername.getWidth() / 2, 300);
    txtPassword.setPosition(stage.getWidth() / 2 - txtPassword.getWidth() / 2, 250);

    stage.addActor(btnLogin);
    stage.addActor(txtUsername);
    stage.addActor(txtPassword);

    backgroundMusic = Assets.getMusicStream("menu.mp3");
}

From source file:ateamproject.kezuino.com.github.render.screens.MainScreen.java

public MainScreen(Game game) {
    super(game);/*from  ww w  .j a va2s.c  o m*/

    TextButton tbSearchGame = new TextButton("Spel zoeken", skin);
    tbSearchGame.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            game.setScreen(new LobbyListScreen(game, false));
        }
    });

    TextButton tbClanGame = new TextButton("Clan spel", skin);
    tbClanGame.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Client client = Client.getInstance();
            PacketGetClans packet = new PacketGetClans();

            client.send(packet);
            ArrayList<String> listclans = packet.getResult();

            if (listclans.isEmpty()) {
                Dialog d = new Dialog("error", skin);
                d.add("Gebruiker zit niet in een clan.");
                TextButton bExit = new TextButton("Oke", skin);
                bExit.addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                        d.hide();
                    }
                });
                d.add(bExit);
                d.show(stage);
            } else {
                game.setScreen(new LobbyListScreen(game, true));
            }
        }
    });

    TextButton tbHighscores = new TextButton("Highscores", skin);
    tbHighscores.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            game.setScreen(new HighscoreScreen(game, false));
        }
    });

    TextButton tbChangeLook = new TextButton("Uiterlijk aanpassen", skin);
    tbChangeLook.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            game.setScreen(new SkinSelectScreen(game));

        }
    });

    TextButton tbLogout = new TextButton("Uitloggen", skin);
    tbLogout.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            PacketKick packet = new PacketKick(PacketKick.KickReasonType.QUIT, "Logging out.", null);
            Client.getInstance().send(packet);
            game.setScreen(new LoginScreen(game));
        }
    });

    TextButton tbClanManagement = new TextButton("Clan management", skin);
    tbClanManagement.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            game.setScreen(new ClanManagementScreen(game));
        }
    });

    tbChangeLook.setSize(300, 40);
    tbClanGame.setSize(300, 40);
    tbHighscores.setSize(300, 40);
    tbLogout.setSize(300, 40);
    tbSearchGame.setSize(300, 40);
    tbClanManagement.setSize(300, 40);

    float xOfSearchGameButton = stage.getWidth() / 2 - tbSearchGame.getWidth() / 2;
    float yOfSearchGameButton = stage.getHeight() - 50;

    tbSearchGame.setPosition(xOfSearchGameButton, yOfSearchGameButton);
    tbClanGame.setPosition(xOfSearchGameButton, yOfSearchGameButton - 50);
    tbHighscores.setPosition(xOfSearchGameButton, yOfSearchGameButton - 100);
    tbChangeLook.setPosition(xOfSearchGameButton, yOfSearchGameButton - 150);
    tbClanManagement.setPosition(xOfSearchGameButton, yOfSearchGameButton - 200);
    tbLogout.setPosition(xOfSearchGameButton, yOfSearchGameButton - 250);

    stage.addActor(tbSearchGame);
    stage.addActor(tbClanGame);
    stage.addActor(tbHighscores);
    stage.addActor(tbChangeLook);
    stage.addActor(tbClanManagement);
    stage.addActor(tbLogout);

    backgroundMusic = Assets.getMusicStream("menu.mp3");
}

From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java

License:Open Source License

/**
 * Displays the high score dialog./*from   w ww  .ja v  a 2  s . c  om*/
 */
public void highScoreDialog() {
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("High Score", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    Label label = new Label("Enter your name:", labelStyle);
    label.setScale(.5f);
    label.setWrap(true);
    label.setAlignment(Align.center);
    final TextField nameField = new TextField("", game.assets.skin);
    dialog.add(label).width(500).pad(50);
    dialog.add(nameField);
    dialog.add(okButton).bottom();
    nameField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (key == (char) 13) {
                    displayHighScores(name);
                }
            }
        }
    });
    okButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    displayHighScores(name);
                }
            }
        }
    });
    dialog.addListener(new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (keycode == Keys.ENTER) {
                    displayHighScores(name);
                    return true;
                }
            }
            return false;
        }
    });
    dialog.show(stage);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Constructor for FishMiniGame.//from   w  w w .ja  v  a 2 s .c  o m
 *
 * @param game the {@link AmazingMazeGame} instance that is managing this screen.
 * @param player the {@link Player} instance that completed the last level.
 */
public FishMiniGame(final AmazingMazeGame game, Player player) {
    this.game = game;
    this.player = player;
    fishNumber = new int[5];

    fishNumber[0] = this.player.blueCollected;
    fishNumber[1] = this.player.purpleCollected;
    fishNumber[2] = this.player.greenCollected;
    fishNumber[3] = this.player.redCollected;
    fishNumber[4] = this.player.orangeCollected;

    answer = 0;
    for (int i = 0; i < fishNumber.length; i++) {
        answer += fishNumber[i] * fishValue[i];
    }

    stage = new Stage(new ScreenViewport(), this.game.batch);

    menuTable = new Table();
    fishTable = new Table();

    canvas = new Canvas(
            new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() + shift, Pixmap.Format.RGB565));

    menuTable.setFillParent(true);
    menuTable.top();
    fishTable.bottom();
    fishTable.setFillParent(true);

    fishImage = new Image[5];

    TextureAtlas atlas = this.game.assets.manager.get(Assets.GAME_ATLAS_LOCATION, TextureAtlas.class);
    fishImage[0] = new Image(atlas.findRegion(Assets.FISH + Assets.BLUE_MODIFIER));
    fishImage[0].setScale(4f);
    fishImage[1] = new Image(atlas.findRegion(Assets.FISH + Assets.PURPLE_MODIFIER));
    fishImage[1].setScale(4f);
    fishImage[2] = new Image(atlas.findRegion(Assets.FISH + Assets.GREEN_MODIFIER));
    fishImage[2].setScale(4f);
    fishImage[3] = new Image(atlas.findRegion(Assets.FISH + Assets.RED_MODIFIER));
    fishImage[3].setScale(4f);
    fishImage[4] = new Image(atlas.findRegion(Assets.FISH + Assets.ORANGE_MODIFIER));
    fishImage[4].setScale(4f);

    pencilButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.PENCIL_BUTTON, Texture.class))));
    pencilButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (pencilButton.isPressed()) {
                canvas.setColor(drawColor);
            }
        }
    });

    eraserButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.ERASER_BUTTON, Texture.class))));
    eraserButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (eraserButton.isPressed()) {
                canvas.setColor(clearColor);
            }
        }
    });

    helpButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.HELP_BUTTON, Texture.class))));
    helpButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (helpButton.isPressed()) {
                Label.LabelStyle labelStyle = new Label.LabelStyle(
                        game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
                final Dialog dialog = new Dialog("Help", game.assets.skin);
                final TextButton okButton = new TextButton("OK", game.assets.skin);
                dialog.getButtonTable().bottom();
                Label label = new Label("Find the total value of fish that you retrieved!\n"
                        + "Each colour corresponds to the colour of Canadian money.\n"
                        + "The numbers correspond to each number of fish you got.\n\n"
                        + "In case you forgot: blue is 5, purple is 10, green is 20, red is 50, and orange is 100.",
                        labelStyle);
                label.setScale(.5f);
                label.setWrap(true);
                label.setAlignment(Align.center);
                dialog.add(label).width(500).pad(50);
                dialog.add(okButton).bottom();
                okButton.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeEvent event, Actor actor) {
                        if (okButton.isPressed()) {
                            dialog.hide();
                            canvas.setColor(drawColor);
                        }
                    }
                });
                dialog.key(Keys.ENTER, true);
                dialog.show(stage);
            }
        }
    });

    checkButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CHECK_BUTTON, Texture.class))));
    checkButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            dialog();
        }
    });

    clearButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CLEAR_BUTTON, Texture.class))));
    clearButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (clearButton.isPressed()) {
                canvas.clear();
                canvas.setColor(drawColor);
            }
        }
    });

    answerField = new TextField("", game.assets.skin);
    answerField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            if (key == (char) 13) {
                stage.unfocus(answerField);
                dialog();
            }
        }
    });
    stage.addActor(menuTable);
    stage.addActor(canvas);
    stage.addActor(fishTable);

    menuTable.clear();
    fishTable.clear();
    helpButton.right();
    menuTable.background(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.MINI_BACKGROUND, Texture.class))));
    menuTable.add(pencilButton).pad(10).size(64);
    menuTable.add(eraserButton).pad(10).size(64);
    menuTable.add(clearButton).pad(10).size(64);
    menuTable.add(helpButton).pad(10).size(64);

    menuTable.row();

    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.SANS_REGULAR, Assets.REGULAR_FONT_SIZE), Color.WHITE);

    for (int i = 0; i < 5; i++) {
        fishTable.add(fishImage[i]).bottom().left().padLeft(10);
    }
    fishTable.add(answerField).minWidth(150).padLeft(150);
    fishTable.add(checkButton).pad(10).size(64);
    fishTable.row();

    for (int i = 0; i < 5; i++) {
        fishTable.add(new Label(fishNumber[i] + "", labelStyle)).pad(30).center();
    }
    fishTable.row();

    setupPauseMenu();
    input = new InputMultiplexer(stage, this);
    input.addProcessor(pauseMenu);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Displays the results dialog.//from  ww  w .j  ava 2  s. c  o  m
 */
public void dialog() {
    message = formatString(answerField.getText());
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("Results", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    if (checkAnswer() == -1) {
        Label label = new Label("Invalid answer. Please try again.", labelStyle);
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    canvas.setColor(drawColor);
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    dialog.hide();
                    return true;
                }
                return false;
            }
        });
    } else {
        Label label = new Label("Your answer was: " + message + ". " + "The correct answer was: " + answer
                + ". " + "You get " + checkAnswer() + " back!", labelStyle);
        game.save.addScore(checkAnswer());
        game.save.setLives(player.getLives());
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.cancel();
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                    return true;
                }
                return false;
            }
        });
    }
    dialog.show(stage);
}

From source file:com.gdx.extension.screen.BaseScreen.java

License:Apache License

/**
 * Show a modal popup on top of all the screens children
 * /*from  w w  w.  j  a  va2  s. c om*/
 * @param title the title of the popup
 * @param message text you want to display in the popup
 */
public void showPopup(String title, String message) {
    final Dialog _dialog = new Dialog(title, skin);
    Label _message = new Label(message, skin);
    _message.setAlignment(Align.center);

    TextButton _okButton = new TextButton("Ok", skin);
    _okButton.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            _dialog.hide();
        }

    });

    _dialog.getContentTable().add(_message).minWidth(300f).pad(10f);
    _dialog.getButtonTable().add(_okButton).minWidth(100f).pad(10f);
    _dialog.setTitleAlignment(Align.center);
    _dialog.setMovable(false);
    _dialog.center();
    _dialog.show(stage);
}

From source file:com.ray3k.skincomposer.dialog.DialogColors.java

License:Open Source License

private void showColorPicker() {
    dialogFactory.showDialogColorPicker(new DialogColorPicker.ColorListener() {
        @Override//from w  ww  . j a v  a 2 s .  c o m
        public void selected(Color color) {
            if (color != null) {
                final TextField field = new TextField("RGBA_" + (int) (color.r * 255) + "_"
                        + (int) (color.g * 255) + "_" + (int) (color.b * 255) + "_" + (int) (color.a * 255),
                        skin);
                final Dialog dialog = new Dialog("Color name...", skin, "bg") {
                    @Override
                    protected void result(Object object) {
                        if ((Boolean) object == true) {
                            newColor(field.getText(), color);
                        }
                    }
                };

                dialog.getTitleTable().padLeft(5.0f);

                dialog.button("Ok", true).button("Cancel", false).key(Keys.ESCAPE, false);
                final TextButton button = (TextButton) dialog.getButtonTable().getCells().first().getActor();
                button.addListener(main.getHandListener());
                dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
                dialog.getButtonTable().pad(15.0f);

                field.setTextFieldListener(new TextField.TextFieldListener() {
                    @Override
                    public void keyTyped(TextField textField, char c) {
                        if (c == '\n') {
                            if (!button.isDisabled()) {
                                String name = field.getText();
                                if (newColor(name, color)) {
                                    dialog.hide();
                                }
                            }
                            main.getStage().setKeyboardFocus(textField);
                        }
                    }
                });

                field.addListener(main.getIbeamListener());

                dialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
                dialog.text("Please enter a name for the new color: ");
                dialog.getContentTable().row();
                dialog.getContentTable().add(field).growX();
                dialog.getContentTable().row();
                dialog.text("Preview:");
                dialog.getContentTable().row();
                Table table = new Table(skin);
                table.setBackground("white");
                table.setColor(color);
                dialog.getContentTable().add(table).minSize(50.0f);
                button.setDisabled(!ColorData.validate(field.getText()));
                field.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                        boolean disable = !ColorData.validate(field.getText());
                        if (!disable) {
                            for (ColorData data : jsonData.getColors()) {
                                if (data.getName().equals(field.getText())) {
                                    disable = true;
                                    break;
                                }
                            }
                        }
                        button.setDisabled(disable);
                    }
                });
                dialog.show(getStage());
                getStage().setKeyboardFocus(field);
                field.selectAll();
                field.setFocusTraversal(false);
            }
        }
    });
}

From source file:com.ray3k.skincomposer.dialog.DialogColors.java

License:Open Source License

private void renameDialog(ColorData color) {
    TextField textField = new TextField("", skin);
    TextButton okButton;/*from   ww w .  ja  v a 2s  . c o m*/

    Dialog dialog = new Dialog("Rename Color?", skin, "bg") {
        @Override
        protected void result(Object object) {
            if ((boolean) object) {
                renameColor(color, textField.getText());
            }
        }

        @Override
        public Dialog show(Stage stage) {
            Dialog dialog = super.show(stage);
            main.getStage().setKeyboardFocus(textField);
            return dialog;
        }
    };

    dialog.getTitleTable().padLeft(5.0f);

    float brightness = Utils.brightness(color.color);
    Color borderColor;
    if (brightness > .35f) {
        borderColor = Color.BLACK;
    } else {
        borderColor = Color.WHITE;
    }

    Table bg = new Table(skin);
    bg.setBackground("white");
    bg.setColor(borderColor);
    dialog.getContentTable().add(bg);

    Label label = new Label(color.getName(), skin, "white");
    label.setColor(color.color);
    bg.add(label).pad(10);

    dialog.getContentTable().row();
    label = new Label("What do you want to rename the color to?", skin);
    dialog.getContentTable().add(label);

    dialog.getContentTable().row();
    textField.setText(color.getName());
    textField.selectAll();
    textField.addListener(main.getIbeamListener());
    dialog.getContentTable().add(textField);
    dialog.getCell(dialog.getContentTable()).pad(15.0f);

    dialog.button("OK", true);
    dialog.button("Cancel", false).key(Keys.ESCAPE, false);
    okButton = (TextButton) dialog.getButtonTable().getCells().first().getActor();
    okButton.setDisabled(true);
    okButton.addListener(main.getHandListener());
    dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());
    dialog.getButtonTable().padBottom(15.0f);

    textField.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            boolean disable = !ColorData.validate(textField.getText());
            if (!disable) {
                for (ColorData data : jsonData.getColors()) {
                    if (data.getName().equals(textField.getText())) {
                        disable = true;
                        break;
                    }
                }
            }
            okButton.setDisabled(disable);
        }
    });
    textField.setTextFieldListener(new TextField.TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char c) {
            if (c == '\n') {
                if (!okButton.isDisabled()) {
                    renameColor(color, textField.getText());
                    dialog.hide();
                }
            }
        }
    });

    textField.setFocusTraversal(false);
    dialog.show(getStage());
}

From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java

License:Open Source License

private void colorSwatchesDialog(DrawableData drawableData) {
    DialogColors dialog = new DialogColors(getSkin(), "dialog", null, true, dialogFactory, jsonData,
            projectData, atlasData, main, (ColorData colorData) -> {
                if (colorData != null) {
                    final DrawableData tintedDrawable = new DrawableData(drawableData.file);
                    tintedDrawable.tintName = colorData.getName();

                    //Fix background color for new, tinted drawable
                    Color temp = Utils.averageEdgeColor(tintedDrawable.file, colorData.color);

                    if (Utils.brightness(temp) > .5f) {
                        tintedDrawable.bgColor = Color.BLACK;
                    } else {
                        tintedDrawable.bgColor = Color.WHITE;
                    }//  w ww .  j ava  2 s . c o  m

                    final TextField textField = new TextField(drawableData.name, getSkin());
                    final TextButton button = new TextButton("OK", getSkin());
                    button.setDisabled(!DrawableData.validate(textField.getText())
                            || checkIfNameExists(textField.getText()));
                    button.addListener(main.getHandListener());
                    textField.addListener(new ChangeListener() {
                        @Override
                        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
                            button.setDisabled(!DrawableData.validate(textField.getText())
                                    || checkIfNameExists(textField.getText()));
                        }
                    });
                    textField.addListener(main.getIbeamListener());

                    Dialog approveDialog = new Dialog("TintedDrawable...", getSkin(), "bg") {
                        @Override
                        protected void result(Object object) {
                            if (object instanceof Boolean && (boolean) object) {
                                tintedDrawable.name = textField.getText();
                                atlasData.getDrawables().add(tintedDrawable);
                                projectData.setChangesSaved(false);
                            }
                        }

                        @Override
                        public boolean remove() {
                            gatherDrawables();
                            produceAtlas();
                            sortBySelectedMode();
                            getStage().setScrollFocus(scrollPane);
                            return super.remove();
                        }
                    };
                    approveDialog.addCaptureListener(new InputListener() {
                        @Override
                        public boolean keyDown(InputEvent event, int keycode2) {
                            if (keycode2 == Input.Keys.ENTER) {
                                if (!button.isDisabled()) {
                                    tintedDrawable.name = textField.getText();
                                    atlasData.getDrawables().add(tintedDrawable);
                                    projectData.setChangesSaved(false);
                                    approveDialog.hide();
                                }
                            }
                            return false;
                        }
                    });

                    approveDialog.getTitleTable().padLeft(5.0f);
                    approveDialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
                    approveDialog.getButtonTable().padBottom(15.0f);

                    approveDialog.text("What is the name of the new tinted drawable?");

                    Drawable drawable = drawablePairs.get(drawableData);
                    Drawable preview = null;
                    if (drawable instanceof SpriteDrawable) {
                        preview = ((SpriteDrawable) drawable).tint(colorData.color);
                    } else if (drawable instanceof NinePatchDrawable) {
                        preview = ((NinePatchDrawable) drawable).tint(colorData.color);
                    }
                    if (preview != null) {
                        approveDialog.getContentTable().row();
                        Table table = new Table();
                        table.setBackground(preview);
                        approveDialog.getContentTable().add(table);
                    }

                    approveDialog.getContentTable().row();
                    approveDialog.getContentTable().add(textField).growX();

                    approveDialog.button(button, true);
                    approveDialog.button("Cancel", false);
                    approveDialog.getButtonTable().getCells().get(1).getActor()
                            .addListener(main.getHandListener());
                    approveDialog.key(Input.Keys.ESCAPE, false);
                    approveDialog.show(getStage());
                    getStage().setKeyboardFocus(textField);
                    textField.selectAll();

                    textField.setFocusTraversal(false);
                }
            });
    dialog.setFillParent(true);
    dialog.show(getStage());
    dialog.populate();
}

From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java

License:Open Source License

private void renameDrawableDialog(DrawableData drawable) {
    TextField textField = new TextField("", getSkin());
    Dialog dialog = new Dialog("Rename drawable?", getSkin(), "bg") {
        @Override//from   w ww.  j  a  v  a 2 s.  co  m
        protected void result(Object object) {
            super.result(object);

            if (object instanceof Boolean && (boolean) object == true) {
                renameDrawable(drawable, textField.getText());
            }
            getStage().setScrollFocus(scrollPane);
        }

        @Override
        public Dialog show(Stage stage) {
            Dialog dialog = super.show(stage);
            stage.setKeyboardFocus(textField);
            return dialog;
        }
    };

    dialog.getTitleTable().padLeft(5.0f);
    dialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
    dialog.getButtonTable().padBottom(15.0f);

    dialog.getContentTable().add(new Label("Please enter a new name for the drawable: ", getSkin()));

    dialog.button("OK", true);
    dialog.button("Cancel", false).key(Keys.ESCAPE, false);
    TextButton okButton = (TextButton) dialog.getButtonTable().getCells().first().getActor();
    okButton.setDisabled(true);
    okButton.addListener(main.getHandListener());
    dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener());

    dialog.getContentTable().row();
    textField.setText(drawable.name);
    textField.selectAll();
    textField.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeListener.ChangeEvent event, Actor actor) {
            boolean disable = !DrawableData.validate(textField.getText());
            if (!disable) {
                for (DrawableData data : atlasData.getDrawables()) {
                    if (data.name.equals(textField.getText())) {
                        disable = true;
                        break;
                    }
                }
            }
            okButton.setDisabled(disable);
        }
    });
    textField.setTextFieldListener(new TextField.TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char c) {
            if (c == '\n') {
                if (!okButton.isDisabled()) {
                    renameDrawable(drawable, textField.getText());
                    dialog.hide();
                }
            }
        }
    });
    textField.addListener(main.getIbeamListener());
    dialog.getContentTable().add(textField);

    textField.setFocusTraversal(false);

    dialog.show(getStage());
}