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(); }
}
});
}