diff --git a/.gitattributes b/.gitattributes index 0ca052d8528..5daf0d063f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14790,11 +14790,8 @@ src/main/java/forge/gui/match/views/VStack.java -text src/main/java/forge/gui/match/views/package-info.java svneol=native#text/plain src/main/java/forge/gui/package-info.java svneol=native#text/plain src/main/java/forge/gui/toolbox/CardFaceSymbols.java svneol=native#text/plain -src/main/java/forge/gui/toolbox/CardViewer.java -text -src/main/java/forge/gui/toolbox/DeckLister.java -text src/main/java/forge/gui/toolbox/FButton.java -text src/main/java/forge/gui/toolbox/FCheckBox.java -text -src/main/java/forge/gui/toolbox/FDeckChooser.java -text src/main/java/forge/gui/toolbox/FLabel.java -text src/main/java/forge/gui/toolbox/FList.java -text src/main/java/forge/gui/toolbox/FOverlay.java -text @@ -14808,6 +14805,12 @@ src/main/java/forge/gui/toolbox/FTextArea.java -text src/main/java/forge/gui/toolbox/FTextField.java -text src/main/java/forge/gui/toolbox/SaveOpenDialog.java -text src/main/java/forge/gui/toolbox/package-info.java svneol=native#text/plain +src/main/java/forge/gui/toolbox/special/CardViewer.java -text +src/main/java/forge/gui/toolbox/special/DeckLister.java -text +src/main/java/forge/gui/toolbox/special/FDeckChooser.java -text +src/main/java/forge/gui/toolbox/special/PhaseIndicator.java -text +src/main/java/forge/gui/toolbox/special/PhaseLabel.java -text +src/main/java/forge/gui/toolbox/special/package-info.java -text src/main/java/forge/item/BoosterPack.java -text src/main/java/forge/item/FatPack.java -text src/main/java/forge/item/IPaperCard.java -text diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index 2fc78387194..dfe45459541 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -62,7 +62,6 @@ import forge.gui.match.controllers.CMessage; import forge.gui.match.controllers.CStack; import forge.gui.match.nonsingleton.VField; import forge.gui.match.views.VAntes; -import forge.gui.toolbox.CardFaceSymbols; import forge.gui.toolbox.FSkin; import forge.net.NetServer; import forge.properties.NewConstants; @@ -172,9 +171,6 @@ public enum FControl { UIManager.put("TabbedPane.contentOpaque", FSkin.getColor(FSkin.Colors.CLR_THEME)); UIManager.put("TabbedPane.unselectedBackground", FSkin.getColor(FSkin.Colors.CLR_THEME2)); - // Does not use progress bar, due to be deprecated with battlefield refactoring. - CardFaceSymbols.loadImages(); - this.shortcuts = KeyboardShortcuts.attachKeyboardShortcuts(); this.display = FView.SINGLETON_INSTANCE.getLpnDocument(); diff --git a/src/main/java/forge/control/FControlGameEventHandler.java b/src/main/java/forge/control/FControlGameEventHandler.java index c067434b3d7..32144dcc9cd 100644 --- a/src/main/java/forge/control/FControlGameEventHandler.java +++ b/src/main/java/forge/control/FControlGameEventHandler.java @@ -32,7 +32,7 @@ import forge.gui.match.ViewWinLose; import forge.gui.match.controllers.CMessage; import forge.gui.match.controllers.CStack; import forge.gui.match.nonsingleton.VHand; -import forge.gui.match.nonsingleton.VField.PhaseLabel; +import forge.gui.toolbox.special.PhaseLabel; public class FControlGameEventHandler extends IGameEventVisitor.Base { private final FControl fc; @@ -56,7 +56,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { phaseUpdPlanned.set(false); final CMatchUI matchUi = CMatchUI.SINGLETON_INSTANCE; - PhaseLabel lbl = matchUi.getFieldViewFor(p).getLabelFor(ph); + PhaseLabel lbl = matchUi.getFieldViewFor(p).getPhaseInidicator().getLabelFor(ph); matchUi.resetAllPhaseButtons(); if (lbl != null) lbl.setActive(true); diff --git a/src/main/java/forge/gui/deckeditor/views/VAllDecks.java b/src/main/java/forge/gui/deckeditor/views/VAllDecks.java index d927eeefd87..b9cb5b08c69 100644 --- a/src/main/java/forge/gui/deckeditor/views/VAllDecks.java +++ b/src/main/java/forge/gui/deckeditor/views/VAllDecks.java @@ -9,7 +9,7 @@ import forge.gui.framework.DragCell; import forge.gui.framework.DragTab; import forge.gui.framework.EDocID; import forge.gui.framework.IVDoc; -import forge.gui.toolbox.DeckLister; +import forge.gui.toolbox.special.DeckLister; /** * Assembles Swing components of all deck viewer in deck editor. diff --git a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletBuild.java b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletBuild.java index e9ee2b538ec..ea8eba3ed23 100644 --- a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletBuild.java +++ b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletBuild.java @@ -19,12 +19,12 @@ import forge.gui.framework.EDocID; import forge.gui.home.EMenuGroup; import forge.gui.home.IVSubmenu; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTextField; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of "build gauntlet" submenu singleton. diff --git a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java index 9fada2f7a9f..14a4bb54536 100644 --- a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java +++ b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java @@ -17,10 +17,10 @@ import forge.gui.home.EMenuGroup; import forge.gui.home.IVSubmenu; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of "build gauntlet" submenu singleton. diff --git a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java index 811043a0e00..24f99d97b35 100644 --- a/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java +++ b/src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java @@ -19,10 +19,10 @@ import forge.gui.home.IVSubmenu; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; import forge.gui.toolbox.FCheckBox; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of "quick gauntlet" submenu singleton. diff --git a/src/main/java/forge/gui/home/quest/VSubmenuQuestDecks.java b/src/main/java/forge/gui/home/quest/VSubmenuQuestDecks.java index bfbb2bfee05..84cb34c7401 100644 --- a/src/main/java/forge/gui/home/quest/VSubmenuQuestDecks.java +++ b/src/main/java/forge/gui/home/quest/VSubmenuQuestDecks.java @@ -10,10 +10,10 @@ import forge.gui.framework.EDocID; import forge.gui.home.EMenuGroup; import forge.gui.home.IVSubmenu; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.DeckLister; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.DeckLister; /** * Assembles Swing components of quest decks submenu singleton. @@ -90,7 +90,7 @@ public enum VSubmenuQuestDecks implements IVSubmenu { return EDocID.HOME_QUESTDECKS; } - /** @return {@link forge.gui.toolbox.DeckLister} */ + /** @return {@link forge.gui.toolbox.special.DeckLister} */ public DeckLister getLstDecks() { return this.lstDecks; } diff --git a/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java b/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java index 132bb0ef844..c4515e62c9c 100644 --- a/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java +++ b/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java @@ -14,8 +14,8 @@ import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; import forge.gui.toolbox.FCheckBox; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of constructed submenu singleton. diff --git a/src/main/java/forge/gui/home/sanctioned/VSubmenuDraft.java b/src/main/java/forge/gui/home/sanctioned/VSubmenuDraft.java index 1f29fcdfa1d..60eac6d8298 100644 --- a/src/main/java/forge/gui/home/sanctioned/VSubmenuDraft.java +++ b/src/main/java/forge/gui/home/sanctioned/VSubmenuDraft.java @@ -20,13 +20,13 @@ import forge.gui.home.IVSubmenu; import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.DeckLister; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.JXButtonPanel; +import forge.gui.toolbox.special.DeckLister; /** * Assembles Swing components of draft submenu singleton. @@ -131,7 +131,7 @@ public enum VSubmenuDraft implements IVSubmenu { return radSingle.isSelected(); } - /** @return {@link forge.gui.toolbox.DeckLister} */ + /** @return {@link forge.gui.toolbox.special.DeckLister} */ public DeckLister getLstDecks() { return lstDecks; } diff --git a/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java b/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java index 1c02b407eaf..13f74fe82af 100644 --- a/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java +++ b/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java @@ -25,12 +25,12 @@ import forge.gui.home.IVSubmenu; import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; -import forge.gui.toolbox.DeckLister; import forge.gui.toolbox.FButton; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.DeckLister; /** * Assembles Swing components of sealed submenu singleton. @@ -143,7 +143,7 @@ public enum VSubmenuSealed implements IVSubmenu { return this.btnStart; } - /** @return {@link forge.gui.toolbox.DeckLister} */ + /** @return {@link forge.gui.toolbox.special.DeckLister} */ public DeckLister getLstDecks() { return lstDecks; } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java index 1ddac1a11f3..00ec6d715ab 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java @@ -27,8 +27,8 @@ import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.controllers.CEditorVariant; import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FList; +import forge.gui.toolbox.special.FDeckChooser; import forge.item.PaperCard; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index 9497ee400b1..d422b18ff74 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -28,8 +28,8 @@ import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.controllers.CEditorVariant; import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FList; +import forge.gui.toolbox.special.FDeckChooser; import forge.item.PaperCard; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; diff --git a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java index 4dd7e0b21d7..46f4a99655d 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java @@ -23,7 +23,7 @@ import forge.game.player.LobbyPlayer; import forge.gui.GuiDialog; import forge.gui.SOverlayUtils; import forge.gui.framework.ICDoc; -import forge.gui.toolbox.FDeckChooser; +import forge.gui.toolbox.special.FDeckChooser; import forge.item.PaperCard; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; diff --git a/src/main/java/forge/gui/home/variant/VSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/VSubmenuArchenemy.java index 3a6922a0cab..fa0d6ea23ba 100644 --- a/src/main/java/forge/gui/home/variant/VSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/VSubmenuArchenemy.java @@ -24,7 +24,6 @@ import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; import forge.gui.toolbox.FCheckBox; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FPanel; @@ -33,6 +32,7 @@ import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTabbedPane; import forge.gui.toolbox.JXButtonPanel; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of constructed submenu singleton. diff --git a/src/main/java/forge/gui/home/variant/VSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/VSubmenuPlanechase.java index 4da9e769c32..15ece3ea382 100644 --- a/src/main/java/forge/gui/home/variant/VSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/VSubmenuPlanechase.java @@ -24,7 +24,6 @@ import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; import forge.gui.toolbox.FCheckBox; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FPanel; @@ -32,6 +31,7 @@ import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTabbedPane; +import forge.gui.toolbox.special.FDeckChooser; /** * Assembles Swing components of constructed submenu singleton. diff --git a/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java index 0511592468a..8855ddbf20d 100644 --- a/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java @@ -28,7 +28,6 @@ import forge.gui.home.LblHeader; import forge.gui.home.StartButton; import forge.gui.home.VHomeUI; import forge.gui.toolbox.FCheckBox; -import forge.gui.toolbox.FDeckChooser; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FPanel; @@ -36,6 +35,7 @@ import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTabbedPane; +import forge.gui.toolbox.special.FDeckChooser; import forge.item.PaperCard; import forge.item.IPaperCard; diff --git a/src/main/java/forge/gui/match/CMatchUI.java b/src/main/java/forge/gui/match/CMatchUI.java index a6312839e2b..bf30baa319f 100644 --- a/src/main/java/forge/gui/match/CMatchUI.java +++ b/src/main/java/forge/gui/match/CMatchUI.java @@ -45,10 +45,10 @@ import forge.gui.match.controllers.CMessage; import forge.gui.match.controllers.CPicture; import forge.gui.match.nonsingleton.VCommand; import forge.gui.match.nonsingleton.VField; -import forge.gui.match.nonsingleton.VField.PhaseLabel; import forge.gui.match.nonsingleton.VHand; import forge.gui.match.views.VPlayers; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.special.PhaseLabel; import forge.item.InventoryItem; import forge.properties.ForgePreferences.FPref; @@ -179,7 +179,7 @@ public enum CMatchUI { // (not just one). public void resetAllPhaseButtons() { for (final VField v : view.getFieldViews()) { - v.resetPhaseButtons(); + v.getPhaseInidicator().resetPhaseButtons(); } } @@ -237,7 +237,7 @@ public enum CMatchUI { */ public final boolean stopAtPhase(final Player turn, final PhaseType phase) { VField vf = getFieldViewFor(turn); - PhaseLabel label = vf.getLabelFor(phase); + PhaseLabel label = vf.getPhaseInidicator().getLabelFor(phase); return label == null || label.getEnabled(); } diff --git a/src/main/java/forge/gui/match/nonsingleton/VField.java b/src/main/java/forge/gui/match/nonsingleton/VField.java index be3e5af868e..45c673aaf96 100644 --- a/src/main/java/forge/gui/match/nonsingleton/VField.java +++ b/src/main/java/forge/gui/match/nonsingleton/VField.java @@ -18,9 +18,7 @@ package forge.gui.match.nonsingleton; import java.awt.Color; -import java.awt.Dimension; import java.awt.Font; -import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; @@ -40,7 +38,6 @@ import net.miginfocom.swing.MigLayout; import forge.card.MagicColor; import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaPool; -import forge.game.phase.PhaseType; import forge.game.player.LobbyPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -52,6 +49,7 @@ import forge.gui.match.controllers.CPlayers; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin.SkinProp; +import forge.gui.toolbox.special.PhaseIndicator; import forge.view.arcane.PlayArea; /** @@ -73,14 +71,12 @@ public class VField implements IVDoc { private final JScrollPane scroller = new JScrollPane(); private final PlayArea tabletop; private final JPanel avatarArea = new JPanel(); - private final JPanel phaseArea = new JPanel(); + private final JPanel pnlDetails = new JPanel(); // Avatar area - private final FLabel lblAvatar = new FLabel.Builder().fontAlign(SwingConstants.CENTER) - .iconScaleFactor(1.0f).build(); - private final FLabel lblLife = new FLabel.Builder().fontAlign(SwingConstants.CENTER) - .fontStyle(Font.BOLD).build(); + private final FLabel lblAvatar = new FLabel.Builder().fontAlign(SwingConstants.CENTER).iconScaleFactor(1.0f).build(); + private final FLabel lblLife = new FLabel.Builder().fontAlign(SwingConstants.CENTER).fontStyle(Font.BOLD).build(); // Info labels private FLabel lblHand = getBuiltFLabel(FSkin.ZoneImages.ICO_HAND, "99", "Cards in hand"); @@ -91,19 +87,7 @@ public class VField implements IVDoc { private FLabel lblPoison = getBuiltFLabel(FSkin.ZoneImages.ICO_POISON, "99", "Poison counters"); private final List> manaLabels = new ArrayList>(); - // Phase labels - private PhaseLabel lblUpkeep = new PhaseLabel("UP"); - private PhaseLabel lblDraw = new PhaseLabel("DR"); - private PhaseLabel lblMain1 = new PhaseLabel("M1"); - private PhaseLabel lblBeginCombat = new PhaseLabel("BC"); - private PhaseLabel lblDeclareAttackers = new PhaseLabel("DA"); - private PhaseLabel lblDeclareBlockers = new PhaseLabel("DB"); - private PhaseLabel lblFirstStrike = new PhaseLabel("FS"); - private PhaseLabel lblCombatDamage = new PhaseLabel("CD"); - private PhaseLabel lblEndCombat = new PhaseLabel("EC"); - private PhaseLabel lblMain2 = new PhaseLabel("M2"); - private PhaseLabel lblEndTurn = new PhaseLabel("ET"); - private PhaseLabel lblCleanup = new PhaseLabel("CL"); + private final PhaseIndicator phaseInidicator = new PhaseIndicator(); private final Border borderAvatarSimple = new LineBorder(new Color(0, 0, 0, 0), 1); private final Border borderAvatarHover = new LineBorder(FSkin.getColor(FSkin.Colors.CLR_BORDERS), 1); @@ -161,10 +145,6 @@ public class VField implements IVDoc { } }); - phaseArea.setOpaque(false); - phaseArea.setLayout(new MigLayout("insets 0 0 1% 0, gap 0, wrap")); - populatePhase(); - tabletop.setBorder(new MatteBorder(0, 1, 0, 0, FSkin.getColor(FSkin.Colors.CLR_BORDERS))); tabletop.setOpaque(false); @@ -190,7 +170,7 @@ public class VField implements IVDoc { pnl.setLayout(new MigLayout("insets 0, gap 0")); pnl.add(avatarArea, "w 10%!, h 30%!"); - pnl.add(phaseArea, "w 5%!, h 100%!, span 1 2"); + pnl.add(phaseInidicator, "w 5%!, h 100%!, span 1 2"); pnl.add(scroller, "w 85%!, h 100%!, span 1 2, wrap"); pnl.add(pnlDetails, "w 10%!, h 69%!, gapleft 1px"); } @@ -237,47 +217,7 @@ public class VField implements IVDoc { //========= Populate helper methods - /** Adds phase indicator labels to phase area JPanel container. */ - private void populatePhase() { - // Constraints string, set once - final String constraints = "w 94%!, h 7.2%, gaptop 1%, gapleft 3%"; - VField.this.lblUpkeep.setToolTipText("Phase: Upkeep
Click to toggle."); - phaseArea.add(VField.this.lblUpkeep, constraints); - - VField.this.lblDraw.setToolTipText("Phase: Draw
Click to toggle."); - phaseArea.add(VField.this.lblDraw, constraints); - - VField.this.lblMain1.setToolTipText("Phase: Main 1
Click to toggle."); - phaseArea.add(VField.this.lblMain1, constraints); - - VField.this.lblBeginCombat.setToolTipText("Phase: Begin Combat
Click to toggle."); - phaseArea.add(VField.this.lblBeginCombat, constraints); - - VField.this.lblDeclareAttackers.setToolTipText("Phase: Declare Attackers
Click to toggle."); - phaseArea.add(VField.this.lblDeclareAttackers, constraints); - - VField.this.lblDeclareBlockers.setToolTipText("Phase: Declare Blockers
Click to toggle."); - phaseArea.add(VField.this.lblDeclareBlockers, constraints); - - VField.this.lblFirstStrike.setToolTipText("Phase: First Strike Damage
Click to toggle."); - phaseArea.add(VField.this.lblFirstStrike, constraints); - - VField.this.lblCombatDamage.setToolTipText("Phase: Combat Damage
Click to toggle."); - phaseArea.add(VField.this.lblCombatDamage, constraints); - - VField.this.lblEndCombat.setToolTipText("Phase: End Combat
Click to toggle."); - phaseArea.add(VField.this.lblEndCombat, constraints); - - VField.this.lblMain2.setToolTipText("Phase: Main 2
Click to toggle."); - phaseArea.add(VField.this.lblMain2, constraints); - - VField.this.lblEndTurn.setToolTipText("Phase: End Turn
Click to toggle."); - phaseArea.add(VField.this.lblEndTurn, constraints); - - VField.this.lblCleanup.setToolTipText("Phase: Cleanup
Click to toggle."); - phaseArea.add(VField.this.lblCleanup, constraints); - } /** Adds various labels to pool area JPanel container. */ private void populateDetails() { @@ -458,242 +398,13 @@ public class VField implements IVDoc { return this.lblPoison; } - // Phases - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblUpkeep() { - return this.lblUpkeep; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblDraw() { - return this.lblDraw; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblMain1() { - return this.lblMain1; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblBeginCombat() { - return this.lblBeginCombat; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblDeclareAttackers() { - return this.lblDeclareAttackers; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblDeclareBlockers() { - return this.lblDeclareBlockers; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblCombatDamage() { - return this.lblCombatDamage; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblFirstStrike() { - return this.lblFirstStrike; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblEndCombat() { - return this.lblEndCombat; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblMain2() { - return this.lblMain2; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblEndTurn() { - return this.lblEndTurn; - } - - /** @return {@link javax.swing.JLabel} */ - public PhaseLabel getLblCleanup() { - return this.lblCleanup; - } - - //========== Custom class handling - - public PhaseLabel getLabelFor(final PhaseType s) { - switch (s) { - case UPKEEP: - return this.getLblUpkeep(); - case DRAW: - return this.getLblDraw(); - case MAIN1: - return this.getLblMain1(); - case COMBAT_BEGIN: - return this.getLblBeginCombat(); - case COMBAT_DECLARE_ATTACKERS: - return this.getLblDeclareAttackers(); - case COMBAT_DECLARE_BLOCKERS: - return this.getLblDeclareBlockers(); - case COMBAT_DAMAGE: - return this.getLblCombatDamage(); - case COMBAT_FIRST_STRIKE_DAMAGE: - return this.getLblFirstStrike(); - case COMBAT_END: - return this.getLblEndCombat(); - case MAIN2: - return this.getLblMain2(); - case END_OF_TURN: - return this.getLblEndTurn(); - case CLEANUP: - return this.getLblCleanup(); - default: - return null; - } - } - /** - * Resets all phase buttons to "inactive", so highlight won't be drawn on - * them. "Enabled" state remains the same. + * TODO: Write javadoc for this method. + * @return */ - public void resetPhaseButtons() { - getLblUpkeep().setActive(false); - getLblDraw().setActive(false); - getLblMain1().setActive(false); - getLblBeginCombat().setActive(false); - getLblDeclareAttackers().setActive(false); - getLblDeclareBlockers().setActive(false); - getLblFirstStrike().setActive(false); - getLblCombatDamage().setActive(false); - getLblEndCombat().setActive(false); - getLblMain2().setActive(false); - getLblEndTurn().setActive(false); - getLblCleanup().setActive(false); + public PhaseIndicator getPhaseInidicator() { + return phaseInidicator; } - /** - * Shows phase labels, handles repainting and on/off states. A PhaseLabel - * has "skip" and "active" states, meaning "this phase is (not) skipped" and - * "this is the current phase". - */ - @SuppressWarnings("serial") - public class PhaseLabel extends JLabel { - private boolean enabled = true; - private boolean active = false; - private boolean hover = false; - - /** - * Shows phase labels, handles repainting and on/off states. A - * PhaseLabel has "skip" and "active" states, meaning - * "this phase is (not) skipped" and "this is the current phase". - * - * @param txt - *   Label text - */ - public PhaseLabel(final String txt) { - super(txt); - this.setHorizontalTextPosition(SwingConstants.CENTER); - this.setHorizontalAlignment(SwingConstants.CENTER); - - this.addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(final MouseEvent e) { - if (PhaseLabel.this.enabled) { - PhaseLabel.this.enabled = false; - } else { - PhaseLabel.this.enabled = true; - } - } - - @Override - public void mouseEntered(final MouseEvent e) { - PhaseLabel.this.hover = true; - PhaseLabel.this.repaintOnlyThisLabel(); - } - - @Override - public void mouseExited(final MouseEvent e) { - PhaseLabel.this.hover = false; - PhaseLabel.this.repaintOnlyThisLabel(); - } - }); - } - - /** - * Determines whether play pauses at this phase or not. - * - * @param b - *   boolean, true if play pauses - */ - @Override - public void setEnabled(final boolean b) { - this.enabled = b; - } - - /** - * Determines whether play pauses at this phase or not. - * - * @return boolean - */ - public boolean getEnabled() { - return this.enabled; - } - - /** - * Makes this phase the current phase (or not). - * - * @param b - *   boolean, true if phase is current - */ - public void setActive(final boolean b) { - this.active = b; - this.repaintOnlyThisLabel(); - } - - /** - * Determines if this phase is the current phase (or not). - * - * @return boolean - */ - public boolean getActive() { - return this.active; - } - - /** Prevent label from repainting the whole screen. */ - public void repaintOnlyThisLabel() { - final Dimension d = PhaseLabel.this.getSize(); - repaint(0, 0, d.width, d.height); - } - - /* - * (non-Javadoc) - * - * @see javax.swing.JComponent#paintComponent(java.awt.Graphics) - */ - @Override - public void paintComponent(final Graphics g) { - final int w = this.getWidth(); - final int h = this.getHeight(); - Color c; - - // Set color according to skip or active or hover state of label - if (this.hover) { - c = FSkin.getColor(FSkin.Colors.CLR_HOVER); - } else if (this.active && this.enabled) { - c = FSkin.getColor(FSkin.Colors.CLR_PHASE_ACTIVE_ENABLED); - } else if (!this.active && this.enabled) { - c = FSkin.getColor(FSkin.Colors.CLR_PHASE_INACTIVE_ENABLED); - } else if (this.active && !this.enabled) { - c = FSkin.getColor(FSkin.Colors.CLR_PHASE_ACTIVE_DISABLED); - } else { - c = FSkin.getColor(FSkin.Colors.CLR_PHASE_INACTIVE_DISABLED); - } - - // Center vertically and horizontally. Show border if active. - g.setColor(c); - g.fillRoundRect(1, 1, w - 2, h - 2, 5, 5); - super.paintComponent(g); - } - } } diff --git a/src/main/java/forge/gui/toolbox/CardViewer.java b/src/main/java/forge/gui/toolbox/special/CardViewer.java similarity index 96% rename from src/main/java/forge/gui/toolbox/CardViewer.java rename to src/main/java/forge/gui/toolbox/special/CardViewer.java index 86e32cdec9f..e3253d7036f 100644 --- a/src/main/java/forge/gui/toolbox/CardViewer.java +++ b/src/main/java/forge/gui/toolbox/special/CardViewer.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge.gui.toolbox; +package forge.gui.toolbox.special; import java.util.Collections; import java.util.List; diff --git a/src/main/java/forge/gui/toolbox/DeckLister.java b/src/main/java/forge/gui/toolbox/special/DeckLister.java similarity index 99% rename from src/main/java/forge/gui/toolbox/DeckLister.java rename to src/main/java/forge/gui/toolbox/special/DeckLister.java index cb70ba67309..bbc26981330 100644 --- a/src/main/java/forge/gui/toolbox/DeckLister.java +++ b/src/main/java/forge/gui/toolbox/special/DeckLister.java @@ -17,7 +17,7 @@ ram is free software: you can redistribute it and/or modify * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge.gui.toolbox; +package forge.gui.toolbox.special; import java.awt.Color; import java.awt.Dimension; @@ -50,6 +50,8 @@ import forge.gui.deckeditor.controllers.CEditorConstructed; import forge.gui.deckeditor.controllers.CEditorLimited; import forge.gui.deckeditor.controllers.CEditorQuest; import forge.gui.framework.ILocalRepaint; +import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FSkin; import forge.item.InventoryItem; /** diff --git a/src/main/java/forge/gui/toolbox/FDeckChooser.java b/src/main/java/forge/gui/toolbox/special/FDeckChooser.java similarity index 95% rename from src/main/java/forge/gui/toolbox/FDeckChooser.java rename to src/main/java/forge/gui/toolbox/special/FDeckChooser.java index cfb28b3c945..8600e83b6d2 100644 --- a/src/main/java/forge/gui/toolbox/FDeckChooser.java +++ b/src/main/java/forge/gui/toolbox/special/FDeckChooser.java @@ -1,4 +1,4 @@ -package forge.gui.toolbox; +package forge.gui.toolbox.special; import java.awt.Font; import java.awt.event.MouseAdapter; @@ -25,6 +25,11 @@ import forge.deck.Deck; import forge.deck.DeckgenUtil; import forge.deck.generate.GenerateThemeDeck; import forge.game.RegisteredPlayer; +import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FList; +import forge.gui.toolbox.FRadioButton; +import forge.gui.toolbox.FScrollPane; +import forge.gui.toolbox.JXButtonPanel; import forge.item.PreconDeck; import forge.quest.QuestController; import forge.quest.QuestEvent; diff --git a/src/main/java/forge/gui/toolbox/special/PhaseIndicator.java b/src/main/java/forge/gui/toolbox/special/PhaseIndicator.java new file mode 100644 index 00000000000..e454f3e70aa --- /dev/null +++ b/src/main/java/forge/gui/toolbox/special/PhaseIndicator.java @@ -0,0 +1,191 @@ +package forge.gui.toolbox.special; + +import javax.swing.JPanel; + +import net.miginfocom.swing.MigLayout; + +import forge.game.phase.PhaseType; + +/** + * TODO: Write javadoc for this type. + * + */ +public class PhaseIndicator extends JPanel { + private static final long serialVersionUID = -863730022835609252L; + + // Phase labels + private PhaseLabel lblUpkeep = new PhaseLabel("UP"); + private PhaseLabel lblDraw = new PhaseLabel("DR"); + private PhaseLabel lblMain1 = new PhaseLabel("M1"); + private PhaseLabel lblBeginCombat = new PhaseLabel("BC"); + private PhaseLabel lblDeclareAttackers = new PhaseLabel("DA"); + private PhaseLabel lblDeclareBlockers = new PhaseLabel("DB"); + private PhaseLabel lblFirstStrike = new PhaseLabel("FS"); + private PhaseLabel lblCombatDamage = new PhaseLabel("CD"); + private PhaseLabel lblEndCombat = new PhaseLabel("EC"); + private PhaseLabel lblMain2 = new PhaseLabel("M2"); + private PhaseLabel lblEndTurn = new PhaseLabel("ET"); + private PhaseLabel lblCleanup = new PhaseLabel("CL"); + + + public PhaseIndicator() { + this.setOpaque(false); + this.setLayout(new MigLayout("insets 0 0 1% 0, gap 0, wrap")); + populatePhase(); + } + + /** Adds phase indicator labels to phase area JPanel container. */ + private void populatePhase() { + // Constraints string, set once + final String constraints = "w 94%!, h 7.2%, gaptop 1%, gapleft 3%"; + + lblUpkeep.setToolTipText("Phase: Upkeep
Click to toggle."); + this.add(lblUpkeep, constraints); + + lblDraw.setToolTipText("Phase: Draw
Click to toggle."); + this.add(lblDraw, constraints); + + lblMain1.setToolTipText("Phase: Main 1
Click to toggle."); + this.add(lblMain1, constraints); + + lblBeginCombat.setToolTipText("Phase: Begin Combat
Click to toggle."); + this.add(lblBeginCombat, constraints); + + lblDeclareAttackers.setToolTipText("Phase: Declare Attackers
Click to toggle."); + this.add(lblDeclareAttackers, constraints); + + lblDeclareBlockers.setToolTipText("Phase: Declare Blockers
Click to toggle."); + this.add(lblDeclareBlockers, constraints); + + lblFirstStrike.setToolTipText("Phase: First Strike Damage
Click to toggle."); + this.add(lblFirstStrike, constraints); + + lblCombatDamage.setToolTipText("Phase: Combat Damage
Click to toggle."); + this.add(lblCombatDamage, constraints); + + lblEndCombat.setToolTipText("Phase: End Combat
Click to toggle."); + this.add(lblEndCombat, constraints); + + lblMain2.setToolTipText("Phase: Main 2
Click to toggle."); + this.add(lblMain2, constraints); + + lblEndTurn.setToolTipText("Phase: End Turn
Click to toggle."); + this.add(lblEndTurn, constraints); + + lblCleanup.setToolTipText("Phase: Cleanup
Click to toggle."); + this.add(lblCleanup, constraints); + } + + + //========== Custom class handling + public PhaseLabel getLabelFor(final PhaseType s) { + switch (s) { + case UPKEEP: + return this.getLblUpkeep(); + case DRAW: + return this.getLblDraw(); + case MAIN1: + return this.getLblMain1(); + case COMBAT_BEGIN: + return this.getLblBeginCombat(); + case COMBAT_DECLARE_ATTACKERS: + return this.getLblDeclareAttackers(); + case COMBAT_DECLARE_BLOCKERS: + return this.getLblDeclareBlockers(); + case COMBAT_DAMAGE: + return this.getLblCombatDamage(); + case COMBAT_FIRST_STRIKE_DAMAGE: + return this.getLblFirstStrike(); + case COMBAT_END: + return this.getLblEndCombat(); + case MAIN2: + return this.getLblMain2(); + case END_OF_TURN: + return this.getLblEndTurn(); + case CLEANUP: + return this.getLblCleanup(); + default: + return null; + } + } + + /** + * Resets all phase buttons to "inactive", so highlight won't be drawn on + * them. "Enabled" state remains the same. + */ + public void resetPhaseButtons() { + getLblUpkeep().setActive(false); + getLblDraw().setActive(false); + getLblMain1().setActive(false); + getLblBeginCombat().setActive(false); + getLblDeclareAttackers().setActive(false); + getLblDeclareBlockers().setActive(false); + getLblFirstStrike().setActive(false); + getLblCombatDamage().setActive(false); + getLblEndCombat().setActive(false); + getLblMain2().setActive(false); + getLblEndTurn().setActive(false); + getLblCleanup().setActive(false); + } + + // Phases + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblUpkeep() { + return this.lblUpkeep; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblDraw() { + return this.lblDraw; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblMain1() { + return this.lblMain1; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblBeginCombat() { + return this.lblBeginCombat; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblDeclareAttackers() { + return this.lblDeclareAttackers; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblDeclareBlockers() { + return this.lblDeclareBlockers; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblCombatDamage() { + return this.lblCombatDamage; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblFirstStrike() { + return this.lblFirstStrike; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblEndCombat() { + return this.lblEndCombat; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblMain2() { + return this.lblMain2; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblEndTurn() { + return this.lblEndTurn; + } + + /** @return {@link javax.swing.JLabel} */ + public PhaseLabel getLblCleanup() { + return this.lblCleanup; + } +} \ No newline at end of file diff --git a/src/main/java/forge/gui/toolbox/special/PhaseLabel.java b/src/main/java/forge/gui/toolbox/special/PhaseLabel.java new file mode 100644 index 00000000000..cece1f6efc2 --- /dev/null +++ b/src/main/java/forge/gui/toolbox/special/PhaseLabel.java @@ -0,0 +1,138 @@ +package forge.gui.toolbox.special; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +import javax.swing.JLabel; +import javax.swing.SwingConstants; + +import forge.gui.toolbox.FSkin; + +/** + * Shows phase labels, handles repainting and on/off states. A PhaseLabel + * has "skip" and "active" states, meaning "this phase is (not) skipped" and + * "this is the current phase". + */ +@SuppressWarnings("serial") +public class PhaseLabel extends JLabel { + private boolean enabled = true; + private boolean active = false; + private boolean hover = false; + + + /** + * Shows phase labels, handles repainting and on/off states. A + * PhaseLabel has "skip" and "active" states, meaning + * "this phase is (not) skipped" and "this is the current phase". + * + * @param txt + *   Label text + */ + public PhaseLabel(final String txt) { + super(txt); + this.setHorizontalTextPosition(SwingConstants.CENTER); + this.setHorizontalAlignment(SwingConstants.CENTER); + + this.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(final MouseEvent e) { + if (PhaseLabel.this.enabled) { + PhaseLabel.this.enabled = false; + } else { + PhaseLabel.this.enabled = true; + } + } + + @Override + public void mouseEntered(final MouseEvent e) { + PhaseLabel.this.hover = true; + PhaseLabel.this.repaintOnlyThisLabel(); + } + + @Override + public void mouseExited(final MouseEvent e) { + PhaseLabel.this.hover = false; + PhaseLabel.this.repaintOnlyThisLabel(); + } + }); + } + + /** + * Determines whether play pauses at this phase or not. + * + * @param b + *   boolean, true if play pauses + */ + @Override + public void setEnabled(final boolean b) { + this.enabled = b; + } + + /** + * Determines whether play pauses at this phase or not. + * + * @return boolean + */ + public boolean getEnabled() { + return this.enabled; + } + + /** + * Makes this phase the current phase (or not). + * + * @param b + *   boolean, true if phase is current + */ + public void setActive(final boolean b) { + this.active = b; + this.repaintOnlyThisLabel(); + } + + /** + * Determines if this phase is the current phase (or not). + * + * @return boolean + */ + public boolean getActive() { + return this.active; + } + + /** Prevent label from repainting the whole screen. */ + public void repaintOnlyThisLabel() { + final Dimension d = PhaseLabel.this.getSize(); + repaint(0, 0, d.width, d.height); + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#paintComponent(java.awt.Graphics) + */ + @Override + public void paintComponent(final Graphics g) { + final int w = this.getWidth(); + final int h = this.getHeight(); + Color c; + + // Set color according to skip or active or hover state of label + if (this.hover) { + c = FSkin.getColor(FSkin.Colors.CLR_HOVER); + } else if (this.active && this.enabled) { + c = FSkin.getColor(FSkin.Colors.CLR_PHASE_ACTIVE_ENABLED); + } else if (!this.active && this.enabled) { + c = FSkin.getColor(FSkin.Colors.CLR_PHASE_INACTIVE_ENABLED); + } else if (this.active && !this.enabled) { + c = FSkin.getColor(FSkin.Colors.CLR_PHASE_ACTIVE_DISABLED); + } else { + c = FSkin.getColor(FSkin.Colors.CLR_PHASE_INACTIVE_DISABLED); + } + + // Center vertically and horizontally. Show border if active. + g.setColor(c); + g.fillRoundRect(1, 1, w - 2, h - 2, 5, 5); + super.paintComponent(g); + } +} \ No newline at end of file diff --git a/src/main/java/forge/gui/toolbox/special/package-info.java b/src/main/java/forge/gui/toolbox/special/package-info.java new file mode 100644 index 00000000000..5ff371ba1b2 --- /dev/null +++ b/src/main/java/forge/gui/toolbox/special/package-info.java @@ -0,0 +1,3 @@ +/** Views (as in model-view-controller) for Forge. */ +package forge.gui.toolbox.special; + diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java index 6fcc447e766..1fabec0f1e1 100644 --- a/src/main/java/forge/properties/ForgePreferences.java +++ b/src/main/java/forge/properties/ForgePreferences.java @@ -26,6 +26,7 @@ import forge.gui.home.EMenuItem; import forge.gui.match.VMatchUI; import forge.gui.match.nonsingleton.VField; import forge.gui.match.views.VDev; +import forge.gui.toolbox.special.PhaseIndicator; public class ForgePreferences extends PreferencesStore { /** @@ -151,7 +152,7 @@ public class ForgePreferences extends PreferencesStore { final List fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews(); // AI field is at index [1] - VField fvAi = fieldViews.get(1); + PhaseIndicator fvAi = fieldViews.get(1).getPhaseInidicator(); this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fvAi.getLblUpkeep().getEnabled())); this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fvAi.getLblDraw().getEnabled())); this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fvAi.getLblMain1().getEnabled())); @@ -166,7 +167,7 @@ public class ForgePreferences extends PreferencesStore { this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fvAi.getLblCleanup().getEnabled())); // Human field is at index [0] - VField fvHuman = fieldViews.get(0); + PhaseIndicator fvHuman = fieldViews.get(0).getPhaseInidicator(); this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fvHuman.getLblUpkeep().getEnabled())); this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fvHuman.getLblDraw().getEnabled())); this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fvHuman.getLblMain1().getEnabled())); @@ -197,7 +198,7 @@ public class ForgePreferences extends PreferencesStore { Preferences.UPLOAD_DRAFT = Constant.Runtime.NET_CONN && this.getPrefBoolean(FPref.UI_UPLOAD_DRAFT); // AI field is at index [0] - VField fvAi = fieldViews.get(1); + PhaseIndicator fvAi = fieldViews.get(1).getPhaseInidicator(); fvAi.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP)); fvAi.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW)); fvAi.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1)); @@ -212,7 +213,7 @@ public class ForgePreferences extends PreferencesStore { fvAi.getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP)); // Human field is at index [1] - VField fvHuman = fieldViews.get(0); + PhaseIndicator fvHuman = fieldViews.get(0).getPhaseInidicator(); fvHuman.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP)); fvHuman.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW)); fvHuman.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1)); diff --git a/src/main/java/forge/view/FView.java b/src/main/java/forge/view/FView.java index 23019b419e4..bba8f4a088f 100644 --- a/src/main/java/forge/view/FView.java +++ b/src/main/java/forge/view/FView.java @@ -45,6 +45,7 @@ import forge.gui.framework.SLayoutConstants; import forge.gui.home.VHomeUI; import forge.gui.match.TargetingOverlay; import forge.gui.match.VMatchUI; +import forge.gui.toolbox.CardFaceSymbols; import forge.gui.toolbox.FButton; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FOverlay; @@ -124,6 +125,9 @@ public enum FView { // Populate all drag tab components. this.cacheUIStates(); + // Does not use progress bar, due to be deprecated with battlefield refactoring. + CardFaceSymbols.loadImages(); + // Initialize actions on all drag tab components (which should // be realized / populated already). for (EDocID doc : EDocID.values()) { diff --git a/src/main/java/forge/view/arcane/CardPanelContainer.java b/src/main/java/forge/view/arcane/CardPanelContainer.java index ccadd9d16a4..f417f261d38 100644 --- a/src/main/java/forge/view/arcane/CardPanelContainer.java +++ b/src/main/java/forge/view/arcane/CardPanelContainer.java @@ -75,7 +75,6 @@ public abstract class CardPanelContainer extends JPanel { private int mouseDragOffsetX, mouseDragOffsetY; private int intialMouseDragX = -1, intialMouseDragY; private boolean dragEnabled; - private int zoneID; /** *

@@ -583,28 +582,6 @@ public abstract class CardPanelContainer extends JPanel { return (null == p || p != hoveredPanel) ? null : p.getGameCard(); } - /** - *

- * Getter for the field zoneID. - *

- * - * @return a int. - */ - public final int getZoneID() { - return this.zoneID; - } - - /** - *

- * Setter for the field zoneID. - *

- * - * @param zoneID - * a int. - */ - public final void setZoneID(final int zoneID) { - this.zoneID = zoneID; - } /** * Gets the card panels.