From 7e4a11d63f37ea87174bddba28ad2a922a289452 Mon Sep 17 00:00:00 2001 From: tobias <tobias.ullerich@icloud.com> Date: Wed, 21 Sep 2016 14:02:48 +0200 Subject: [PATCH] Menus for Edit Modes (Implement Lock) --- .../playpad/assets/lang/ui_de.properties | 5 ++- .../assets/view/main/desktop/header.fxml | 16 ++++++++ .../src/de/tobias/playpad/components/Keys.xml | 5 +++ .../design/modern/ModernDesignConnect.java | 2 +- .../design/modern/ModernGlobalDesign.java | 2 +- .../layout/desktop/DesktopButtonEditView.java | 1 + .../desktop/DesktopMainLayoutConnect.java | 6 ++- .../DesktopMenuToolbarViewController.java | 38 +++++++++++++++++-- .../tobias/playpad/update/PlayPadUpdater.java | 2 - .../viewcontroller/dialog/PrintDialog.java | 2 +- .../dialog/ProjectManagerDialog.java | 2 +- .../ProjectSettingsViewController.java | 4 +- .../de/tobias/playpad/project/Project.java | 3 -- 13 files changed, 72 insertions(+), 16 deletions(-) diff --git a/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties b/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties index 7d582ca8..43d85ecf 100644 --- a/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties +++ b/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties @@ -15,8 +15,11 @@ main.menuitem.recentFiles=Zuletzt verwendete Projekte main.menuitem.profile=Profile verwalten... main.menuitem.print=Drucken... main.menuitem.onTop=Fenster im Vordergrund -main.menuitem.plugins=Erweiterungen... +main.menuitem.play=Wiedergabe +main.menuitem.drag=Drag and Drop +main.menuitem.color=F�rben main.menuitem.errors=Fehlerbericht anzeigen... +main.menuitem.plugins=Erweiterungen... main.menuitem.projectSettings=Projekteinstellungen... main.menuitem.profileSettings=Profileinstellungen... main.menuitem.globalSettings=Globale Einstellungen... diff --git a/PlayWall/assets/de/tobias/playpad/assets/view/main/desktop/header.fxml b/PlayWall/assets/de/tobias/playpad/assets/view/main/desktop/header.fxml index 4596aa8d..bd2bd266 100644 --- a/PlayWall/assets/de/tobias/playpad/assets/view/main/desktop/header.fxml +++ b/PlayWall/assets/de/tobias/playpad/assets/view/main/desktop/header.fxml @@ -39,6 +39,22 @@ </Menu> <Menu mnemonicParsing="false" text="%main.menu.option"> <items> + <MenuItem fx:id="playMenu" mnemonicParsing="false" onAction="#playMenuHandler" text="%main.menuitem.play"> + <accelerator> + <KeyCodeCombination alt="UP" code="L" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> + </accelerator> + </MenuItem> + <MenuItem fx:id="dragMenu" mnemonicParsing="false" onAction="#dragMenuHandler" text="%main.menuitem.drag"> + <accelerator> + <KeyCodeCombination alt="UP" code="M" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> + </accelerator> + </MenuItem> + <MenuItem fx:id="colorMenu" mnemonicParsing="false" onAction="#colorMenuHandler" text="%main.menuitem.color"> + <accelerator> + <KeyCodeCombination alt="UP" code="K" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> + </accelerator> + </MenuItem> + <SeparatorMenuItem mnemonicParsing="false" /> <MenuItem fx:id="errorMenu" mnemonicParsing="false" onAction="#errorMenuHandler" text="%main.menuitem.errors"> <accelerator> <KeyCodeCombination alt="UP" code="E" control="UP" meta="UP" shift="UP" shortcut="DOWN" /> diff --git a/PlayWall/src/de/tobias/playpad/components/Keys.xml b/PlayWall/src/de/tobias/playpad/components/Keys.xml index 603df441..2588cefd 100644 --- a/PlayWall/src/de/tobias/playpad/components/Keys.xml +++ b/PlayWall/src/de/tobias/playpad/components/Keys.xml @@ -6,7 +6,12 @@ <Key id="save_proj" name="main.menuitem.save" key="S" ctrl="true" alt="false" meta="false" shift="false"/> <Key id="print_proj" name="main.menuitem.print" key="P" ctrl="true" alt="false" meta="false" shift="false"/> + <Key id="play" name="main.menuitem.play" key="E" ctrl="true" alt="false" meta="false" shift="false"/> + <Key id="drag" name="main.menuitem.drag" key="E" ctrl="true" alt="false" meta="false" shift="false"/> + <Key id="color" name="main.menuitem.color" key="E" ctrl="true" alt="false" meta="false" shift="false"/> + <Key id="errors" name="main.menuitem.errors" key="E" ctrl="true" alt="false" meta="false" shift="false"/> + <Key id="plugins" name="main.menuitem.plugins"/> <Key id="project_settings" name="main.menuitem.projectSettings" key="Comma" ctrl="true" alt="true" meta="false" shift="false"/> <Key id="profile_settings" name="main.menuitem.profileSettings" key="Comma" ctrl="true" alt="false" meta="false" shift="false"/> diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernDesignConnect.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernDesignConnect.java index 4658e1a6..f3923570 100644 --- a/PlayWall/src/de/tobias/playpad/design/modern/ModernDesignConnect.java +++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernDesignConnect.java @@ -2,8 +2,8 @@ package de.tobias.playpad.design.modern; import de.tobias.playpad.Strings; import de.tobias.playpad.design.CartDesign; -import de.tobias.playpad.design.GlobalDesign; import de.tobias.playpad.design.DesignConnect; +import de.tobias.playpad.design.GlobalDesign; import de.tobias.playpad.viewcontroller.CartDesignViewController; import de.tobias.playpad.viewcontroller.GlobalDesignViewController; import de.tobias.playpad.viewcontroller.design.ModernCartDesignViewController; diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java index 09d44c5f..94965cb8 100644 --- a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java +++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java @@ -10,11 +10,11 @@ import org.dom4j.Element; import de.tobias.playpad.DisplayableColor; import de.tobias.playpad.PseudoClasses; import de.tobias.playpad.design.CartDesign; +import de.tobias.playpad.design.ColorModeHandler; import de.tobias.playpad.design.Design; import de.tobias.playpad.design.DesignColorAssociator; import de.tobias.playpad.design.FadeableColor; import de.tobias.playpad.design.GlobalDesign; -import de.tobias.playpad.design.ColorModeHandler; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.PadSettings; import de.tobias.playpad.pad.conntent.play.Durationable; diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java index cebef47b..bfc1a6bb 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopButtonEditView.java @@ -110,6 +110,7 @@ public class DesktopButtonEditView extends HBox implements EventHandler<ActionEv Project project = page.getProjectReference(); project.removePage(page); controller.initPageButtons(); + controller.highlightPageButton(0); // Show first page } } diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutConnect.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutConnect.java index 30c0241a..9accf5d4 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutConnect.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMainLayoutConnect.java @@ -5,6 +5,7 @@ import java.util.Stack; import de.tobias.playpad.Strings; import de.tobias.playpad.layout.desktop.pad.DesktopPadView; import de.tobias.playpad.pad.view.IPadView; +import de.tobias.playpad.settings.Profile; import de.tobias.playpad.view.main.MainLayoutConnect; import de.tobias.playpad.viewcontroller.main.IMainViewController; import de.tobias.playpad.viewcontroller.main.MenuToolbarViewController; @@ -73,9 +74,12 @@ public class DesktopMainLayoutConnect implements MainLayoutConnect { } public void setEditMode(DesktopEditMode editMode) { + if (editMode != DesktopEditMode.PLAY && Profile.currentProfile().getProfileSettings().isLocked()) { + return; + } this.editMode.set(editMode); } - + public ObjectProperty<DesktopEditMode> editModeProperty() { return editMode; } diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java index 87e1c2cd..d4f2ddac 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java @@ -94,6 +94,10 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro @FXML protected MenuItem profileMenu; @FXML protected MenuItem printProjectMenuItem; + @FXML protected MenuItem playMenu; + @FXML protected MenuItem dragMenu; + @FXML protected MenuItem colorMenu; + @FXML protected MenuItem errorMenu; @FXML protected MenuItem pluginMenu; @@ -154,6 +158,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro helpMenu.getItems().add(new HelpMenuItem(helpMenu)); // Edit Mode Buttons + // TODO MenuItems for Buttons -> KeyCodes editButtons = new SegmentedButton(); playButton = new ToggleButton("", new FontIcon(FontAwesomeType.PLAY)); playButton.setFocusTraversable(false); @@ -209,12 +214,12 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro if (newValue == DesktopEditMode.PLAY) { playButton.setSelected(true); } else if (newValue == DesktopEditMode.DRAG) { + // TODO Live Mode Check dragButton.setSelected(true); for (IPadView view : mainViewController.getPadViews()) { view.enableDragAndDropDesignMode(true); } iconHbox.getChildren().add(0, addPageButton); - System.out.println(iconHbox.getChildren()); } else if (newValue == DesktopEditMode.COLOR) { colorButton.setSelected(true); @@ -304,6 +309,10 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro setKeyBindingForMenu(saveProjectMenuItem, keys.getKey("save_proj")); setKeyBindingForMenu(printProjectMenuItem, keys.getKey("print_proj")); + setKeyBindingForMenu(playMenu, keys.getKey("play")); + setKeyBindingForMenu(dragMenu, keys.getKey("drag")); + setKeyBindingForMenu(colorMenu, keys.getKey("color")); + setKeyBindingForMenu(errorMenu, keys.getKey("errors")); setKeyBindingForMenu(pluginMenu, keys.getKey("plugins")); setKeyBindingForMenu(projectSettingsMenuItem, keys.getKey("project_settings")); @@ -319,6 +328,10 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro saveProjectMenuItem.setDisable(false); printProjectMenuItem.setDisable(false); + playMenu.setDisable(false); + dragMenu.setDisable(false); + colorMenu.setDisable(false); + errorMenu.setDisable(false); pluginMenu.setDisable(false); projectSettingsMenuItem.setDisable(false); @@ -332,7 +345,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro @Override public void setLocked(boolean looked) { - // TODO Lock Edit Buttons + connect.setEditMode(DesktopEditMode.PLAY); } @Override @@ -375,6 +388,10 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro saveProjectMenuItem.setDisable(true); printProjectMenuItem.setDisable(true); + playMenu.setDisable(true); + dragMenu.setDisable(true); + colorMenu.setDisable(true); + errorMenu.setDisable(true); pluginMenu.setDisable(true); projectSettingsMenuItem.setDisable(true); @@ -407,7 +424,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro } } - if (pageHBox.getChildren().size() > index) { + if (index < pageHBox.getChildren().size()) { Node newNode = pageHBox.getChildren().get(index); newNode.getStyleClass().add(CURRENT_PAGE_BUTTON); currentSelectedPageButton = index; @@ -502,6 +519,21 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro dialog.getStage().show(); } + @FXML + void playMenuHandler(ActionEvent event) { + connect.setEditMode(DesktopEditMode.PLAY); + } + + @FXML + void dragMenuHandler(ActionEvent event) { + connect.setEditMode(DesktopEditMode.DRAG); + } + + @FXML + void colorMenuHandler(ActionEvent event) { + connect.setEditMode(DesktopEditMode.COLOR); + } + @FXML void errorMenuHandler(ActionEvent event) { ErrorSummaryDialog.getInstance().getStage().show(); diff --git a/PlayWall/src/de/tobias/playpad/update/PlayPadUpdater.java b/PlayWall/src/de/tobias/playpad/update/PlayPadUpdater.java index f7d3c16f..2ba459e5 100644 --- a/PlayWall/src/de/tobias/playpad/update/PlayPadUpdater.java +++ b/PlayWall/src/de/tobias/playpad/update/PlayPadUpdater.java @@ -8,8 +8,6 @@ import java.nio.file.Path; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import de.tobias.playpad.update.Updatable; -import de.tobias.playpad.update.UpdateChannel; import de.tobias.utils.application.App; import de.tobias.utils.application.ApplicationUtils; import de.tobias.utils.util.SystemUtils; diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/PrintDialog.java b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/PrintDialog.java index 6a0e8144..c4ad5531 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/PrintDialog.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/PrintDialog.java @@ -11,8 +11,8 @@ import com.hp.gagawa.java.elements.Tr; import de.tobias.playpad.PlayPadMain; import de.tobias.playpad.Strings; import de.tobias.playpad.pad.Pad; -import de.tobias.playpad.project.ProjectSettings; import de.tobias.playpad.project.Project; +import de.tobias.playpad.project.ProjectSettings; import de.tobias.playpad.project.page.PadIndex; import de.tobias.playpad.settings.Profile; import de.tobias.utils.application.ApplicationUtils; diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java index 91e587b5..17ad484e 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java @@ -9,8 +9,8 @@ import org.dom4j.DocumentException; import de.tobias.playpad.PlayPadMain; import de.tobias.playpad.Strings; -import de.tobias.playpad.project.ProjectImporter; import de.tobias.playpad.project.Project; +import de.tobias.playpad.project.ProjectImporter; import de.tobias.playpad.project.ref.ProjectReference; import de.tobias.playpad.settings.Profile; import de.tobias.playpad.settings.ProfileReference; diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/ProjectSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/ProjectSettingsViewController.java index fe181cae..e5bcc710 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/ProjectSettingsViewController.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/ProjectSettingsViewController.java @@ -7,12 +7,12 @@ import org.controlsfx.control.TaskProgressView; import de.tobias.playpad.PlayPadMain; import de.tobias.playpad.Strings; -import de.tobias.playpad.project.ProjectSettings; import de.tobias.playpad.project.Project; +import de.tobias.playpad.project.ProjectSettings; import de.tobias.playpad.settings.Profile; import de.tobias.playpad.viewcontroller.main.IMainViewController; -import de.tobias.playpad.viewcontroller.option.IProjectSettingsViewController; import de.tobias.playpad.viewcontroller.option.IProjectReloadTask; +import de.tobias.playpad.viewcontroller.option.IProjectSettingsViewController; import de.tobias.playpad.viewcontroller.option.ProjectSettingsTabViewController; import de.tobias.utils.ui.ViewController; import de.tobias.utils.util.Localization; diff --git a/PlayWallCore/src/de/tobias/playpad/project/Project.java b/PlayWallCore/src/de/tobias/playpad/project/Project.java index c98e23cb..2825cdeb 100644 --- a/PlayWallCore/src/de/tobias/playpad/project/Project.java +++ b/PlayWallCore/src/de/tobias/playpad/project/Project.java @@ -300,15 +300,12 @@ public class Project { } public void removePage(Page page) { - System.out.println(page.getId()); pages.remove(page.getId()); // Neue Interne Indies für die Pages for (int i = page.getId(); i < pages.size(); i++) { Page tempPage = pages.get(i); tempPage.setId(i); } - - System.out.println(pages); } public void addPage() { -- GitLab