mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Phase inidicators arranged into a separate control
Moved special and more complex control like DeckChooser aside from the simpliest ones (like FButton or FLabel)
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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<Void> {
|
||||
private final FControl fc;
|
||||
@@ -56,7 +56,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
||||
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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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<CSubmenuQuestDecks> {
|
||||
return EDocID.HOME_QUESTDECKS;
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.toolbox.DeckLister} */
|
||||
/** @return {@link forge.gui.toolbox.special.DeckLister} */
|
||||
public DeckLister getLstDecks() {
|
||||
return this.lstDecks;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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<CSubmenuDraft> {
|
||||
return radSingle.isSelected();
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.toolbox.DeckLister} */
|
||||
/** @return {@link forge.gui.toolbox.special.DeckLister} */
|
||||
public DeckLister getLstDecks() {
|
||||
return lstDecks;
|
||||
}
|
||||
|
||||
@@ -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<CSubmenuSealed> {
|
||||
return this.btnStart;
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.toolbox.DeckLister} */
|
||||
/** @return {@link forge.gui.toolbox.special.DeckLister} */
|
||||
public DeckLister getLstDecks() {
|
||||
return lstDecks;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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<CField> {
|
||||
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<CField> {
|
||||
private FLabel lblPoison = getBuiltFLabel(FSkin.ZoneImages.ICO_POISON, "99", "Poison counters");
|
||||
private final List<Pair<FLabel, Byte>> manaLabels = new ArrayList<Pair<FLabel,Byte>>();
|
||||
|
||||
// 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<CField> {
|
||||
}
|
||||
});
|
||||
|
||||
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<CField> {
|
||||
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<CField> {
|
||||
|
||||
//========= 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("<html>Phase: Upkeep<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblUpkeep, constraints);
|
||||
|
||||
VField.this.lblDraw.setToolTipText("<html>Phase: Draw<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblDraw, constraints);
|
||||
|
||||
VField.this.lblMain1.setToolTipText("<html>Phase: Main 1<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblMain1, constraints);
|
||||
|
||||
VField.this.lblBeginCombat.setToolTipText("<html>Phase: Begin Combat<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblBeginCombat, constraints);
|
||||
|
||||
VField.this.lblDeclareAttackers.setToolTipText("<html>Phase: Declare Attackers<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblDeclareAttackers, constraints);
|
||||
|
||||
VField.this.lblDeclareBlockers.setToolTipText("<html>Phase: Declare Blockers<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblDeclareBlockers, constraints);
|
||||
|
||||
VField.this.lblFirstStrike.setToolTipText("<html>Phase: First Strike Damage<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblFirstStrike, constraints);
|
||||
|
||||
VField.this.lblCombatDamage.setToolTipText("<html>Phase: Combat Damage<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblCombatDamage, constraints);
|
||||
|
||||
VField.this.lblEndCombat.setToolTipText("<html>Phase: End Combat<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblEndCombat, constraints);
|
||||
|
||||
VField.this.lblMain2.setToolTipText("<html>Phase: Main 2<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblMain2, constraints);
|
||||
|
||||
VField.this.lblEndTurn.setToolTipText("<html>Phase: End Turn<br>Click to toggle.</html>");
|
||||
phaseArea.add(VField.this.lblEndTurn, constraints);
|
||||
|
||||
VField.this.lblCleanup.setToolTipText("<html>Phase: Cleanup<br>Click to toggle.</html>");
|
||||
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<CField> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package forge.gui.toolbox;
|
||||
package forge.gui.toolbox.special;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -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;
|
||||
191
src/main/java/forge/gui/toolbox/special/PhaseIndicator.java
Normal file
191
src/main/java/forge/gui/toolbox/special/PhaseIndicator.java
Normal file
@@ -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("<html>Phase: Upkeep<br>Click to toggle.</html>");
|
||||
this.add(lblUpkeep, constraints);
|
||||
|
||||
lblDraw.setToolTipText("<html>Phase: Draw<br>Click to toggle.</html>");
|
||||
this.add(lblDraw, constraints);
|
||||
|
||||
lblMain1.setToolTipText("<html>Phase: Main 1<br>Click to toggle.</html>");
|
||||
this.add(lblMain1, constraints);
|
||||
|
||||
lblBeginCombat.setToolTipText("<html>Phase: Begin Combat<br>Click to toggle.</html>");
|
||||
this.add(lblBeginCombat, constraints);
|
||||
|
||||
lblDeclareAttackers.setToolTipText("<html>Phase: Declare Attackers<br>Click to toggle.</html>");
|
||||
this.add(lblDeclareAttackers, constraints);
|
||||
|
||||
lblDeclareBlockers.setToolTipText("<html>Phase: Declare Blockers<br>Click to toggle.</html>");
|
||||
this.add(lblDeclareBlockers, constraints);
|
||||
|
||||
lblFirstStrike.setToolTipText("<html>Phase: First Strike Damage<br>Click to toggle.</html>");
|
||||
this.add(lblFirstStrike, constraints);
|
||||
|
||||
lblCombatDamage.setToolTipText("<html>Phase: Combat Damage<br>Click to toggle.</html>");
|
||||
this.add(lblCombatDamage, constraints);
|
||||
|
||||
lblEndCombat.setToolTipText("<html>Phase: End Combat<br>Click to toggle.</html>");
|
||||
this.add(lblEndCombat, constraints);
|
||||
|
||||
lblMain2.setToolTipText("<html>Phase: Main 2<br>Click to toggle.</html>");
|
||||
this.add(lblMain2, constraints);
|
||||
|
||||
lblEndTurn.setToolTipText("<html>Phase: End Turn<br>Click to toggle.</html>");
|
||||
this.add(lblEndTurn, constraints);
|
||||
|
||||
lblCleanup.setToolTipText("<html>Phase: Cleanup<br>Click to toggle.</html>");
|
||||
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;
|
||||
}
|
||||
}
|
||||
138
src/main/java/forge/gui/toolbox/special/PhaseLabel.java
Normal file
138
src/main/java/forge/gui/toolbox/special/PhaseLabel.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
/** Views (as in model-view-controller) for Forge. */
|
||||
package forge.gui.toolbox.special;
|
||||
|
||||
@@ -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<ForgePreferences.FPref> {
|
||||
/**
|
||||
@@ -151,7 +152,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
||||
final List<VField> 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<ForgePreferences.FPref> {
|
||||
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<ForgePreferences.FPref> {
|
||||
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<ForgePreferences.FPref> {
|
||||
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));
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -583,28 +582,6 @@ public abstract class CardPanelContainer extends JPanel {
|
||||
return (null == p || p != hoveredPanel) ? null : p.getGameCard();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Getter for the field <code>zoneID</code>.
|
||||
* </p>
|
||||
*
|
||||
* @return a int.
|
||||
*/
|
||||
public final int getZoneID() {
|
||||
return this.zoneID;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Setter for the field <code>zoneID</code>.
|
||||
* </p>
|
||||
*
|
||||
* @param zoneID
|
||||
* a int.
|
||||
*/
|
||||
public final void setZoneID(final int zoneID) {
|
||||
this.zoneID = zoneID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the card panels.
|
||||
|
||||
Reference in New Issue
Block a user