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