From 439e0c016d30c5e05aa6b38c43801c31658b58f7 Mon Sep 17 00:00:00 2001 From: tobias <tobias.ullerich@icloud.com> Date: Wed, 21 Sep 2016 14:48:47 +0200 Subject: [PATCH] add Userdialogs for Page Handling Rename DesktopButtonEditView to DesktopPageEditButtonView --- .../tobias/playpad/assets/lang/_de.properties | 10 +++- PlayWall/src/de/tobias/playpad/Strings.java | 8 +++ .../DesktopMenuToolbarViewController.java | 2 +- ...ew.java => DesktopPageEditButtonView.java} | 51 ++++++++++++++----- 4 files changed, 57 insertions(+), 14 deletions(-) rename PlayWall/src/de/tobias/playpad/layout/desktop/{DesktopButtonEditView.java => DesktopPageEditButtonView.java} (66%) diff --git a/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties b/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties index 986c8bfd..a27f28f1 100644 --- a/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties +++ b/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties @@ -267,4 +267,12 @@ MainLayout.Touch=Touchmodus # Suche Search.Button=Suchen Search.Placeholder=Suche -Search.Alert.NoMatches=Keine Treffer gefunden. \ No newline at end of file +Search.Alert.NoMatches=Keine Treffer gefunden. + +# UI - Dialog - Page - Delete +UI.Dialog.Page.Delete.Header=Seite L�schen? +UI.Dialog.Page.Delete.Content=M�chten Sie die Seite unwiederbringlich l�schen? + +# UI - Dialog - Name - Delete +UI.Dialog.Page.Name.Header=Seite umbenennen +UI.Dialog.Page.Name.Content=Geben Sie einen neuen Namen f�r die Seite ein. \n(Wenn die das Feld leer lassen, wird ein Standardname verwendet). \ No newline at end of file diff --git a/PlayWall/src/de/tobias/playpad/Strings.java b/PlayWall/src/de/tobias/playpad/Strings.java index 8dfd96d7..f0e8fb81 100644 --- a/PlayWall/src/de/tobias/playpad/Strings.java +++ b/PlayWall/src/de/tobias/playpad/Strings.java @@ -257,4 +257,12 @@ public class Strings { public static final String Search_Button = "Search.Button"; public static final String Search_Placeholder = "Search.Placeholder"; public static final String Search_Alert_NoMatches = "Search.Alert.NoMatches"; + + // UI - Dialog - Page - Delete + public static final String UI_Dialog_Page_Delete_Header = "UI.Dialog.Page.Delete.Header"; + public static final String UI_Dialog_Page_Delete_Content = "UI.Dialog.Page.Delete.Content"; + + // UI - Dialog - Page - Name + public static final String UI_Dialog_Page_Name_Header = "UI.Dialog.Page.Name.Header"; + public static final String UI_Dialog_Page_Name_Content = "UI.Dialog.Page.Name.Content"; } diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java index f1b44216..c9366fea 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java @@ -432,7 +432,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro if (newNode instanceof Button && connect.getEditMode() == DesktopEditMode.DRAG) { // Nur bei Drag And Drop mode Button button = (Button) newNode; - DesktopButtonEditView editBox = new DesktopButtonEditView(this, openProject.getPage(index), button); + DesktopPageEditButtonView editBox = new DesktopPageEditButtonView(this, openProject.getPage(index), button); button.setGraphic(editBox); } } diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java similarity index 66% rename from PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java rename to PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java index bfc1a6bb..98839443 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java @@ -2,6 +2,7 @@ package de.tobias.playpad.layout.desktop; import java.util.Optional; +import de.tobias.playpad.PlayPadMain; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.Strings; import de.tobias.playpad.project.Project; @@ -13,11 +14,16 @@ import de.tobias.utils.ui.icon.FontIcon; import de.tobias.utils.util.Localization; import javafx.event.ActionEvent; import javafx.event.EventHandler; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; import javafx.scene.control.TextInputDialog; import javafx.scene.layout.HBox; +import javafx.stage.Modality; +import javafx.stage.Stage; -public class DesktopButtonEditView extends HBox implements EventHandler<ActionEvent> { +public class DesktopPageEditButtonView extends HBox implements EventHandler<ActionEvent> { private Page page; private Button leftMoveButton; @@ -28,7 +34,7 @@ public class DesktopButtonEditView extends HBox implements EventHandler<ActionEv private transient Button pageButton; private transient MenuToolbarViewController controller; - public DesktopButtonEditView(MenuToolbarViewController controller, Page page, Button pageButton) { + public DesktopPageEditButtonView(MenuToolbarViewController controller, Page page, Button pageButton) { this.page = page; this.pageButton = pageButton; this.controller = controller; @@ -91,26 +97,47 @@ public class DesktopButtonEditView extends HBox implements EventHandler<ActionEv event.consume(); } else if (event.getSource() == editTextButton) { TextInputDialog dialog = new TextInputDialog(); + + dialog.setHeaderText(Localization.getString(Strings.UI_Dialog_Page_Name_Header)); + dialog.setContentText(Localization.getString(Strings.UI_Dialog_Page_Name_Content)); + dialog.initOwner(controller.getStage()); + dialog.initModality(Modality.WINDOW_MODAL); + Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow(); + PlayPadMain.stageIcon.ifPresent(stage.getIcons()::add); + Optional<String> result = dialog.showAndWait(); - // TODO Owner, Modal, Icon, Text - result.ifPresent(name -> + + result.filter(name -> name != null && !name.isEmpty()).ifPresent(name -> { page.setName(name); }); + // Update Page Button in Toolbar String name = page.getName(); - if (name.isEmpty()) { - name = Localization.getString(Strings.UI_Window_Main_PageButton, (page.getId() + 1)); - } + if (name.isEmpty()) + name = Localization.getString(Strings.UI_Window_Main_PageButton, (page.getId() + 1)); // Default Text pageButton.setText(name); event.consume(); } else if (event.getSource() == deleteButton) { - // TODO Fragen - Project project = page.getProjectReference(); - project.removePage(page); - controller.initPageButtons(); - controller.highlightPageButton(0); // Show first page + Alert alert = new Alert(AlertType.CONFIRMATION); + + alert.setHeaderText(Localization.getString(Strings.UI_Dialog_Page_Delete_Header)); + alert.setContentText(Localization.getString(Strings.UI_Dialog_Page_Delete_Content)); + alert.initOwner(controller.getStage()); + alert.initModality(Modality.WINDOW_MODAL); + Stage stage = (Stage) alert.getDialogPane().getScene().getWindow(); + PlayPadMain.stageIcon.ifPresent(stage.getIcons()::add); + + Optional<ButtonType> result = alert.showAndWait(); + System.out.println(result); + result.filter(r -> r == ButtonType.OK).ifPresent(r -> + { + Project project = page.getProjectReference(); + project.removePage(page); + controller.initPageButtons(); + controller.highlightPageButton(0); // Show first page + }); } } -- GitLab