List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Dialog key
public Dialog key(final int keycode, final Object object)
From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java
License:Open Source License
/** * Constructor for FishMiniGame.// www. j av a2 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:com.bladecoder.engine.ui.MenuScreen.java
License:Apache License
@Override public void show() { stage = new Stage(new ScreenViewport()); final Skin skin = ui.getSkin(); final World world = World.getInstance(); final MenuScreenStyle style = skin.get(MenuScreenStyle.class); final BitmapFont f = skin.get(style.textButtonStyle, TextButtonStyle.class).font; float buttonWidth = f.getCapHeight() * 15f; // Image background = new Image(style.background); Drawable bg = style.background;/*w w w .j av a2 s . c o m*/ if (bg == null && style.bgFile != null) { bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile)); bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear); bg = new TextureRegionDrawable(new TextureRegion(bgTexFile)); } final Table table = new Table(); table.setFillParent(true); table.center(); if (bg != null) table.setBackground(bg); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) if (world.getCurrentScene() != null) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); table.defaults().pad(BUTTON_PADDING).width(buttonWidth); stage.setKeyboardFocus(table); if (style.showTitle) { Label title = new Label(Config.getProperty(Config.TITLE_PROP, "Adventure Blade Engine"), skin, style.titleStyle); title.setAlignment(Align.center); table.add(title).padBottom(DPIUtils.getMarginSize() * 2); table.row(); } if (world.savedGameExists() || world.getCurrentScene() != null) { TextButton continueGame = new TextButton(I18N.getString("ui.continue"), skin, style.textButtonStyle); continueGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.getCurrentScene() == null) try { world.load(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); table.add(continueGame); } TextButton newGame = new TextButton(I18N.getString("ui.new"), skin, style.textButtonStyle); newGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.savedGameExists()) { Dialog d = new Dialog("", skin) { protected void result(Object object) { if (((Boolean) object).booleanValue()) { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }; d.pad(DPIUtils.getMarginSize()); d.getButtonTable().padTop(DPIUtils.getMarginSize()); d.getButtonTable().defaults().padLeft(DPIUtils.getMarginSize()) .padRight(DPIUtils.getMarginSize()); Label l = new Label(I18N.getString("ui.override"), ui.getSkin(), "ui-dialog"); l.setWrap(true); l.setAlignment(Align.center); d.getContentTable().add(l).prefWidth(Gdx.graphics.getWidth() * .7f); d.button(I18N.getString("ui.yes"), true, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.button(I18N.getString("ui.no"), false, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.key(Keys.ENTER, true).key(Keys.ESCAPE, false); d.show(stage); } else { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }); table.row(); table.add(newGame); TextButton loadGame = new TextButton(I18N.getString("ui.load"), skin, style.textButtonStyle); loadGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.LOAD_GAME_SCREEN); } }); table.row(); table.add(loadGame); // if (world.getCurrentScene() != null) { // TextButton saveGame = new TextButton(I18N.getString("ui.save"), skin, style.textButtonStyle); // saveGame.addListener(new ClickListener() { // public void clicked(InputEvent event, float x, float y) { // ui.setCurrentScreen(Screens.SAVE_GAME_SCREEN); // } // }); // // table.row(); // table.add(saveGame); // } TextButton quit = new TextButton(I18N.getString("ui.quit"), skin, style.textButtonStyle); quit.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { Gdx.app.exit(); } }); table.row(); table.add(quit); table.pack(); stage.addActor(table); // BOTTOM-RIGHT BUTTON STACK credits = new Button(skin, "credits"); credits.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.CREDIT_SCREEN); } }); help = new Button(skin, "help"); help.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.HELP_SCREEN); } }); debug = new Button(skin, "debug"); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); Table buttonStack = new Table(); buttonStack.defaults().pad(DPIUtils.getSpacing()).size(DPIUtils.getPrefButtonSize(), DPIUtils.getPrefButtonSize()); buttonStack.pad(DPIUtils.getMarginSize() * 2); if (EngineLogger.debugMode() && world.getCurrentScene() != null) { buttonStack.add(debug); buttonStack.row(); } buttonStack.add(help); buttonStack.row(); buttonStack.add(credits); buttonStack.bottom().right(); buttonStack.setFillParent(true); buttonStack.pack(); stage.addActor(buttonStack); Label version = new Label("v" + Config.getProperty(Config.VERSION_PROP, " unspecified"), skin); version.setPosition(DPIUtils.getMarginSize(), DPIUtils.getMarginSize()); stage.addActor(version); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); pointer = new Pointer(skin); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }
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; }/*from w w w . j a va 2 s . c om*/ 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
/** * Shows a dialog to confirm deletion of all TintedDrawables based on the * provided drawable data. This is called when the delete button is pressed * on a drawable in the drawable list./* ww w . j a v a 2 s. c om*/ * @param drawable */ private void showConfirmDeleteDialog(DrawableData drawable) { Dialog dialog = new Dialog("Delete duplicates?", getSkin(), "bg") { @Override protected void result(Object object) { if ((boolean) object) { removeDuplicateDrawables(drawable.file); gatherDrawables(); sortBySelectedMode(); } } }; dialog.getTitleTable().padLeft(5.0f); dialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f); dialog.getButtonTable().padBottom(15.0f); dialog.text( "Deleting this drawable will also delete one or more tinted drawables.\n" + "Delete duplicates?"); dialog.button("OK", true); dialog.button("Cancel", false); dialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); dialog.key(Input.Keys.ENTER, true); dialog.key(Input.Keys.ESCAPE, false); dialog.show(getStage()); }
From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java
License:Open Source License
/** * Shows a dialog to confirm removal of duplicate drawables that have the * same name without extension. This is called after selecting new drawables. * @param unhandledFiles//from www. j av a2 s . c o m * @param backup * @param filesToProcess */ private void showRemoveDuplicatesDialog(Array<FileHandle> unhandledFiles, Array<DrawableData> backup, Array<FileHandle> filesToProcess) { Dialog dialog = new Dialog("Delete duplicates?", getSkin(), "bg") { @Override protected void result(Object object) { if ((boolean) object) { for (FileHandle fileHandle : unhandledFiles) { removeDuplicateDrawables(fileHandle); filesToProcess.add(fileHandle); } } finalizeDrawables(backup, filesToProcess); } }; dialog.getTitleTable().padLeft(5.0f); dialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f); dialog.getButtonTable().padBottom(15.0f); dialog.text("Adding this drawable will overwrite one or more drawables\n" + "Delete duplicates?"); dialog.button("OK", true); dialog.button("Cancel", false); dialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); dialog.key(Input.Keys.ENTER, true); dialog.key(Input.Keys.ESCAPE, false); dialog.show(getStage()); }
From source file:com.ray3k.skincomposer.dialog.DialogDrawables.java
License:Open Source License
/** * Creates a TintedDrawable based on the provided DrawableData. Prompts * user for a Color and name./*from w ww .j a v a2s.c o m*/ * @param drawableData */ private void newTintedDrawable(DrawableData drawableData) { Color previousColor = Color.WHITE; if (drawableData.tint != null) { previousColor = drawableData.tint; } dialogFactory.showDialogColorPicker(previousColor, new DialogColorPicker.ColorListener() { @Override public void selected(Color color) { if (color != null) { final DrawableData tintedDrawable = new DrawableData(drawableData.file); tintedDrawable.tint = color; //Fix background color for new, tinted drawable Color temp = Utils.averageEdgeColor(tintedDrawable.file, tintedDrawable.tint); if (Utils.brightness(temp) > .5f) { tintedDrawable.bgColor = Color.BLACK; } else { tintedDrawable.bgColor = Color.WHITE; } final TextField textField = new TextField(drawableData.name, getSkin()); final TextButton button = new TextButton("OK", getSkin()); button.setDisabled( !DrawableData.validate(textField.getText()) || checkIfNameExists(textField.getText())); 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 dialog = 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(); } }; dialog.getTitleTable().getCells().first().padLeft(5.0f); dialog.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); dialog.hide(); } } return false; } }); dialog.text("What is the name of the new tinted drawable?"); dialog.getContentTable().getCells().first().pad(10.0f); Drawable drawable = drawablePairs.get(drawableData); Drawable preview = null; if (drawable instanceof SpriteDrawable) { preview = ((SpriteDrawable) drawable).tint(color); } else if (drawable instanceof NinePatchDrawable) { preview = ((NinePatchDrawable) drawable).tint(color); } if (preview != null) { dialog.getContentTable().row(); Table table = new Table(); table.setBackground(preview); dialog.getContentTable().add(table); } dialog.getContentTable().row(); dialog.getContentTable().add(textField).growX().pad(10.0f); dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button(button, true); button.addListener(main.getHandListener()); dialog.button("Cancel", false); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); dialog.key(Input.Keys.ESCAPE, false); dialog.show(getStage()); getStage().setKeyboardFocus(textField); textField.selectAll(); textField.setFocusTraversal(false); } } }); }
From source file:com.ray3k.skincomposer.dialog.DialogFactory.java
License:Open Source License
public void showNewStyleDialog(Skin skin, Stage stage) { Class selectedClass = main.getRootTable().getSelectedClass(); final TextField textField = new TextField("", skin); Dialog dialog = new Dialog("New Style", skin, "bg") { @Override/*from w ww . ja v a2 s. c o m*/ protected void result(Object object) { if ((Boolean) object) { main.getUndoableManager() .addUndoable(new NewStyleUndoable(selectedClass, textField.getText(), main), true); } } }; dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("OK", true).button("Cancel", false); dialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); final TextButton okButton = (TextButton) dialog.getButtonTable().getCells().get(0).getActor(); textField.setTextFieldListener((TextField textField1, char c) -> { if (c == '\n') { if (!okButton.isDisabled()) { main.getUndoableManager() .addUndoable(new NewStyleUndoable(selectedClass, textField1.getText(), main), true); dialog.hide(); } main.getStage().setKeyboardFocus(textField1); } }); textField.addListener(main.getIbeamListener()); dialog.getTitleLabel().setAlignment(Align.center); dialog.getContentTable().defaults().padLeft(10.0f).padRight(10.0f); dialog.text("What is the name of the new style?"); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getContentTable().row(); dialog.getContentTable().add(textField).growX(); okButton.setDisabled(true); Array<StyleData> currentStyles = main.getProjectData().getJsonData().getClassStyleMap().get(selectedClass); textField.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { boolean disable = !StyleData.validate(textField.getText()); if (!disable) { for (StyleData data : currentStyles) { if (data.name.equals(textField.getText())) { disable = true; break; } } } okButton.setDisabled(disable); } }); dialog.key(Input.Keys.ESCAPE, false); dialog.show(stage); stage.setKeyboardFocus(textField); textField.setFocusTraversal(false); }
From source file:com.ray3k.skincomposer.dialog.DialogFactory.java
License:Open Source License
public void showDuplicateStyleDialog(Skin skin, Stage stage) { Class selectedClass = main.getRootTable().getSelectedClass(); StyleData originalStyle = main.getRootTable().getSelectedStyle(); final TextField textField = new TextField("", skin); Dialog dialog = new Dialog("Duplicate Style", skin, "bg") { @Override/*from w w w . j a v a 2 s.c om*/ protected void result(Object object) { if ((Boolean) object) { main.getUndoableManager().addUndoable( new DuplicateStyleUndoable(originalStyle, textField.getText(), main), true); } } }; dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("OK", true).button("Cancel", false); final TextButton okButton = (TextButton) dialog.getButtonTable().getCells().get(0).getActor(); okButton.addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); textField.setTextFieldListener((TextField textField1, char c) -> { if (c == '\n') { if (!okButton.isDisabled()) { main.getUndoableManager().addUndoable( new DuplicateStyleUndoable(originalStyle, textField.getText(), main), true); dialog.hide(); } main.getStage().setKeyboardFocus(textField1); } }); textField.addListener(main.getIbeamListener()); dialog.getTitleLabel().setAlignment(Align.center); dialog.getContentTable().defaults().padLeft(10.0f).padRight(10.0f); dialog.text("What is the name of the new, duplicated style?"); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getContentTable().row(); dialog.getContentTable().add(textField).growX(); okButton.setDisabled(true); Array<StyleData> currentStyles = main.getProjectData().getJsonData().getClassStyleMap().get(selectedClass); textField.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { boolean disable = !StyleData.validate(textField.getText()); if (!disable) { for (StyleData data : currentStyles) { if (data.name.equals(textField.getText())) { disable = true; break; } } } okButton.setDisabled(disable); } }); dialog.key(Input.Keys.ESCAPE, false); dialog.show(stage); stage.setKeyboardFocus(textField); textField.setFocusTraversal(false); }
From source file:com.ray3k.skincomposer.dialog.DialogFactory.java
License:Open Source License
public void showDeleteStyleDialog(Skin skin, Stage stage) { StyleData styleData = main.getRootTable().getSelectedStyle(); Dialog dialog = new Dialog("Delete Style", skin, "bg") { @Override//from w w w .ja v a 2 s. co m protected void result(Object object) { if ((Boolean) object) { main.getUndoableManager().addUndoable(new DeleteStyleUndoable(styleData, main), true); } } }; dialog.getTitleLabel().setAlignment(Align.center); dialog.getContentTable().defaults().padLeft(10.0f).padRight(10.0f); dialog.text("Are you sure you want to delete style " + styleData.name + "?"); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("Yes, delete the style", true).button("No", false); dialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); dialog.key(Input.Keys.ENTER, true).key(Input.Keys.ESCAPE, false); dialog.show(stage); }
From source file:com.ray3k.skincomposer.dialog.DialogFactory.java
License:Open Source License
public void showRenameStyleDialog(Skin skin, Stage stage) { Class selectedClass = main.getRootTable().getSelectedClass(); final TextField textField = new TextField(main.getRootTable().getSelectedStyle().name, skin); Dialog dialog = new Dialog("Rename Style", skin, "bg") { @Override// w ww . j a v a 2 s . co m protected void result(Object object) { if ((Boolean) object) { main.getUndoableManager().addUndoable(new UndoableManager.RenameStyleUndoable( main.getRootTable().getSelectedStyle(), main, textField.getText()), true); } } }; dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("OK", true).button("Cancel", false); dialog.getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); dialog.getButtonTable().getCells().get(1).getActor().addListener(main.getHandListener()); final TextButton okButton = (TextButton) dialog.getButtonTable().getCells().get(0).getActor(); textField.setTextFieldListener((TextField textField1, char c) -> { if (c == '\n') { if (!okButton.isDisabled()) { main.getUndoableManager().addUndoable(new UndoableManager.RenameStyleUndoable( main.getRootTable().getSelectedStyle(), main, textField1.getText()), true); dialog.hide(); } main.getStage().setKeyboardFocus(textField1); } }); textField.addListener(main.getIbeamListener()); dialog.getTitleLabel().setAlignment(Align.center); dialog.getContentTable().defaults().padLeft(10.0f).padRight(10.0f); dialog.text("What would you like to rename the style \"" + main.getRootTable().getSelectedStyle().name + "\" to?"); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getContentTable().row(); dialog.getContentTable().add(textField).growX(); okButton.setDisabled(true); Array<StyleData> currentStyles = main.getProjectData().getJsonData().getClassStyleMap().get(selectedClass); textField.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { boolean disable = !StyleData.validate(textField.getText()); if (!disable) { for (StyleData data : currentStyles) { if (data.name.equals(textField.getText())) { disable = true; break; } } } okButton.setDisabled(disable); } }); dialog.key(Input.Keys.ESCAPE, false); dialog.show(stage); stage.setKeyboardFocus(textField); textField.selectAll(); textField.setFocusTraversal(false); }