List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Dialog button
public Dialog button(Button button, Object object)
From source file:be.ac.ucl.lfsab1509.bouboule.game.screen.UserScreen.java
License:Open Source License
private void addNewUser() { String error = checkNewUser(); Dialog dialog; if (error == null) { GlobalSettings.PROFILE_MGR.createAndLoadNewProfile(newUserTextField.getText()); refreshScreen();/*from w ww .j av a 2 s . co m*/ dialog = new Dialog(" New User Created ", getSkin(), "default") { } // close the dialogue .text("\n New user created with succes! \n ").button(" Close ", null).show(stage); } else dialog = new Dialog(" Error ", getSkin(), "default") { protected void result(Object object) { refreshScreen(); } }.text("\n " + error + " \n "); dialog.button(" Close ", null).show(stage); dialog.setX((GlobalSettings.APPWIDTH - dialog.getWidth()) / 2); }
From source file:com.ray3k.skincomposer.dialog.DialogColors.java
License:Open Source License
private void showColorPicker() { dialogFactory.showDialogColorPicker(new DialogColorPicker.ColorListener() { @Override/* w ww . jav a2s . com*/ 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. java 2 s . com 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; }/* ww w . j ava2 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
private void renameDrawableDialog(DrawableData drawable) { TextField textField = new TextField("", getSkin()); Dialog dialog = new Dialog("Rename drawable?", getSkin(), "bg") { @Override/*from ww w.jav a2 s .c om*/ 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()); }
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./*from ww w. ja va 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// w w w. j av a2s . com * @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 . jav a2s .co 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 w w . j a v a 2 s. c om*/ 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 va2s . co m 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); }