diff --git a/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.form b/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.form
index e537a32cd50..0858d657bd8 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.form
+++ b/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.form
@@ -1,6 +1,9 @@
diff --git a/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.java b/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.java
index 7eaa20782c5..30cfc7bb9a2 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/TestCardRenderDialog.java
@@ -12,6 +12,8 @@ import mage.cards.repository.ExpansionInfo;
import mage.cards.repository.ExpansionRepository;
import mage.client.MageFrame;
import mage.client.cards.BigCard;
+import mage.client.game.PlayAreaPanel;
+import mage.client.game.PlayerPanelExt;
import mage.client.themes.ThemeType;
import mage.client.util.ClientEventType;
import mage.client.util.Event;
@@ -21,11 +23,12 @@ import mage.constants.MultiplayerAttackOption;
import mage.constants.RangeOfInfluence;
import mage.constants.Zone;
import mage.game.Game;
+import mage.game.GameException;
import mage.game.GameImpl;
import mage.game.command.Dungeon;
import mage.game.command.Emblem;
import mage.game.command.Plane;
-import mage.game.match.MatchType;
+import mage.game.match.*;
import mage.game.mulligan.Mulligan;
import mage.game.mulligan.MulliganType;
import mage.game.permanent.PermanentCard;
@@ -58,9 +61,13 @@ public class TestCardRenderDialog extends MageDialog {
private static final Logger logger = Logger.getLogger(TestCardRenderDialog.class);
float cardSizeMod = 1.0f;
+ private Match match = null;
private Game game = null;
+ private BigCard bigCard = null;
Listener cardListener = null;
+ private PlayerPanelExt player = null; // original form lost, so can add only runtime
+
public TestCardRenderDialog() {
initComponents();
}
@@ -89,8 +96,13 @@ public class TestCardRenderDialog extends MageDialog {
}, AWTEvent.MOUSE_EVENT_MASK);
*/
+ // init player panel
+ player = new PlayerPanelExt();
+ this.panelPlayer.setLayout(new BorderLayout(5, 5));
+ this.panelPlayer.add(player, BorderLayout.NORTH);
+
// render cards
- reloadCards();
+ reloadCardsAndPlayer();
// windows settings
MageFrame.getDesktop().remove(this);
@@ -230,10 +242,42 @@ public class TestCardRenderDialog extends MageDialog {
return cardView;
}
- private void reloadCards() {
+ private void reloadCardsAndPlayer() {
// apply selected theme (warning, it will be applied for all app, so can be bugged in other dialogs - but it's ok for debug)
PreferencesDialog.setCurrentTheme((ThemeType) comboTheme.getSelectedItem());
+ // prepare fake game and players without real match
+ // it's a workaround with minimum code and data init
+ this.match = new TestMatch();
+ this.game = new TestGame(MultiplayerAttackOption.MULTIPLE, RangeOfInfluence.ALL, MulliganType.GAME_DEFAULT.getMulligan(0), 20, 7);
+ Deck deck = new Deck();
+ Player playerYou = new StubPlayer("player1", RangeOfInfluence.ALL);
+ this.match.addPlayer(playerYou, deck);
+ this.game.addPlayer(playerYou, deck);
+ Player playerOpponent = new StubPlayer("player2", RangeOfInfluence.ALL);
+ this.game.addPlayer(playerOpponent, deck);
+ this.match.addPlayer(playerOpponent, deck);
+ this.bigCard = new BigCard();
+
+ // update PLAYER
+
+ boolean isMe = true;
+ boolean smallMode = false;
+
+ this.player.cleanUp();
+ this.player.changeGUISize();
+ GameView gameView = new GameView(this.game.getState(), this.game, playerYou.getId(), null);
+ PlayerView currentPlayerView = gameView.getPlayers()
+ .stream()
+ .filter(p -> p.getPlayerId().equals(playerYou.getId()))
+ .findFirst()
+ .orElse(null);
+ this.player.init(this.game.getId(), playerYou.getId(), true, this.bigCard, 0);
+ this.player.update(gameView, currentPlayerView, null);
+ PlayAreaPanel.sizePlayerPanel(this.player, isMe, smallMode);
+
+ // update CARDS
+
cardsPanel.cleanUp();
cardsPanel.setCustomRenderMode(comboRenderMode.getSelectedIndex());
cardsPanel.setCustomNeedFullPermanentRender(true); // enable full battlefield render mode (it was bugged in test dialog so was disabled in old days, not it works fine)
@@ -288,13 +332,6 @@ public class TestCardRenderDialog extends MageDialog {
cardsPanel.addCardEventListener(this.cardListener);
}
- game = new TestGame(MultiplayerAttackOption.MULTIPLE, RangeOfInfluence.ALL, MulliganType.GAME_DEFAULT.getMulligan(0), 20, 7);
- Deck deck = new Deck();
- Player playerYou = new StubPlayer("player1", RangeOfInfluence.ALL);
- game.addPlayer(playerYou, deck);
- Player playerOpponent = new StubPlayer("player2", RangeOfInfluence.ALL);
- game.addPlayer(playerOpponent, deck);
-
List additionalIcons = Collections.singletonList(new SimpleStaticAbility(Zone.ALL, null));
for (int i = 0; i < needAdditionalIcons; i++) {
String text = "";
@@ -387,9 +424,8 @@ public class TestCardRenderDialog extends MageDialog {
}
}
- BigCard big = new BigCard();
CardsView view = new CardsView(cardViews);
- cardsPanel.loadCards(view, big, game.getId());
+ cardsPanel.loadCards(view, this.bigCard, this.game.getId());
}
private void handleCardClick(Event event) {
@@ -447,7 +483,6 @@ public class TestCardRenderDialog extends MageDialog {
private void initComponents() {
buttonCancel = new javax.swing.JButton();
- cardsPanel = new mage.client.cards.CardArea();
buttonReloadCards = new javax.swing.JButton();
labelRenderMode = new javax.swing.JLabel();
comboRenderMode = new javax.swing.JComboBox<>();
@@ -467,6 +502,11 @@ public class TestCardRenderDialog extends MageDialog {
comboTheme = new javax.swing.JComboBox<>();
labelCardColor = new javax.swing.JLabel();
comboCardColor = new javax.swing.JComboBox<>();
+ panelBattlefield = new javax.swing.JPanel();
+ cardsPanel = new mage.client.cards.CardArea();
+ panelPlayer = new javax.swing.JPanel();
+
+ setResizable(true);
buttonCancel.setText("Close");
buttonCancel.addActionListener(new java.awt.event.ActionListener() {
@@ -484,7 +524,7 @@ public class TestCardRenderDialog extends MageDialog {
labelRenderMode.setText("Render mode:");
- comboRenderMode.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]{"MTGO", "Image"}));
+ comboRenderMode.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "MTGO", "Image" }));
comboRenderMode.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
comboRenderModeItemStateChanged(evt);
@@ -508,7 +548,7 @@ public class TestCardRenderDialog extends MageDialog {
labelCardIconsPosition.setText("Card icons position:");
- comboCardIconsPosition.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]{"TOP", "LEFT", "RIGHT", "BOTTOM", "CORNER_TOP_LEFT", "CORNER_TOP_RIGHT", "CORNER_BOTTOM_LEFT", "CORNER_BOTTOM_RIGHT"}));
+ comboCardIconsPosition.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "TOP", "LEFT", "RIGHT", "BOTTOM", "CORNER_TOP_LEFT", "CORNER_TOP_RIGHT", "CORNER_BOTTOM_LEFT", "CORNER_BOTTOM_RIGHT" }));
comboCardIconsPosition.setSelectedIndex(1);
comboCardIconsPosition.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -536,7 +576,7 @@ public class TestCardRenderDialog extends MageDialog {
labelCardIconsOrder.setText("Order:");
- comboCardIconsOrder.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]{"START", "CENTER", "END"}));
+ comboCardIconsOrder.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "START", "CENTER", "END" }));
comboCardIconsOrder.setSelectedIndex(2);
comboCardIconsOrder.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -547,41 +587,41 @@ public class TestCardRenderDialog extends MageDialog {
javax.swing.GroupLayout panelCardIconsLayout = new javax.swing.GroupLayout(panelCardIcons);
panelCardIcons.setLayout(panelCardIconsLayout);
panelCardIconsLayout.setHorizontalGroup(
- panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelCardIconsLayout.createSequentialGroup()
- .addComponent(labelCardIconsPosition)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(comboCardIconsPosition, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelCardIconsOrder)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(comboCardIconsOrder, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelCardIconsMaxVisible)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spinnerCardIconsMaxVisible, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelCardIconsAdditionalAmount)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spinnerCardIconsAdditionalAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(305, Short.MAX_VALUE))
+ panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelCardIconsLayout.createSequentialGroup()
+ .addComponent(labelCardIconsPosition)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(comboCardIconsPosition, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelCardIconsOrder)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(comboCardIconsOrder, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelCardIconsMaxVisible)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spinnerCardIconsMaxVisible, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelCardIconsAdditionalAmount)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spinnerCardIconsAdditionalAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelCardIconsLayout.setVerticalGroup(
- panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(comboCardIconsPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelCardIconsPosition)
- .addComponent(labelCardIconsMaxVisible)
- .addComponent(spinnerCardIconsMaxVisible, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelCardIconsAdditionalAmount)
- .addComponent(spinnerCardIconsAdditionalAmount, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelCardIconsOrder)
- .addComponent(comboCardIconsOrder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelCardIconsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(comboCardIconsPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelCardIconsPosition)
+ .addComponent(labelCardIconsMaxVisible)
+ .addComponent(spinnerCardIconsMaxVisible, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelCardIconsAdditionalAmount)
+ .addComponent(spinnerCardIconsAdditionalAmount, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelCardIconsOrder)
+ .addComponent(comboCardIconsOrder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
labelTheme.setText("Theme:");
- comboTheme.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]{"loading..."}));
+ comboTheme.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "loading..." }));
comboTheme.setToolTipText("WARNING, selected theme will be applied to full app, not render dialog only");
comboTheme.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -591,7 +631,7 @@ public class TestCardRenderDialog extends MageDialog {
labelCardColor.setText("Card color:");
- comboCardColor.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]{"loading..."}));
+ comboCardColor.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "loading..." }));
comboCardColor.setToolTipText("");
comboCardColor.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -599,65 +639,84 @@ public class TestCardRenderDialog extends MageDialog {
}
});
+ panelBattlefield.setLayout(new java.awt.BorderLayout());
+ panelBattlefield.add(cardsPanel, java.awt.BorderLayout.CENTER);
+
+ panelPlayer.setPreferredSize(new java.awt.Dimension(100, 386));
+
+ javax.swing.GroupLayout panelPlayerLayout = new javax.swing.GroupLayout(panelPlayer);
+ panelPlayer.setLayout(panelPlayerLayout);
+ panelPlayerLayout.setHorizontalGroup(
+ panelPlayerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 100, Short.MAX_VALUE)
+ );
+ panelPlayerLayout.setVerticalGroup(
+ panelPlayerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 386, Short.MAX_VALUE)
+ );
+
+ panelBattlefield.add(panelPlayer, java.awt.BorderLayout.WEST);
+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(panelCardIcons, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(cardsPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(buttonReloadCards)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelRenderMode)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(comboRenderMode, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelTheme)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelCardColor)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(comboCardColor, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(labelSize)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(sliderSize, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(checkBoxGenerateManyCards)
- .addGap(0, 0, Short.MAX_VALUE)))
- .addContainerGap())
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(panelCardIcons, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(buttonReloadCards)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelRenderMode)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(comboRenderMode, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelTheme)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelCardColor)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(comboCardColor, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(labelSize)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(sliderSize, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(checkBoxGenerateManyCards)
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(panelBattlefield, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
+ .addContainerGap())
);
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(buttonReloadCards)
- .addComponent(labelRenderMode)
- .addComponent(comboRenderMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelSize)
- .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelTheme)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(comboCardColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelCardColor)))
- .addComponent(sliderSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(checkBoxGenerateManyCards))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(panelCardIcons, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cardsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 405, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(comboCardColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelCardColor))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(buttonReloadCards)
+ .addComponent(labelRenderMode)
+ .addComponent(comboRenderMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelSize)
+ .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelTheme)))
+ .addComponent(sliderSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(checkBoxGenerateManyCards))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(panelCardIcons, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(panelBattlefield, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
);
pack();
@@ -668,13 +727,13 @@ public class TestCardRenderDialog extends MageDialog {
}//GEN-LAST:event_buttonCancelActionPerformed
private void buttonReloadCardsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReloadCardsActionPerformed
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_buttonReloadCardsActionPerformed
private void comboRenderModeItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboRenderModeItemStateChanged
// render modes are loading on show dialog, so must ignore change event on startup
if (this.isVisible()) {
- reloadCards();
+ reloadCardsAndPlayer();
}
}//GEN-LAST:event_comboRenderModeItemStateChanged
@@ -684,40 +743,40 @@ public class TestCardRenderDialog extends MageDialog {
float sliderFrac = ((float) (sliderSize.getValue() - 50)) / 50;
// Convert to frac in [0.5, 2.0] exponentially
cardSizeMod = (float) Math.pow(2, sliderFrac);
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_sliderSizeStateChanged
private void checkBoxGenerateManyCardsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_checkBoxGenerateManyCardsItemStateChanged
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_checkBoxGenerateManyCardsItemStateChanged
private void comboCardIconsPositionItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboCardIconsPositionItemStateChanged
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_comboCardIconsPositionItemStateChanged
private void spinnerCardIconsMaxVisibleStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerCardIconsMaxVisibleStateChanged
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_spinnerCardIconsMaxVisibleStateChanged
private void spinnerCardIconsAdditionalAmountStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerCardIconsAdditionalAmountStateChanged
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_spinnerCardIconsAdditionalAmountStateChanged
private void comboCardIconsOrderItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboCardIconsOrderItemStateChanged
- reloadCards();
+ reloadCardsAndPlayer();
}//GEN-LAST:event_comboCardIconsOrderItemStateChanged
private void comboThemeItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboThemeItemStateChanged
// themes list are loading on show dialog, so must ignore change event on startup
if (this.isVisible()) {
- reloadCards();
+ reloadCardsAndPlayer();
}
}//GEN-LAST:event_comboThemeItemStateChanged
private void comboCardColorItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboCardColorItemStateChanged
// card icon colors list are loading on show dialog, so must ignore change event on startup
if (this.isVisible()) {
- reloadCards();
+ reloadCardsAndPlayer();
}
}//GEN-LAST:event_comboCardColorItemStateChanged
@@ -739,7 +798,9 @@ public class TestCardRenderDialog extends MageDialog {
private javax.swing.JLabel labelRenderMode;
private javax.swing.JLabel labelSize;
private javax.swing.JLabel labelTheme;
+ private javax.swing.JPanel panelBattlefield;
private javax.swing.JPanel panelCardIcons;
+ private javax.swing.JPanel panelPlayer;
private javax.swing.JSlider sliderSize;
private javax.swing.JSpinner spinnerCardIconsAdditionalAmount;
private javax.swing.JSpinner spinnerCardIconsMaxVisible;
@@ -797,3 +858,15 @@ class TestGameType extends MatchType {
return new TestGameType(this);
}
}
+
+class TestMatch extends MatchImpl {
+
+ public TestMatch() {
+ super(new MatchOptions("fake match", "fake game type", true, 2));
+ }
+
+ @Override
+ public void startGame() throws GameException {
+ throw new IllegalStateException("Can't start fake match");
+ }
+}
diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
index ffdef851a25..9fe11ec2e5f 100644
--- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
@@ -454,7 +454,7 @@ public final class GamePanel extends javax.swing.JPanel {
pnlShortCuts.revalidate();
pnlShortCuts.repaint();
for (PlayAreaPanel p : players.values()) {
- p.sizePlayer(smallMode);
+ p.setSizeMode(smallMode);
}
}
} else if (smallMode) {
@@ -466,7 +466,7 @@ public final class GamePanel extends javax.swing.JPanel {
pnlShortCuts.revalidate();
pnlShortCuts.repaint();
for (PlayAreaPanel p : players.values()) {
- p.sizePlayer(smallMode);
+ p.setSizeMode(smallMode);
}
}
@@ -691,7 +691,7 @@ public final class GamePanel extends javax.swing.JPanel {
}
}
for (PlayAreaPanel p : players.values()) {
- p.sizePlayer(smallMode);
+ p.setSizeMode(smallMode);
}
GridBagConstraints panelC = new GridBagConstraints();
diff --git a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
index 4a9f4a411f4..fde259e3271 100644
--- a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java
@@ -562,18 +562,28 @@ public class PlayAreaPanel extends javax.swing.JPanel {
this.setLayout(layout);
}
- public void sizePlayer(boolean smallMode) {
- this.playerPanel.sizePlayerPanel(smallMode);
+ public void setSizeMode(boolean smallMode) {
this.smallMode = smallMode;
- int extraForMe = this.isMe ? PANEL_HEIGHT_EXTRA_FOR_ME : 0;
+ sizePlayerPanel(this.playerPanel, this.isMe, this.smallMode);
+ sizeBattlefieldPanel(this.battlefieldPanel, this.isMe, this.smallMode);
+ }
+
+ public static void sizePlayerPanel(PlayerPanelExt playerPanel, boolean isMe, boolean smallMode) {
+ playerPanel.sizePlayerPanel(smallMode);
+ int extraForMe = isMe ? PANEL_HEIGHT_EXTRA_FOR_ME : 0;
if (smallMode) {
- this.playerPanel.setPreferredSize(new Dimension(92, PANEL_HEIGHT_SMALL + extraForMe));
- //this.jScrollPane1.setPreferredSize(new Dimension(160, 160));
- this.battlefieldPanel.setPreferredSize(new Dimension(160, PANEL_HEIGHT_SMALL + extraForMe));
+ playerPanel.setPreferredSize(new Dimension(92, PANEL_HEIGHT_SMALL + extraForMe));
} else {
- this.playerPanel.setPreferredSize(new Dimension(92, PANEL_HEIGHT + extraForMe));
- //this.jScrollPane1.setPreferredSize(new Dimension(160, 212));
- this.battlefieldPanel.setPreferredSize(new Dimension(160, PANEL_HEIGHT + extraForMe));
+ playerPanel.setPreferredSize(new Dimension(92, PANEL_HEIGHT + extraForMe));
+ }
+ }
+
+ public static void sizeBattlefieldPanel(BattlefieldPanel battlefieldPanel, boolean isMe, boolean smallMode) {
+ int extraForMe = isMe ? PANEL_HEIGHT_EXTRA_FOR_ME : 0;
+ if (smallMode) {
+ battlefieldPanel.setPreferredSize(new Dimension(160, PANEL_HEIGHT_SMALL + extraForMe));
+ } else {
+ battlefieldPanel.setPreferredSize(new Dimension(160, PANEL_HEIGHT + extraForMe));
}
}
diff --git a/Mage.Client/src/main/java/mage/client/themes/ThemeType.java b/Mage.Client/src/main/java/mage/client/themes/ThemeType.java
index 5122baf1ab7..c5e836f9e26 100644
--- a/Mage.Client/src/main/java/mage/client/themes/ThemeType.java
+++ b/Mage.Client/src/main/java/mage/client/themes/ThemeType.java
@@ -67,15 +67,15 @@ public enum ThemeType {
true,
true,
false,
- new Color(246, 136, 158),
- new Color(243, 233, 164),
- new Color(204, 236, 201),
- new Color(117, 174, 238),
- new Color(106, 0, 255),
- new Color(192, 166, 232),
- new Color(243, 233, 164),
- new Color(204, 236, 201),
- new Color(106, 0, 255),
+ new Color(246, 136, 158), // nimbusBlueGrey
+ new Color(243, 233, 164), // control
+ new Color(204, 236, 201), // nimbusLightBackground
+ new Color(117, 174, 238), // info
+ new Color(106, 0, 255), // nimbusBase
+ new Color(192, 166, 232), // mageToolbar
+ new Color(243, 233, 164), // playerPanel_inactiveBackgroundColor
+ new Color(204, 236, 201), // playerPanel_activeBackgroundColor
+ new Color(106, 0, 255), // playerPanel_deadBackgroundColor
// card icons
new Color(246, 136, 158),
Color.black,
@@ -96,9 +96,9 @@ public enum ThemeType {
new Color(219, 197, 182), // info
new Color(97, 27, 0), // nimbusBase
new Color(219, 193, 172), // mageToolbar
- new Color(219, 193, 172),
- new Color(204, 236, 201),
- new Color(99, 72, 50, 255),
+ new Color(219, 193, 172), // playerPanel_inactiveBackgroundColor
+ new Color(204, 236, 201), // playerPanel_activeBackgroundColor
+ new Color(99, 72, 50, 255), // playerPanel_deadBackgroundColor
// card icons
new Color(219, 193, 172),
Color.black,
@@ -119,9 +119,9 @@ public enum ThemeType {
new Color(182, 200, 219), // info
new Color(0, 78, 97), // nimbusBase
new Color(172, 195, 219), // mageToolbar
- new Color(172, 195, 219),
- new Color(204, 236, 201),
- new Color(50, 68, 99, 255),
+ new Color(172, 195, 219), // playerPanel_inactiveBackgroundColor
+ new Color(204, 236, 201), // playerPanel_inactiveBackgroundColor
+ new Color(50, 68, 99, 255), // playerPanel_deadBackgroundColor
// card icons
new Color(172, 197, 219),
Color.black,
@@ -136,7 +136,7 @@ public enum ThemeType {
private final boolean hasSkipButtons;
private final boolean hasPhaseIcons;
private final boolean hasWinLossImages;
- private final boolean shortcutsVisibleForSkipButtons; // Whether or not to display skip button shortcuts
+ private final boolean shortcutsVisibleForSkipButtons; // Whether to display skip button shortcuts
private final Color nimbusBlueGrey; // buttons, scrollbar background, disabled inputs
private final Color control; // window bg
private final Color nimbusLightBackground; // inputs, table rows