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 @@
+ + + @@ -19,11 +22,10 @@ - + - @@ -50,6 +52,7 @@ + @@ -60,17 +63,19 @@ - - - - - - - - + + + + + + + + + + @@ -78,7 +83,7 @@ - + @@ -95,8 +100,6 @@ - - @@ -165,7 +168,7 @@ - + @@ -306,5 +309,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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