From fe2eb6625cc0701766570a59931eef2f10fe251b Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Sun, 4 Mar 2012 04:49:58 +0000 Subject: [PATCH] Returned exit button to main menu. --- .gitattributes | 2 + src/main/java/forge/gui/home/EMenuItem.java | 3 +- .../gui/home/utilities/CSubmenuExit.java | 35 +++++++++ .../gui/home/utilities/VSubmenuExit.java | 75 +++++++++++++++++++ src/main/java/forge/view/ViewHomeUI.java | 9 ++- 5 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 src/main/java/forge/gui/home/utilities/CSubmenuExit.java create mode 100644 src/main/java/forge/gui/home/utilities/VSubmenuExit.java diff --git a/.gitattributes b/.gitattributes index d41952c2b05..7ccb8e17f30 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11470,8 +11470,10 @@ src/main/java/forge/gui/home/settings/VSubmenuAvatars.java -text src/main/java/forge/gui/home/settings/VSubmenuPreferences.java -text src/main/java/forge/gui/home/settings/package-info.java svneol=native#text/plain src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java -text +src/main/java/forge/gui/home/utilities/CSubmenuExit.java -text src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java -text src/main/java/forge/gui/home/utilities/VSubmenuDeckEditor.java -text +src/main/java/forge/gui/home/utilities/VSubmenuExit.java -text src/main/java/forge/gui/home/utilities/VSubmenuUtilities.java -text src/main/java/forge/gui/home/utilities/package-info.java svneol=native#text/plain src/main/java/forge/gui/package-info.java svneol=native#text/plain diff --git a/src/main/java/forge/gui/home/EMenuItem.java b/src/main/java/forge/gui/home/EMenuItem.java index d8e457c1bfd..72b2d55acf8 100644 --- a/src/main/java/forge/gui/home/EMenuItem.java +++ b/src/main/java/forge/gui/home/EMenuItem.java @@ -19,5 +19,6 @@ public enum EMenuItem { /** */ SETTINGS_AVATARS, /** */ UTILITIES_EDITOR, /** */ - UTILITIES_DOWNLOADS + UTILITIES_DOWNLOADS, /** */ + UTILITIES_EXIT } diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuExit.java b/src/main/java/forge/gui/home/utilities/CSubmenuExit.java new file mode 100644 index 00000000000..afd2f4602f2 --- /dev/null +++ b/src/main/java/forge/gui/home/utilities/CSubmenuExit.java @@ -0,0 +1,35 @@ +package forge.gui.home.utilities; + +import forge.Command; +import forge.gui.home.ICSubmenu; + +/** + * TODO: Write javadoc for this type. + * + */ +public enum CSubmenuExit implements ICSubmenu { + /** */ + SINGLETON_INSTANCE; + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#update() + */ + @Override + public void initialize() { } + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#getCommand() + */ + @SuppressWarnings("serial") + @Override + public Command getMenuCommand() { + return new Command() { @Override + public void execute() { System.exit(0); } }; + } + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#update() + */ + @Override + public void update() { } +} diff --git a/src/main/java/forge/gui/home/utilities/VSubmenuExit.java b/src/main/java/forge/gui/home/utilities/VSubmenuExit.java new file mode 100644 index 00000000000..e57a9608b1a --- /dev/null +++ b/src/main/java/forge/gui/home/utilities/VSubmenuExit.java @@ -0,0 +1,75 @@ +package forge.gui.home.utilities; + +import javax.swing.JPanel; + +import net.miginfocom.swing.MigLayout; +import forge.gui.home.EMenuGroup; +import forge.gui.home.EMenuItem; +import forge.gui.home.ICSubmenu; +import forge.gui.home.IVSubmenu; +import forge.gui.toolbox.FLabel; + +/** + * Singleton instance of "Colors" submenu in "Constructed" group. + * + */ +public enum VSubmenuExit implements IVSubmenu { + /** */ + SINGLETON_INSTANCE; + + /** */ + private final JPanel pnl = new JPanel(); + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#populate() + */ + @Override + public void populate() { + pnl.setLayout(new MigLayout("insets 0, gap 0, align center")); + pnl.setOpaque(false); + + pnl.add(new FLabel.Builder().text("Open Deck Editor").opaque(true) + .hoverable(true).cmdClick(CSubmenuDeckEditor.SINGLETON_INSTANCE.getMenuCommand()) + .fontScaleAuto(false).fontSize(16).build(), "w 200px!, h 40px!"); + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getGroup() + */ + @Override + public EMenuGroup getGroupEnum() { + return EMenuGroup.UTILITIES; + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getPanel() + */ + @Override + public JPanel getPanel() { + return pnl; + } + + /* (non-Javadoc) + * @see forge.gui.home.IVSubmenu#getMenuTitle() + */ + @Override + public String getMenuTitle() { + return "Exit Forge"; + } + + /* (non-Javadoc) + * @see forge.gui.home.IVSubmenu#getMenuName() + */ + @Override + public String getItemEnum() { + return EMenuItem.UTILITIES_EXIT.toString(); + } + + /* (non-Javadoc) + * @see forge.gui.home.IVSubmenu#getControl() + */ + @Override + public ICSubmenu getControl() { + return CSubmenuExit.SINGLETON_INSTANCE; + } +} diff --git a/src/main/java/forge/view/ViewHomeUI.java b/src/main/java/forge/view/ViewHomeUI.java index 499c2f93e5f..ae6cebfcab2 100644 --- a/src/main/java/forge/view/ViewHomeUI.java +++ b/src/main/java/forge/view/ViewHomeUI.java @@ -57,6 +57,7 @@ import forge.gui.home.quest.VSubmenuQuestPrefs; import forge.gui.home.settings.VSubmenuAvatars; import forge.gui.home.settings.VSubmenuPreferences; import forge.gui.home.utilities.VSubmenuDeckEditor; +import forge.gui.home.utilities.VSubmenuExit; import forge.gui.home.utilities.VSubmenuUtilities; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FPanel; @@ -126,6 +127,7 @@ public enum ViewHomeUI { allSubmenus.add(VSubmenuDeckEditor.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuUtilities.SINGLETON_INSTANCE); + allSubmenus.add(VSubmenuExit.SINGLETON_INSTANCE); // Parent layout pnlParent.setCornerDiameter(0); @@ -284,8 +286,11 @@ public enum ViewHomeUI { cards.show(pnlRight, item.getItemEnum()); lblPreviousSelected = lbl; - prefs.setPref(FPref.SUBMENU_CURRENTMENU, item.getItemEnum()); - Singletons.getModel().getPreferences().save(); + // Save for next time Forge is opened (unless it's exit ;) ) + if (!item.getItemEnum().equals(EMenuItem.UTILITIES_EXIT.toString())) { + prefs.setPref(FPref.SUBMENU_CURRENTMENU, item.getItemEnum()); + Singletons.getModel().getPreferences().save(); + } // Make sure this is called last, so it doesn't interfere // with the selection display process.