From be876e317668718f3502f10eb2b1e37acf1422f9 Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Tue, 16 Oct 2012 01:21:45 +0000 Subject: [PATCH] Further home menu aesthetic improvements: - Removed "utilities" menu - Added "exit forge" and "deck editor" buttons directly to menu panel - Restored functionality to exit forge button - Removed forge.gui.home.utilities package - Removed deprecated VMainMenu. --- .gitattributes | 10 +- src/main/java/forge/control/FControl.java | 2 +- src/main/java/forge/gui/framework/EDocID.java | 10 +- src/main/java/forge/gui/home/CHomeUI.java | 70 ++-- src/main/java/forge/gui/home/EMenuGroup.java | 3 +- src/main/java/forge/gui/home/VHomeUI.java | 31 +- src/main/java/forge/gui/home/VMainMenu.java | 303 ------------------ .../CSubmenuDownloaders.java} | 10 +- .../VSubmenuDownloaders.java} | 10 +- .../home/utilities/CSubmenuDeckEditor.java | 49 --- .../gui/home/utilities/CSubmenuExit.java | 38 --- .../home/utilities/VSubmenuDeckEditor.java | 119 ------- .../gui/home/utilities/VSubmenuExit.java | 107 ------- .../gui/home/utilities/package-info.java | 3 - .../forge/gui/toolbox/ExperimentalLabel.java | 2 +- 15 files changed, 85 insertions(+), 682 deletions(-) delete mode 100644 src/main/java/forge/gui/home/VMainMenu.java rename src/main/java/forge/gui/home/{utilities/CSubmenuUtilities.java => settings/CSubmenuDownloaders.java} (85%) rename src/main/java/forge/gui/home/{utilities/VSubmenuUtilities.java => settings/VSubmenuDownloaders.java} (95%) delete mode 100644 src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java delete mode 100644 src/main/java/forge/gui/home/utilities/CSubmenuExit.java delete mode 100644 src/main/java/forge/gui/home/utilities/VSubmenuDeckEditor.java delete mode 100644 src/main/java/forge/gui/home/utilities/VSubmenuExit.java delete mode 100644 src/main/java/forge/gui/home/utilities/package-info.java diff --git a/.gitattributes b/.gitattributes index 6ea2230f164..bc895d720d8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12767,7 +12767,6 @@ src/main/java/forge/gui/home/LblMenuItem.java -text src/main/java/forge/gui/home/PnlGroup.java -text src/main/java/forge/gui/home/StartButton.java -text src/main/java/forge/gui/home/VHomeUI.java -text -src/main/java/forge/gui/home/VMainMenu.java -text src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletBuild.java -text src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java -text src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java -text @@ -12804,17 +12803,12 @@ src/main/java/forge/gui/home/sanctioned/VSubmenuDraft.java -text src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java -text src/main/java/forge/gui/home/sanctioned/package-info.java svneol=native#text/plain src/main/java/forge/gui/home/settings/CSubmenuAvatars.java -text +src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java -text src/main/java/forge/gui/home/settings/CSubmenuPreferences.java -text src/main/java/forge/gui/home/settings/VSubmenuAvatars.java -text +src/main/java/forge/gui/home/settings/VSubmenuDownloaders.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/match/CMatchUI.java -text src/main/java/forge/gui/match/ControlWinLose.java -text src/main/java/forge/gui/match/GauntletWinLose.java -text diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index 6ea742e1f55..3a631ecc8b6 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -201,7 +201,7 @@ public enum FControl { switch (i0) { case HOME_SCREEN: VHomeUI.SINGLETON_INSTANCE.populate(); - CHomeUI.SINGLETON_INSTANCE.selectPrevious(); + CHomeUI.SINGLETON_INSTANCE.initialize(); //FView.SINGLETON_INSTANCE.getPnlInsets().setVisible(true); FView.SINGLETON_INSTANCE.getPnlInsets().setForegroundImage(new ImageIcon()); Singletons.getView().getFrame().addWindowListener(waDefault); diff --git a/src/main/java/forge/gui/framework/EDocID.java b/src/main/java/forge/gui/framework/EDocID.java index 4a3f78a237c..d1935d5c26a 100644 --- a/src/main/java/forge/gui/framework/EDocID.java +++ b/src/main/java/forge/gui/framework/EDocID.java @@ -11,7 +11,6 @@ import forge.gui.deckeditor.views.VEditorPreferences; import forge.gui.deckeditor.views.VFilters; import forge.gui.deckeditor.views.VProbabilities; import forge.gui.deckeditor.views.VStatistics; -import forge.gui.home.VMainMenu; import forge.gui.home.gauntlet.VSubmenuGauntletBuild; import forge.gui.home.gauntlet.VSubmenuGauntletContests; import forge.gui.home.gauntlet.VSubmenuGauntletLoad; @@ -26,10 +25,8 @@ import forge.gui.home.sanctioned.VSubmenuConstructed; import forge.gui.home.sanctioned.VSubmenuDraft; import forge.gui.home.sanctioned.VSubmenuSealed; import forge.gui.home.settings.VSubmenuAvatars; +import forge.gui.home.settings.VSubmenuDownloaders; 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.match.views.VAntes; import forge.gui.match.views.VCombat; import forge.gui.match.views.VDetail; @@ -73,13 +70,10 @@ public enum EDocID { /** */ HOME_MULTITEST (VSubmenuMultiTest.SINGLETON_INSTANCE), /** */ HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */ HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */ - HOME_DECKEDITOR (VSubmenuDeckEditor.SINGLETON_INSTANCE), /** */ - HOME_UTILITIES (VSubmenuUtilities.SINGLETON_INSTANCE), /** */ + HOME_UTILITIES (VSubmenuDownloaders.SINGLETON_INSTANCE), /** */ HOME_CONSTRUCTED (VSubmenuConstructed.SINGLETON_INSTANCE), /** */ HOME_DRAFT (VSubmenuDraft.SINGLETON_INSTANCE), /** */ HOME_SEALED (VSubmenuSealed.SINGLETON_INSTANCE), /** */ - HOME_MAINMENU (VMainMenu.SINGLETON_INSTANCE), /** */ - HOME_EXIT (VSubmenuExit.SINGLETON_INSTANCE), /** */ REPORT_MESSAGE (VMessage.SINGLETON_INSTANCE), /** */ REPORT_STACK (VStack.SINGLETON_INSTANCE), /** */ diff --git a/src/main/java/forge/gui/home/CHomeUI.java b/src/main/java/forge/gui/home/CHomeUI.java index b7f088fccce..d59184a338f 100644 --- a/src/main/java/forge/gui/home/CHomeUI.java +++ b/src/main/java/forge/gui/home/CHomeUI.java @@ -2,6 +2,9 @@ package forge.gui.home; import forge.Command; import forge.Singletons; +import forge.control.FControl; +import forge.gui.deckeditor.CDeckEditorUI; +import forge.gui.deckeditor.controllers.CEditorConstructed; import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; import forge.gui.home.sanctioned.VSubmenuConstructed; @@ -30,17 +33,16 @@ public enum CHomeUI implements ICDoc { lblSelected.repaintSelf(); } - if (!id0.equals(EDocID.HOME_EXIT)) { - id0.getDoc().populate(); - id0.getDoc().getLayoutControl().update(); - lblSelected = VHomeUI.SINGLETON_INSTANCE.getAllSubmenuLabels().get(id0); - lblSelected.setSelected(true); + id0.getDoc().populate(); + id0.getDoc().getLayoutControl().update(); + lblSelected = VHomeUI.SINGLETON_INSTANCE.getAllSubmenuLabels().get(id0); + lblSelected.setSelected(true); - prefs.setPref(FPref.SUBMENU_CURRENTMENU, id0.toString()); - Singletons.getModel().getPreferences().save(); - } + prefs.setPref(FPref.SUBMENU_CURRENTMENU, id0.toString()); + Singletons.getModel().getPreferences().save(); } + /** @param lbl0 {@link forge.gui.home.LblMenuItem} */ public void setLblSelected(final LblMenuItem lbl0) { this.lblSelected = lbl0; } @@ -53,27 +55,24 @@ public enum CHomeUI implements ICDoc { /* (non-Javadoc) * @see forge.view.home.ICDoc#intialize() */ + @SuppressWarnings("serial") @Override public void initialize() { - } + selectPrevious(); + VHomeUI.SINGLETON_INSTANCE.getLblEditor().setCommand(new Command() { + @Override + public void execute() { + CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorConstructed()); + FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED); + } + }); - /** - * Pulls previous menu selection from preferences - * and clicks it programatically. - */ - public void selectPrevious() { - EDocID selected = null; - try { - selected = EDocID.valueOf(Singletons.getModel() - .getPreferences().getPref(FPref.SUBMENU_CURRENTMENU)); - } catch (final Exception e) { } - - if (selected != null && VMainMenu.SINGLETON_INSTANCE.getAllSubmenuLabels().get(selected) != null) { - itemClick(selected); - } - else { - itemClick(EDocID.HOME_CONSTRUCTED); - } + VHomeUI.SINGLETON_INSTANCE.getLblExit().setCommand(new Command() { + @Override + public void execute() { + System.exit(0); + } + }); } /* (non-Javadoc) @@ -90,4 +89,23 @@ public enum CHomeUI implements ICDoc { public Command getCommandOnSelect() { return null; } + + /** + * Pulls previous menu selection from preferences + * and clicks it programatically. + */ + private void selectPrevious() { + EDocID selected = null; + try { + selected = EDocID.valueOf(Singletons.getModel() + .getPreferences().getPref(FPref.SUBMENU_CURRENTMENU)); + } catch (final Exception e) { } + + if (selected != null && VHomeUI.SINGLETON_INSTANCE.getAllSubmenuLabels().get(selected) != null) { + itemClick(selected); + } + else { + itemClick(EDocID.HOME_CONSTRUCTED); + } + } } diff --git a/src/main/java/forge/gui/home/EMenuGroup.java b/src/main/java/forge/gui/home/EMenuGroup.java index fbadccc873a..78c3c2692f8 100644 --- a/src/main/java/forge/gui/home/EMenuGroup.java +++ b/src/main/java/forge/gui/home/EMenuGroup.java @@ -12,8 +12,7 @@ public enum EMenuGroup { /** */ QUEST ("Quest Mode"), /** */ GAUNTLET ("Gauntlets"), /** */ MULTIPLAYER ("Multiplayer"), /** */ - SETTINGS ("Game Settings"), /** */ - UTILITIES ("Tools"); + SETTINGS ("Game Settings"); private final String strTitle; diff --git a/src/main/java/forge/gui/home/VHomeUI.java b/src/main/java/forge/gui/home/VHomeUI.java index af3d6620a9a..950e4f79377 100644 --- a/src/main/java/forge/gui/home/VHomeUI.java +++ b/src/main/java/forge/gui/home/VHomeUI.java @@ -52,10 +52,9 @@ import forge.gui.home.sanctioned.VSubmenuConstructed; import forge.gui.home.sanctioned.VSubmenuDraft; import forge.gui.home.sanctioned.VSubmenuSealed; import forge.gui.home.settings.VSubmenuAvatars; +import forge.gui.home.settings.VSubmenuDownloaders; 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.ExperimentalLabel; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; import forge.properties.ForgePreferences.FPref; @@ -88,6 +87,9 @@ public enum VHomeUI implements IVTopLevelUI { .iconAlignX(SwingConstants.CENTER) .iconInBackground(true).iconScaleFactor(1.0).build(); + private ExperimentalLabel lblExit = new ExperimentalLabel("Exit Forge"); + private ExperimentalLabel lblEditor = new ExperimentalLabel("Deck Editor"); + private VHomeUI() { pnlMenu.add(lblLogo, "w 200px!, h 200px!, gap 0 0 5px 10px, ax center"); @@ -109,10 +111,10 @@ public enum VHomeUI implements IVTopLevelUI { allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE); + allSubmenus.add(VSubmenuDownloaders.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuDeckEditor.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuUtilities.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuExit.SINGLETON_INSTANCE); + //allSubmenus.add(VSubmenuDeckEditor.SINGLETON_INSTANCE); + //allSubmenus.add(VSubmenuExit.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuMultiTest.SINGLETON_INSTANCE); @@ -144,10 +146,25 @@ public enum VHomeUI implements IVTopLevelUI { } } - //pnlMenu.setBackground(l00); + JPanel pnlButtons = new JPanel(new MigLayout("insets 0, gap 0")); + pnlButtons.setOpaque(false); + + pnlButtons.add(lblExit, "w 135px!, h 30px!, gap 0 10px 0 0"); + pnlButtons.add(lblEditor, "w 135px!, h 30px!"); + + pnlMenu.add(pnlButtons, "w 280px!, gap 10px 0 10px 10px"); pnlDisplay.setBackground(FSkin.alphaColor(l00, 100)); } + /** @return {@link forge.gui.toolbox.ExperimentalLabel} */ + public ExperimentalLabel getLblExit() { + return this.lblExit; + } + + /** @return {@link forge.gui.toolbox.ExperimentalLabel} */ + public ExperimentalLabel getLblEditor() { + return this.lblEditor; + } /** @return {@link javax.swing.JPanel} */ public JPanel getPnlMenu() { diff --git a/src/main/java/forge/gui/home/VMainMenu.java b/src/main/java/forge/gui/home/VMainMenu.java deleted file mode 100644 index 3fb6c92688d..00000000000 --- a/src/main/java/forge/gui/home/VMainMenu.java +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.gui.home; - -import java.awt.Component; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; - -import javax.swing.BorderFactory; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; -import javax.swing.border.EmptyBorder; -import javax.swing.border.MatteBorder; - -import net.miginfocom.swing.MigLayout; -import forge.Command; -import forge.Singletons; -import forge.gui.framework.DragCell; -import forge.gui.framework.DragTab; -import forge.gui.framework.EDocID; -import forge.gui.framework.ICDoc; -import forge.gui.framework.IVDoc; -import forge.gui.home.gauntlet.VSubmenuGauntletBuild; -import forge.gui.home.gauntlet.VSubmenuGauntletContests; -import forge.gui.home.gauntlet.VSubmenuGauntletLoad; -import forge.gui.home.gauntlet.VSubmenuGauntletQuick; -import forge.gui.home.multiplayer.VSubmenuMultiTest; -import forge.gui.home.quest.VSubmenuChallenges; -import forge.gui.home.quest.VSubmenuDuels; -import forge.gui.home.quest.VSubmenuQuestData; -import forge.gui.home.quest.VSubmenuQuestDecks; -import forge.gui.home.quest.VSubmenuQuestPrefs; -import forge.gui.home.sanctioned.VSubmenuConstructed; -import forge.gui.home.sanctioned.VSubmenuDraft; -import forge.gui.home.sanctioned.VSubmenuSealed; -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.FScrollPane; -import forge.gui.toolbox.FSkin; -import forge.properties.ForgePreferences; -import forge.properties.ForgePreferences.FPref; - -/** - * Assembles Swing components of main menu panel in home screen. - * - *

(V at beginning of class name denotes a view class.) - */ - -public enum VMainMenu implements IVDoc { - /** */ - SINGLETON_INSTANCE; - - // Fields used with interface IVDoc - private DragCell parentCell; - private final DragTab tab = new DragTab("Welcome"); - - private final JPanel pnlMenu = new JPanel(); - private final FScrollPane scrMenu = new FScrollPane(pnlMenu, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - - private final List allSubmenus = new ArrayList(); - private final Map allSubmenuLabels = new HashMap(); - private FLabel lblPreviousSelected; - private JLabel lblLogo = new FLabel.Builder() - .icon(FSkin.getIcon(FSkin.InterfaceIcons.ICO_LOGO)) - .iconAlignX(SwingConstants.CENTER) - .iconInBackground(true).iconScaleFactor(1.0).build(); - - private VMainMenu() { - // Add new menu items here (order doesn't matter). - allSubmenus.add(VSubmenuConstructed.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuDraft.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuSealed.SINGLETON_INSTANCE); - - allSubmenus.add(VSubmenuDuels.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuChallenges.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuQuestDecks.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuQuestData.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuQuestPrefs.SINGLETON_INSTANCE); - - allSubmenus.add(VSubmenuGauntletQuick.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuGauntletBuild.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuGauntletLoad.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuGauntletContests.SINGLETON_INSTANCE); - - allSubmenus.add(VSubmenuMultiTest.SINGLETON_INSTANCE); - - allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE); - - allSubmenus.add(VSubmenuDeckEditor.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuUtilities.SINGLETON_INSTANCE); - allSubmenus.add(VSubmenuExit.SINGLETON_INSTANCE); - - // Left pane holds scroller with menu panel. - pnlMenu.setLayout(new MigLayout("insets 0, gap 0, wrap, hidemode 3")); - pnlMenu.setOpaque(false); - scrMenu.setBorder(null); - - final Map allGroupLabels = new HashMap(); - - final String strTitleConstraints = "w 90%!, gap 5% 0 5px 10px"; - final String strGroupConstraints = "w 85%!, gap 10% 0 0 0"; - final String strItemConstraints = "w 100%!, h 26px!, gap 0 0 1px 1px"; - - // For each group: init its panel - final SortedMap allGroupPanels = new TreeMap(); - for (final EMenuGroup e : EMenuGroup.values()) { - allGroupPanels.put(e, new JPanel()); - allGroupPanels.get(e).setOpaque(false); - allGroupPanels.get(e).setVisible(false); - allGroupPanels.get(e).setLayout(new MigLayout("insets 0, gap 0, wrap")); - allGroupPanels.get(e).setName(e.toString()); - } - - // For each item: Add to its group, and add to the card layout in right panel. - for (final IVSubmenu item : allSubmenus) { - allSubmenuLabels.put(item.getItemEnum(), makeItemLabel(item)); - allGroupPanels.get(item.getGroupEnum()).add( - allSubmenuLabels.get(item.getItemEnum()), strItemConstraints); - } - - // For each group: add its title, then its panel, then "click" if necessary. - for (final EMenuGroup e : allGroupPanels.keySet()) { - allGroupLabels.put(e, makeTitleLabel(e)); - pnlMenu.add(allGroupLabels.get(e), strTitleConstraints); - pnlMenu.add(allGroupPanels.get(e), strGroupConstraints); - - // Expand groups expanded from previous session - if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.valueOf("SUBMENU_" + e.toString()))) { - groupClick(e, allGroupLabels.get(e)); - } - } - } - - private void groupClick(final EMenuGroup e0, final JLabel lbl0) { - final Component[] menuObjects = pnlMenu.getComponents(); - for (final Component c : menuObjects) { - if (c.getName() != null && c.getName().equals(e0.toString())) { - if (c.isVisible()) { - lbl0.setText("+ " + e0.getTitle()); - c.setVisible(false); - Singletons.getModel().getPreferences().setPref( - FPref.valueOf("SUBMENU_" + e0.toString()), "false"); - } - else { - lbl0.setText("- " + e0.getTitle()); - c.setVisible(true); - Singletons.getModel().getPreferences().setPref( - FPref.valueOf("SUBMENU_" + e0.toString()), "true"); - } - - Singletons.getModel().getPreferences().save(); - break; - } - } - } - - /** Custom title label styling. */ - @SuppressWarnings("serial") - private JLabel makeTitleLabel(final EMenuGroup e0) { - final FLabel lbl = new FLabel.Builder().fontSize(16) - .hoverable(true).fontAlign(SwingConstants.LEFT).build(); - - lbl.setBorder(BorderFactory.createCompoundBorder( - new MatteBorder(0, 0, 1, 0, FSkin.getColor(FSkin.Colors.CLR_BORDERS)), - new EmptyBorder(2, 2, 2, 2))); - - lbl.setCommand(new Command() { @Override - public void execute() { groupClick(e0, lbl); } }); - - lbl.setText("+ " + e0.getTitle()); - return lbl; - } - - /** Custom subsection label styling. */ - @SuppressWarnings("serial") - private FLabel makeItemLabel(final IVSubmenu item) { - final ForgePreferences prefs = Singletons.getModel().getPreferences(); - - final FLabel lbl = new FLabel.Builder().fontSize(15) - .hoverable(true).selectable(true).text(item.getMenuTitle()) - .fontAlign(SwingConstants.LEFT).build(); - - final Command cmdOnClick = new Command() { - @Override - public void execute() { - if (lblPreviousSelected != null) { lblPreviousSelected.setSelected(false); } - - if (!item.getItemEnum().equals(EDocID.HOME_EXIT)) { - item.getItemEnum().getDoc().getParentCell().setSelected(item.getItemEnum().getDoc()); - lblPreviousSelected = lbl; - - prefs.setPref(FPref.SUBMENU_CURRENTMENU, item.getItemEnum().toString()); - Singletons.getModel().getPreferences().save(); - } - - // Make sure this is called last, so it doesn't interfere - // with the selection display process. - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (item.getLayoutControl().getCommandOnSelect() != null) { - item.getLayoutControl().getCommandOnSelect().execute(); - } - } - }); - } - }; - - lbl.setCommand(cmdOnClick); - lbl.setBorder(new EmptyBorder(0, 10, 0, 0)); - - return lbl; - } - - /** - * - * @return Map - */ - public Map getAllSubmenuLabels() { - return allSubmenuLabels; - } - - //========== Overridden from IVDoc - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getDocumentID() - */ - @Override - public EDocID getDocumentID() { - return EDocID.HOME_MAINMENU; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getTabLabel() - */ - @Override - public DragTab getTabLabel() { - return tab; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getLayoutControl() - */ - @Override - public ICDoc getLayoutControl() { - return CHomeUI.SINGLETON_INSTANCE; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell) - */ - @Override - public void setParentCell(DragCell cell0) { - this.parentCell = cell0; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getParentCell() - */ - @Override - public DragCell getParentCell() { - return parentCell; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#populate() - */ - @Override - public void populate() { - parentCell.getBody().setLayout(new MigLayout("insets 0, gap 0, align center, wrap")); - parentCell.getBody().add(lblLogo, "w 200px!, h 20%:20%:200px, gap 0 0 5px 10px, ax center"); - parentCell.getBody().add(scrMenu, "w 98%!, pushy, growy, ax center, gap 0 0 0 10px"); - } -} diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java b/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java similarity index 85% rename from src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java rename to src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java index 7c2b0752e92..33ce3c756a9 100644 --- a/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java @@ -1,4 +1,4 @@ -package forge.gui.home.utilities; +package forge.gui.home.settings; import forge.Command; import forge.error.BugzReporter; @@ -16,12 +16,12 @@ import forge.gui.framework.ICDoc; * */ @SuppressWarnings("serial") -public enum CSubmenuUtilities implements ICDoc { +public enum CSubmenuDownloaders implements ICDoc { /** */ SINGLETON_INSTANCE; private final Command cmdLicensing = new Command() { @Override - public void execute() { VSubmenuUtilities.SINGLETON_INSTANCE.showLicensing(); } }; + public void execute() { VSubmenuDownloaders.SINGLETON_INSTANCE.showLicensing(); } }; private final Command cmdPicDownload = new Command() { @Override public void execute() { new GuiDownloadPicturesLQ(); } }; private final Command cmdSetDownload = new Command() { @Override @@ -31,7 +31,7 @@ public enum CSubmenuUtilities implements ICDoc { private final Command cmdDownloadPrices = new Command() { @Override public void execute() { new GuiDownloadPrices(); } }; private final Command cmdHowToPlay = new Command() { @Override - public void execute() { VSubmenuUtilities.SINGLETON_INSTANCE.showHowToPlay(); } }; + public void execute() { VSubmenuDownloaders.SINGLETON_INSTANCE.showHowToPlay(); } }; private final Command cmdImportPictures = new Command() { @Override @@ -53,7 +53,7 @@ public enum CSubmenuUtilities implements ICDoc { */ @Override public void initialize() { - final VSubmenuUtilities view = VSubmenuUtilities.SINGLETON_INSTANCE; + final VSubmenuDownloaders view = VSubmenuDownloaders.SINGLETON_INSTANCE; view.getBtnDownloadPics().setCommand(cmdPicDownload); view.getBtnDownloadSetPics().setCommand(cmdSetDownload); view.getBtnDownloadQuestImages().setCommand(cmdQuestImages); diff --git a/src/main/java/forge/gui/home/utilities/VSubmenuUtilities.java b/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java similarity index 95% rename from src/main/java/forge/gui/home/utilities/VSubmenuUtilities.java rename to src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java index 6942e2527f3..8e4b9c399ea 100644 --- a/src/main/java/forge/gui/home/utilities/VSubmenuUtilities.java +++ b/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java @@ -1,4 +1,4 @@ -package forge.gui.home.utilities; +package forge.gui.home.settings; import java.awt.Color; import java.awt.Font; @@ -40,7 +40,7 @@ import forge.properties.NewConstants.Lang; *

(V at beginning of class name denotes a view class.) * */ -public enum VSubmenuUtilities implements IVSubmenu { +public enum VSubmenuDownloaders implements IVSubmenu { /** */ SINGLETON_INSTANCE; @@ -72,7 +72,7 @@ public enum VSubmenuUtilities implements IVSubmenu { /** * Constructor. */ - private VSubmenuUtilities() { + private VSubmenuDownloaders() { final String constraintsLBL = "w 90%!, h 20px!, gap 5% 0 3px 8px"; final String constraintsBTN = "h 30px!, w 50%!, gap 25% 0 0 0"; @@ -141,7 +141,7 @@ public enum VSubmenuUtilities implements IVSubmenu { */ @Override public EMenuGroup getGroupEnum() { - return EMenuGroup.UTILITIES; + return EMenuGroup.SETTINGS; } /** @return {@link forge.gui.toolbox.FLabel} */ @@ -314,7 +314,7 @@ public enum VSubmenuUtilities implements IVSubmenu { */ @Override public ICDoc getLayoutControl() { - return CSubmenuUtilities.SINGLETON_INSTANCE; + return CSubmenuDownloaders.SINGLETON_INSTANCE; } /* (non-Javadoc) diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java b/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java deleted file mode 100644 index f6aa7c7259c..00000000000 --- a/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java +++ /dev/null @@ -1,49 +0,0 @@ -package forge.gui.home.utilities; - -import forge.Command; -import forge.control.FControl; -import forge.gui.deckeditor.CDeckEditorUI; -import forge.gui.deckeditor.controllers.CEditorConstructed; -import forge.gui.framework.ICDoc; - -/** - * Controls the deck editor submenu option in the home UI. - * - *

(C at beginning of class name denotes a control class.) - * - */ -public enum CSubmenuDeckEditor implements ICDoc { - /** */ - SINGLETON_INSTANCE; - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void initialize() { - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void update() { } - - /** - * Shows constructed mode editor. - */ - private void showDeckEditor() { - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorConstructed()); - FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED); - } - - /* (non-Javadoc) - * @see forge.gui.framework.ICDoc#getCommandOnSelect() - */ - @SuppressWarnings("serial") - @Override - public Command getCommandOnSelect() { - return new Command() { @Override - public void execute() { showDeckEditor(); } }; - } -} diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuExit.java b/src/main/java/forge/gui/home/utilities/CSubmenuExit.java deleted file mode 100644 index ed5a25b58da..00000000000 --- a/src/main/java/forge/gui/home/utilities/CSubmenuExit.java +++ /dev/null @@ -1,38 +0,0 @@ -package forge.gui.home.utilities; - -import forge.Command; -import forge.gui.framework.ICDoc; - -/** - * Controls the exit submenu option in the home UI. - * - *

(C at beginning of class name denotes a control class.) - * - */ -public enum CSubmenuExit implements ICDoc { - /** */ - SINGLETON_INSTANCE; - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void update() { } - - /* (non-Javadoc) - * @see forge.gui.home.ICSubmenu#initialize() - */ - @Override - public void initialize() { - } - - /* (non-Javadoc) - * @see forge.gui.framework.ICDoc#getCommandOnSelect() - */ - @SuppressWarnings("serial") - @Override - public Command getCommandOnSelect() { - return new Command() { @Override - public void execute() { System.exit(0); } }; - } -} diff --git a/src/main/java/forge/gui/home/utilities/VSubmenuDeckEditor.java b/src/main/java/forge/gui/home/utilities/VSubmenuDeckEditor.java deleted file mode 100644 index 3f77c0689db..00000000000 --- a/src/main/java/forge/gui/home/utilities/VSubmenuDeckEditor.java +++ /dev/null @@ -1,119 +0,0 @@ -package forge.gui.home.utilities; - -import javax.swing.JPanel; - -import net.miginfocom.swing.MigLayout; -import forge.gui.framework.DragCell; -import forge.gui.framework.DragTab; -import forge.gui.framework.EDocID; -import forge.gui.framework.ICDoc; -import forge.gui.home.EMenuGroup; -import forge.gui.home.IVSubmenu; -import forge.gui.home.VHomeUI; -import forge.gui.toolbox.FLabel; - -/** - * Assembles Swing components of deck editor submenu option singleton. - * - *

(V at beginning of class name denotes a view class.) - * - */ -public enum VSubmenuDeckEditor implements IVSubmenu { - /** */ - SINGLETON_INSTANCE; - - // Fields used with interface IVDoc - private DragCell parentCell; - private final DragTab tab = new DragTab("Deck Editor"); - - /** */ - private final JPanel pnl = new JPanel(); - - /* (non-Javadoc) - * @see forge.view.home.IViewSubmenu#populate() - */ - @Override - public void populate() { - pnl.removeAll(); - 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.getCommandOnSelect()) - .fontSize(16).build(), "w 200px!, h 40px!"); - - VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll(); - VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0")); - - VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnl, "w 98%!, h 98%!, gap 1% 0 1% 0"); - - VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate(); - VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf(); - } - - /* (non-Javadoc) - * @see forge.view.home.IViewSubmenu#getGroup() - */ - @Override - public EMenuGroup getGroupEnum() { - return EMenuGroup.UTILITIES; - } - - /* (non-Javadoc) - * @see forge.gui.home.IVSubmenu#getMenuTitle() - */ - @Override - public String getMenuTitle() { - return "Deck Editor"; - } - - /* (non-Javadoc) - * @see forge.gui.home.IVSubmenu#getItemEnum() - */ - @Override - public EDocID getItemEnum() { - return EDocID.HOME_DECKEDITOR; - } - - //========== Overridden from IVDoc - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getDocumentID() - */ - @Override - public EDocID getDocumentID() { - return EDocID.HOME_DECKEDITOR; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getTabLabel() - */ - @Override - public DragTab getTabLabel() { - return tab; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getLayoutControl() - */ - @Override - public ICDoc getLayoutControl() { - return CSubmenuDeckEditor.SINGLETON_INSTANCE; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell) - */ - @Override - public void setParentCell(DragCell cell0) { - this.parentCell = cell0; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getParentCell() - */ - @Override - public DragCell getParentCell() { - return parentCell; - } -} diff --git a/src/main/java/forge/gui/home/utilities/VSubmenuExit.java b/src/main/java/forge/gui/home/utilities/VSubmenuExit.java deleted file mode 100644 index 0c67f9af0f6..00000000000 --- a/src/main/java/forge/gui/home/utilities/VSubmenuExit.java +++ /dev/null @@ -1,107 +0,0 @@ -package forge.gui.home.utilities; - -import javax.swing.JPanel; - -import net.miginfocom.swing.MigLayout; -import forge.gui.framework.DragCell; -import forge.gui.framework.DragTab; -import forge.gui.framework.EDocID; -import forge.gui.framework.ICDoc; -import forge.gui.home.EMenuGroup; -import forge.gui.home.IVSubmenu; -import forge.gui.toolbox.FLabel; - -/** - * Assembles Swing components of exit submenu option singleton. - * - *

(V at beginning of class name denotes a view class.) - * - */ -public enum VSubmenuExit implements IVSubmenu { - /** */ - SINGLETON_INSTANCE; - - // Fields used with interface IVDoc - private DragCell parentCell; - private final DragTab tab = new DragTab("Exit"); - - /** */ - 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.getCommandOnSelect()) - .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.gui.home.IVSubmenu#getMenuTitle() - */ - @Override - public String getMenuTitle() { - return "Exit Forge"; - } - - /* (non-Javadoc) - * @see forge.gui.home.IVSubmenu#getItemEnum() - */ - @Override - public EDocID getItemEnum() { - return EDocID.HOME_EXIT; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getDocumentID() - */ - @Override - public EDocID getDocumentID() { - return EDocID.HOME_EXIT; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getTabLabel() - */ - @Override - public DragTab getTabLabel() { - return tab; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getLayoutControl() - */ - @Override - public ICDoc getLayoutControl() { - return CSubmenuExit.SINGLETON_INSTANCE; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell) - */ - @Override - public void setParentCell(DragCell cell0) { - parentCell = cell0; - } - - /* (non-Javadoc) - * @see forge.gui.framework.IVDoc#getParentCell() - */ - @Override - public DragCell getParentCell() { - return parentCell; - } -} diff --git a/src/main/java/forge/gui/home/utilities/package-info.java b/src/main/java/forge/gui/home/utilities/package-info.java deleted file mode 100644 index 1e70840aade..00000000000 --- a/src/main/java/forge/gui/home/utilities/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -/** Forge Card Game. */ -package forge.gui.home.utilities; - diff --git a/src/main/java/forge/gui/toolbox/ExperimentalLabel.java b/src/main/java/forge/gui/toolbox/ExperimentalLabel.java index 6c703276500..e87b12b873c 100644 --- a/src/main/java/forge/gui/toolbox/ExperimentalLabel.java +++ b/src/main/java/forge/gui/toolbox/ExperimentalLabel.java @@ -73,7 +73,7 @@ public class ExperimentalLabel extends JLabel implements ILocalRepaint { public void mouseReleased(final MouseEvent e) { down = false; repaintSelf(); - cmdClick.execute(); + if (cmdClick != null) { cmdClick.execute(); } } }); }