From 8758c2de36fd90394fffac44b0c8b703cf476511 Mon Sep 17 00:00:00 2001 From: Liam Speirs Date: Wed, 27 Apr 2016 14:43:40 -0400 Subject: [PATCH] Add tracking for number of artifacts in card lists. --- .../java/mage/client/cards/CardsList.form | 44 ++++++++++++++----- .../java/mage/client/cards/CardsList.java | 34 +++++++++++--- .../client/deckeditor/table/TableModel.java | 6 ++- .../table/UpdateCountsCallback.java | 7 ++- 4 files changed, 72 insertions(+), 19 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.form b/Mage.Client/src/main/java/mage/client/cards/CardsList.form index 38dc29ef031..2e3e1c73b18 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.form +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.form @@ -37,7 +37,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -68,6 +68,9 @@ + + + @@ -84,7 +87,9 @@ - + + + @@ -92,7 +97,7 @@ - + @@ -108,6 +113,7 @@ + @@ -127,7 +133,7 @@ - + @@ -145,7 +151,7 @@ - + @@ -163,7 +169,7 @@ - + @@ -181,7 +187,7 @@ - + @@ -199,7 +205,7 @@ - + @@ -217,7 +223,7 @@ - + @@ -318,6 +324,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index c6c06db6205..2258ffce199 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -211,7 +211,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar } }); - mainModel.setUpdateCountsCallback(new UpdateCountsCallback(lblCount, lblCreatureCount, lblLandCount, lblSorceryCount, lblInstantCount, lblEnchantmentCount)); + mainModel.setUpdateCountsCallback(new UpdateCountsCallback(lblCount, lblCreatureCount, lblLandCount, lblSorceryCount, lblInstantCount, lblEnchantmentCount, lblArtifactCount)); } // if you use the deck ediot to build a free deck, numbers can be set directly in deck and sideboard @@ -391,6 +391,8 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar int sorceryCount = 0; int instantCount = 0; int enchantmentCount = 0; + int artifactCount = 0; + for (CardView card : cards.values()) { if (card.getCardTypes().contains(CardType.LAND)) { landCount++; @@ -407,6 +409,9 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar if (card.getCardTypes().contains(CardType.ENCHANTMENT)) { enchantmentCount++; } + if (card.getCardTypes().contains(CardType.ARTIFACT)) { + artifactCount++; + } } int count = cards != null ? cards.size() : 0; @@ -416,6 +421,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar this.lblSorceryCount.setText(Integer.toString(sorceryCount)); this.lblInstantCount.setText(Integer.toString(instantCount)); this.lblEnchantmentCount.setText(Integer.toString(enchantmentCount)); + this.lblArtifactCount.setText(Integer.toString(artifactCount)); } private MageCard addCard(CardView card, BigCard bigCard, UUID gameId) { @@ -483,6 +489,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar cbSortBy = new javax.swing.JComboBox(); jToggleListView = new javax.swing.JToggleButton(); jToggleCardView = new javax.swing.JToggleButton(); + lblArtifactCount = new javax.swing.JLabel(); panelCardArea = new javax.swing.JScrollPane(); cardArea = new javax.swing.JLayeredPane(); @@ -612,6 +619,17 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar } }); + lblArtifactCount.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + lblArtifactCount.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_artifact.png"))); // NOI18N + lblArtifactCount.setText("999"); + lblArtifactCount.setToolTipText("Number of artifacts"); + lblArtifactCount.setVerticalAlignment(javax.swing.SwingConstants.TOP); + lblArtifactCount.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + lblArtifactCount.setFocusable(false); + lblArtifactCount.setInheritsPopupMenu(false); + lblArtifactCount.setRequestFocusEnabled(false); + lblArtifactCount.setVerifyInputWhenFocusTarget(false); + javax.swing.GroupLayout panelControlLayout = new javax.swing.GroupLayout(panelControl); panelControl.setLayout(panelControlLayout); panelControlLayout.setHorizontalGroup( @@ -628,7 +646,9 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar .addComponent(lblInstantCount) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblEnchantmentCount) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(4, 4, 4) + .addComponent(lblArtifactCount) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkPiles) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cbSortBy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -636,7 +656,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar .addComponent(jToggleListView, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jToggleCardView, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) + .addGap(0, 62, Short.MAX_VALUE)) ); panelControlLayout.setVerticalGroup( panelControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -649,7 +669,8 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar .addComponent(lblSorceryCount) .addComponent(lblInstantCount) .addComponent(lblEnchantmentCount) - .addComponent(chkPiles)) + .addComponent(chkPiles) + .addComponent(lblArtifactCount)) .addComponent(cbSortBy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jToggleListView, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jToggleCardView, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) @@ -668,7 +689,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar .addGroup(layout.createSequentialGroup() .addGap(1, 1, 1) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(panelControl, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(panelControl, javax.swing.GroupLayout.DEFAULT_SIZE, 703, Short.MAX_VALUE) .addComponent(panelCardArea))) ); layout.setVerticalGroup( @@ -676,7 +697,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar .addGroup(layout.createSequentialGroup() .addComponent(panelControl, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) - .addComponent(panelCardArea, javax.swing.GroupLayout.DEFAULT_SIZE, 330, Short.MAX_VALUE)) + .addComponent(panelCardArea, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)) ); }// //GEN-END:initComponents @@ -715,6 +736,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar private javax.swing.JCheckBox chkPiles; private javax.swing.JToggleButton jToggleCardView; private javax.swing.JToggleButton jToggleListView; + private javax.swing.JLabel lblArtifactCount; private javax.swing.JLabel lblCount; private javax.swing.JLabel lblCreatureCount; private javax.swing.JLabel lblEnchantmentCount; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java index b39fe0ca353..baa4cf5f857 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java @@ -123,6 +123,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid { int instantCount = 0; int sorceryCount = 0; int enchantmentCount = 0; + int artifactCount = 0; if (!merge) { this.clearCards(); for (CardView card : showCards.values()) { @@ -149,6 +150,9 @@ public class TableModel extends AbstractTableModel implements ICardGrid { if (card.getCardTypes().contains(CardType.ENCHANTMENT)) { enchantmentCount++; } + if (card.getCardTypes().contains(CardType.ARTIFACT)) { + artifactCount++; + } } } @@ -199,7 +203,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid { } if (updateCountsCallback != null) { - updateCountsCallback.update(cards.size(), creatureCount, landCount, sorceryCount, instantCount, enchantmentCount); + updateCountsCallback.update(cards.size(), creatureCount, landCount, sorceryCount, instantCount, enchantmentCount, artifactCount); } } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/UpdateCountsCallback.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/UpdateCountsCallback.java index 889af1b4b09..64889c892d2 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/UpdateCountsCallback.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/UpdateCountsCallback.java @@ -14,22 +14,25 @@ public class UpdateCountsCallback { private final javax.swing.JLabel lblSoerceryCount; private final javax.swing.JLabel lblInstantCount; private final javax.swing.JLabel lblEnchantmentCount; + private final javax.swing.JLabel lblArtifactCount; - public UpdateCountsCallback(JLabel count, JLabel creatures, JLabel lands, JLabel sorceries, JLabel instants, JLabel enchantments) { + public UpdateCountsCallback(JLabel count, JLabel creatures, JLabel lands, JLabel sorceries, JLabel instants, JLabel enchantments, JLabel artifacts) { this.lblCount = count; this.lblCreatureCount = creatures; this.lblLandCount = lands; this.lblSoerceryCount = sorceries; this.lblInstantCount = instants; this.lblEnchantmentCount = enchantments; + this.lblArtifactCount = artifacts; } - public void update(int count, int creatures, int lands, int sorceries, int instants, int enchantments) { + public void update(int count, int creatures, int lands, int sorceries, int instants, int enchantments, int artifacts) { this.lblCount.setText(Integer.toString(count)); this.lblCreatureCount.setText(Integer.toString(creatures)); this.lblLandCount.setText(Integer.toString(lands)); this.lblSoerceryCount.setText(Integer.toString(sorceries)); this.lblInstantCount.setText(Integer.toString(instants)); this.lblEnchantmentCount.setText(Integer.toString(enchantments)); + this.lblArtifactCount.setText(Integer.toString(artifacts)); } }