From a0cfe307e141e8903d39ad519c2ccf9bb87ecb7a Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Tue, 24 Jan 2017 21:13:49 +0100
Subject: [PATCH] Add Page Name dialog when cloning a page

---
 .../desktop/DesktopMainLayoutFactory.java     |  6 ++--
 .../desktop/DesktopPageEditButtonView.java    | 36 ++++++++++---------
 2 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutFactory.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutFactory.java
index c4fedd83..55e07568 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutFactory.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutFactory.java
@@ -59,18 +59,20 @@ public class DesktopMainLayoutFactory extends MainLayoutFactory {
 		return null;
 	}
 
+
+	// Current Mode
 	public DesktopEditMode getEditMode() {
 		return editMode.get();
 	}
 
-	public void setEditMode(DesktopEditMode editMode) {
+	void setEditMode(DesktopEditMode editMode) {
 		if (editMode != DesktopEditMode.PLAY && Profile.currentProfile().getProfileSettings().isLocked()) {
 			return;
 		}
 		this.editMode.set(editMode);
 	}
 
-	public ObjectProperty<DesktopEditMode> editModeProperty() {
+	ObjectProperty<DesktopEditMode> editModeProperty() {
 		return editMode;
 	}
 }
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java
index 3a161e2d..94763503 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPageEditButtonView.java
@@ -36,7 +36,7 @@ public class DesktopPageEditButtonView extends HBox implements EventHandler<Acti
 	private transient Button pageButton;
 	private transient MenuToolbarViewController controller;
 
-	public DesktopPageEditButtonView(MenuToolbarViewController controller, Page page, Button pageButton) {
+	DesktopPageEditButtonView(MenuToolbarViewController controller, Page page, Button pageButton) {
 		this.page = page;
 		this.pageButton = pageButton;
 		this.controller = controller;
@@ -107,21 +107,7 @@ public class DesktopPageEditButtonView extends HBox implements EventHandler<Acti
 			}
 			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();
-
-			result.filter(name -> name != null && !name.isEmpty()).ifPresent(name ->
-			{
-				page.setName(name);
-			});
+			showPageNameDialog(page);
 
 			// Update Page Button in Toolbar
 			String name = page.getName();
@@ -133,6 +119,10 @@ public class DesktopPageEditButtonView extends HBox implements EventHandler<Acti
 		} else if (event.getSource() == cloneButton) {
 			try {
 				Page clone = page.clone();
+
+				// Show Rename dialog for cloned page
+				showPageNameDialog(clone);
+
 				Project project = page.getProjectReference();
 				project.addPage(clone);
 
@@ -166,4 +156,18 @@ public class DesktopPageEditButtonView extends HBox implements EventHandler<Acti
 		}
 	}
 
+	private void showPageNameDialog(Page page) {
+		TextInputDialog dialog = new TextInputDialog(page.getName());
+
+		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();
+		result.filter(name -> !name.isEmpty()).ifPresent(page::setName);
+	}
+
 }
-- 
GitLab