tests: render dialog - added options for player panel (active status, controller, selectable, small mode)

This commit is contained in:
Oleg Agafonov 2023-11-22 01:44:02 +04:00
parent c5bd8663d4
commit 7629e4bf7c
3 changed files with 229 additions and 51 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JInternalFrameFormInfo">
<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JInternalFrameFormInfo">
<Properties>
<Property name="resizable" type="boolean" value="true"/>
</Properties>
@ -83,7 +83,7 @@
<EmptySpace max="-2" attributes="0"/>
<Component id="panelCardIcons" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="panelBattlefield" max="32767" attributes="0"/>
<Component id="panelBattlefield" pref="399" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonCancel" min="-2" pref="30" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
@ -320,30 +320,106 @@
</Constraint>
</Constraints>
</Component>
<Container class="javax.swing.JPanel" name="panelPlayer">
<Properties>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[100, 386]"/>
</Property>
</Properties>
<Container class="javax.swing.JPanel" name="otherPanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="West"/>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="100" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="386" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="playerPanel">
<Properties>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[100, 10]"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
</Container>
<Container class="javax.swing.JPanel" name="playerOptions">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="North"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout">
<Property name="axis" type="int" value="1"/>
</Layout>
<SubComponents>
<Component class="javax.swing.JCheckBox" name="checkPlayerSmallMode">
<Properties>
<Property name="text" type="java.lang.String" value="Small mode"/>
</Properties>
<Events>
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="checkPlayerSmallModeItemStateChanged"/>
</Events>
</Component>
<Component class="javax.swing.JComboBox" name="comboPlayerStatus">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="3">
<StringItem index="0" value="Active"/>
<StringItem index="1" value="Inactive"/>
<StringItem index="2" value="Dead"/>
</StringArray>
</Property>
<Property name="toolTipText" type="java.lang.String" value=""/>
<Property name="alignmentX" type="float" value="0.0"/>
</Properties>
<Events>
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="comboPlayerStatusItemStateChanged"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JComboBox" name="comboPlayerController">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="2">
<StringItem index="0" value="me"/>
<StringItem index="1" value="opponent"/>
</StringArray>
</Property>
<Property name="alignmentX" type="float" value="0.0"/>
</Properties>
<Events>
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="comboPlayerControllerItemStateChanged"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JCheckBox" name="checkPlayerAsTarget">
<Properties>
<Property name="text" type="java.lang.String" value="As possible target"/>
</Properties>
<Events>
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="checkPlayerAsTargetItemStateChanged"/>
</Events>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
</SubComponents>
</Container>

View file

@ -98,8 +98,8 @@ public class TestCardRenderDialog extends MageDialog {
// init player panel
player = new PlayerPanelExt();
this.panelPlayer.setLayout(new BorderLayout(5, 5));
this.panelPlayer.add(player, BorderLayout.NORTH);
this.playerPanel.setLayout(new BorderLayout(5, 5));
this.playerPanel.add(player, BorderLayout.NORTH);
// render cards
reloadCardsAndPlayer();
@ -261,19 +261,58 @@ public class TestCardRenderDialog extends MageDialog {
// update PLAYER
boolean isMe = true;
boolean smallMode = false;
// active status (it's already reset to default, e.g. active)
switch ((String) Objects.requireNonNull(comboPlayerStatus.getSelectedItem())) {
case "Active":
this.game.getState().setActivePlayerId(playerYou.getId());
break;
case "Inactive":
this.game.getState().setActivePlayerId(playerOpponent.getId());
break;
case "Dead":
playerYou.leave();
this.game.getState().setActivePlayerId(playerOpponent.getId());
break;
default:
throw new IllegalArgumentException("Unknown control type");
}
// control type
boolean isMe;
UUID controlledId;
switch ((String) Objects.requireNonNull(comboPlayerController.getSelectedItem())) {
case "me":
isMe = true;
controlledId = playerYou.getId();
break;
case "opponent":
isMe = false;
controlledId = playerOpponent.getId();
break;
default:
throw new IllegalArgumentException("Unknown control type");
}
// size mode
boolean smallMode = checkPlayerSmallMode.isSelected();
// possible target
Set<UUID> possibleTargets = null;
if (checkPlayerAsTarget.isSelected()) {
possibleTargets = new LinkedHashSet<>();
possibleTargets.add(playerYou.getId());
}
this.player.cleanUp();
this.player.changeGUISize();
GameView gameView = new GameView(this.game.getState(), this.game, playerYou.getId(), null);
GameView gameView = new GameView(this.game.getState(), this.game, controlledId, 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);
this.player.init(this.game.getId(), playerYou.getId(), isMe, this.bigCard, 0);
this.player.update(gameView, currentPlayerView, possibleTargets);
PlayAreaPanel.sizePlayerPanel(this.player, isMe, smallMode);
// update CARDS
@ -504,7 +543,13 @@ public class TestCardRenderDialog extends MageDialog {
comboCardColor = new javax.swing.JComboBox<>();
panelBattlefield = new javax.swing.JPanel();
cardsPanel = new mage.client.cards.CardArea();
panelPlayer = new javax.swing.JPanel();
otherPanel = new javax.swing.JPanel();
playerPanel = new javax.swing.JPanel();
playerOptions = new javax.swing.JPanel();
checkPlayerSmallMode = new javax.swing.JCheckBox();
comboPlayerStatus = new javax.swing.JComboBox<>();
comboPlayerController = new javax.swing.JComboBox<>();
checkPlayerAsTarget = new javax.swing.JCheckBox();
setResizable(true);
@ -642,20 +687,63 @@ 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));
otherPanel.setLayout(new java.awt.BorderLayout());
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)
playerPanel.setPreferredSize(new java.awt.Dimension(100, 10));
javax.swing.GroupLayout playerPanelLayout = new javax.swing.GroupLayout(playerPanel);
playerPanel.setLayout(playerPanelLayout);
playerPanelLayout.setHorizontalGroup(
playerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
panelPlayerLayout.setVerticalGroup(
panelPlayerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 386, Short.MAX_VALUE)
playerPanelLayout.setVerticalGroup(
playerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
panelBattlefield.add(panelPlayer, java.awt.BorderLayout.WEST);
otherPanel.add(playerPanel, java.awt.BorderLayout.CENTER);
playerOptions.setLayout(new javax.swing.BoxLayout(playerOptions, javax.swing.BoxLayout.Y_AXIS));
checkPlayerSmallMode.setText("Small mode");
checkPlayerSmallMode.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
checkPlayerSmallModeItemStateChanged(evt);
}
});
playerOptions.add(checkPlayerSmallMode);
comboPlayerStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Active", "Inactive", "Dead" }));
comboPlayerStatus.setToolTipText("");
comboPlayerStatus.setAlignmentX(0.0F);
comboPlayerStatus.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
comboPlayerStatusItemStateChanged(evt);
}
});
playerOptions.add(comboPlayerStatus);
comboPlayerController.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "me", "opponent" }));
comboPlayerController.setAlignmentX(0.0F);
comboPlayerController.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
comboPlayerControllerItemStateChanged(evt);
}
});
playerOptions.add(comboPlayerController);
checkPlayerAsTarget.setText("As possible target");
checkPlayerAsTarget.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
checkPlayerAsTargetItemStateChanged(evt);
}
});
playerOptions.add(checkPlayerAsTarget);
otherPanel.add(playerOptions, java.awt.BorderLayout.NORTH);
panelBattlefield.add(otherPanel, java.awt.BorderLayout.WEST);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
@ -713,7 +801,7 @@ public class TestCardRenderDialog extends MageDialog {
.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)
.addComponent(panelBattlefield, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
@ -780,14 +868,34 @@ public class TestCardRenderDialog extends MageDialog {
}
}//GEN-LAST:event_comboCardColorItemStateChanged
private void comboPlayerStatusItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboPlayerStatusItemStateChanged
reloadCardsAndPlayer();
}//GEN-LAST:event_comboPlayerStatusItemStateChanged
private void comboPlayerControllerItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboPlayerControllerItemStateChanged
reloadCardsAndPlayer();
}//GEN-LAST:event_comboPlayerControllerItemStateChanged
private void checkPlayerSmallModeItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_checkPlayerSmallModeItemStateChanged
reloadCardsAndPlayer();
}//GEN-LAST:event_checkPlayerSmallModeItemStateChanged
private void checkPlayerAsTargetItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_checkPlayerAsTargetItemStateChanged
reloadCardsAndPlayer();
}//GEN-LAST:event_checkPlayerAsTargetItemStateChanged
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonCancel;
private javax.swing.JButton buttonReloadCards;
private mage.client.cards.CardArea cardsPanel;
private javax.swing.JCheckBox checkBoxGenerateManyCards;
private javax.swing.JCheckBox checkPlayerAsTarget;
private javax.swing.JCheckBox checkPlayerSmallMode;
private javax.swing.JComboBox<String> comboCardColor;
private javax.swing.JComboBox<String> comboCardIconsOrder;
private javax.swing.JComboBox<String> comboCardIconsPosition;
private javax.swing.JComboBox<String> comboPlayerController;
private javax.swing.JComboBox<String> comboPlayerStatus;
private javax.swing.JComboBox<String> comboRenderMode;
private javax.swing.JComboBox<String> comboTheme;
private javax.swing.JLabel labelCardColor;
@ -798,9 +906,11 @@ public class TestCardRenderDialog extends MageDialog {
private javax.swing.JLabel labelRenderMode;
private javax.swing.JLabel labelSize;
private javax.swing.JLabel labelTheme;
private javax.swing.JPanel otherPanel;
private javax.swing.JPanel panelBattlefield;
private javax.swing.JPanel panelCardIcons;
private javax.swing.JPanel panelPlayer;
private javax.swing.JPanel playerOptions;
private javax.swing.JPanel playerPanel;
private javax.swing.JSlider sliderSize;
private javax.swing.JSpinner spinnerCardIconsAdditionalAmount;
private javax.swing.JSpinner spinnerCardIconsMaxVisible;

View file

@ -62,9 +62,6 @@ public class PlayerPanelExt extends javax.swing.JPanel {
private static final Border RED_BORDER = new LineBorder(Color.red, 2);
private static final Border YELLOW_BORDER = new LineBorder(Color.yellow, 3);
private static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(0, 0, 0, 0);
private final Color inactiveBackgroundColor;
private final Color activeBackgroundColor;
private final Color deadBackgroundColor;
private final Color activeValueColor = new Color(244, 9, 47);
private final Font fontValuesZero = this.getFont().deriveFont(Font.PLAIN);
@ -84,11 +81,6 @@ public class PlayerPanelExt extends javax.swing.JPanel {
setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
initComponents();
setGUISize();
ThemeType currentTheme = PreferencesDialog.getCurrentTheme();
inactiveBackgroundColor = currentTheme.getPlayerPanel_inactiveBackgroundColor();
activeBackgroundColor = currentTheme.getPlayerPanel_activeBackgroundColor();
deadBackgroundColor = currentTheme.getPlayerPanel_deadBackgroundColor();
}
public void init(UUID gameId, UUID playerId, boolean controlled, BigCard bigCard, int priorityTime) {
@ -370,15 +362,15 @@ public class PlayerPanelExt extends javax.swing.JPanel {
}
private void resetBackgroundColor() {
panelBackground.setBackgroundColor(inactiveBackgroundColor);
panelBackground.setBackgroundColor(PreferencesDialog.getCurrentTheme().getPlayerPanel_inactiveBackgroundColor());
}
private void setGreenBackgroundColor() {
panelBackground.setBackgroundColor(activeBackgroundColor);
panelBackground.setBackgroundColor(PreferencesDialog.getCurrentTheme().getPlayerPanel_activeBackgroundColor());
}
private void setDeadBackgroundColor() {
panelBackground.setBackgroundColor(deadBackgroundColor);
panelBackground.setBackgroundColor(PreferencesDialog.getCurrentTheme().getPlayerPanel_deadBackgroundColor());
}
/**