Remove buttons in DeckEditor

This commit is contained in:
magenoxx 2012-05-25 21:22:22 +04:00
parent fb6d7eac1f
commit 6bd53a856f
7 changed files with 143 additions and 54 deletions

View file

@ -28,13 +28,14 @@
package mage.client.cards;
import java.io.Serializable;
import java.util.UUID;
import mage.client.util.Event;
import mage.client.util.EventDispatcher;
import mage.client.util.EventSource;
import mage.client.util.Listener;
import java.io.Serializable;
import java.util.UUID;
/**
*
* @author BetaSteward_at_googlemail.com
@ -56,6 +57,14 @@ public class CardEventSource implements EventSource<Event>, Serializable {
dispatcher.fireEvent(new Event(cardId, message));
}
public void removeFromMainEvent(String message) {
dispatcher.fireEvent(new Event(null, message));
}
public void removeFromSideboardEvent(String message) {
dispatcher.fireEvent(new Event(null, message));
}
@Override
public void clearListeners() {
dispatcher.clearListeners();

View file

@ -119,14 +119,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && !e.isConsumed()) {
e.consume();
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
}
handleDoubleClick();
}
}
});
@ -134,6 +127,17 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
mainModel.setUpdateCountsCallback(new UpdateCountsCallback(lblCount, lblCreatureCount, lblLandCount));
}
public void handleDoubleClick() {
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
}
}
public ICardGrid getMainModel() {
return mainModel;
}

View file

@ -163,12 +163,6 @@
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<SubComponents>
<Container class="mage.client.cards.CardGrid" name="cardGrid">
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JLayeredPaneSupportLayout"/>
</Container>
</SubComponents>
</Container>
<Container class="javax.swing.JToolBar" name="tbTypes">
<Properties>
@ -327,8 +321,12 @@
<Group type="102" alignment="0" attributes="0">
<Component id="jButtonAddToMain" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jButtonAddToSideboard" min="-2" max="-2" attributes="0"/>
<Component id="jButtonRemoveFromMain" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jButtonAddToSideboard" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
<Component id="jButtonRemoveFromSideboard" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jTextFieldSearch" min="-2" pref="112" max="-2" attributes="0"/>
@ -340,7 +338,7 @@
<Component id="cardCountLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="cardCount" min="-2" pref="48" max="-2" attributes="0"/>
<EmptySpace pref="165" max="32767" attributes="0"/>
<EmptySpace pref="186" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@ -348,13 +346,15 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" alignment="0" groupAlignment="3" attributes="0">
<Component id="jButtonAddToMain" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonAddToSideboard" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jTextFieldSearch" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonSearch" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonClean" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="cardCountLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="cardCount" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonRemoveFromMain" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonAddToSideboard" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jButtonRemoveFromSideboard" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@ -362,7 +362,8 @@
<SubComponents>
<Component class="javax.swing.JButton" name="jButtonAddToMain">
<Properties>
<Property name="text" type="java.lang.String" value="Add to Main"/>
<Property name="text" type="java.lang.String" value="+"/>
<Property name="toolTipText" type="java.lang.String" value="Add to Main"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonAddToMainActionPerformed"/>
@ -370,7 +371,8 @@
</Component>
<Component class="javax.swing.JButton" name="jButtonAddToSideboard">
<Properties>
<Property name="text" type="java.lang.String" value="Add to Sideboard"/>
<Property name="text" type="java.lang.String" value="+S"/>
<Property name="toolTipText" type="java.lang.String" value="Add to Sideboard"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonAddToSideboardActionPerformed"/>
@ -415,6 +417,24 @@
<Property name="AccessibleContext.accessibleName" type="java.lang.String" value="cardCount"/>
</AccessibilityProperties>
</Component>
<Component class="javax.swing.JButton" name="jButtonRemoveFromMain">
<Properties>
<Property name="text" type="java.lang.String" value="-"/>
<Property name="toolTipText" type="java.lang.String" value="Remove from Main"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonRemoveFromMainActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="jButtonRemoveFromSideboard">
<Properties>
<Property name="text" type="java.lang.String" value="-S"/>
<Property name="toolTipText" type="java.lang.String" value="Remove from Sideboard"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButtonRemoveFromSideboardActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
</SubComponents>

View file

@ -38,6 +38,7 @@ import mage.Constants.CardType;
import mage.cards.Card;
import mage.cards.ExpansionSet;
import mage.client.cards.BigCard;
import mage.client.cards.CardGrid;
import mage.client.cards.CardsStorage;
import mage.client.cards.ICardGrid;
import mage.client.constants.Constants.SortBy;
@ -75,6 +76,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
/** Creates new form CardSelector */
public CardSelector() {
initComponents();
cardGrid = new CardGrid();
makeTransparent();
initListViewComponents();
currentView = mainModel; // by default we use List View
@ -266,7 +268,6 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
btnBooster = new javax.swing.JButton();
btnClear = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
cardGrid = new mage.client.cards.CardGrid();
tbTypes = new javax.swing.JToolBar();
rdoLand = new javax.swing.JRadioButton();
rdoCreatures = new javax.swing.JRadioButton();
@ -288,6 +289,8 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
jButtonClean = new javax.swing.JButton();
cardCountLabel = new javax.swing.JLabel();
cardCount = new javax.swing.JLabel();
jButtonRemoveFromMain = new javax.swing.JButton();
jButtonRemoveFromSideboard = new javax.swing.JButton();
tbColor.setFloatable(false);
tbColor.setRollover(true);
@ -364,7 +367,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
});
tbColor.add(rdoColorless);
cbExpansionSet.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
cbExpansionSet.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}));
cbExpansionSet.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cbExpansionSetActionPerformed(evt);
@ -394,8 +397,6 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
});
tbColor.add(btnClear);
jScrollPane1.setViewportView(cardGrid);
tbTypes.setFloatable(false);
tbTypes.setRollover(true);
@ -494,7 +495,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
});
tbTypes.add(chkPiles);
cbSortBy.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
cbSortBy.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}));
cbSortBy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cbSortByActionPerformed(evt);
@ -528,14 +529,16 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
jPanel1.setOpaque(false);
jPanel1.setPreferredSize(new java.awt.Dimension(897, 35));
jButtonAddToMain.setText("Add to Main");
jButtonAddToMain.setText("+");
jButtonAddToMain.setToolTipText("Add to Main");
jButtonAddToMain.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToMainActionPerformed(evt);
}
});
jButtonAddToSideboard.setText("Add to Sideboard");
jButtonAddToSideboard.setText("+S");
jButtonAddToSideboard.setToolTipText("Add to Sideboard");
jButtonAddToSideboard.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToSideboardActionPerformed(evt);
@ -562,6 +565,22 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
cardCount.setText("0");
jButtonRemoveFromMain.setText("-");
jButtonRemoveFromMain.setToolTipText("Remove from Main");
jButtonRemoveFromMain.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonRemoveFromMainActionPerformed(evt);
}
});
jButtonRemoveFromSideboard.setText("-S");
jButtonRemoveFromSideboard.setToolTipText("Remove from Sideboard");
jButtonRemoveFromSideboard.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonRemoveFromSideboardActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
@ -569,8 +588,12 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jButtonAddToMain)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonAddToSideboard)
.addComponent(jButtonRemoveFromMain)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonAddToSideboard)
.addGap(5, 5, 5)
.addComponent(jButtonRemoveFromSideboard)
.addGap(18, 18, 18)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
@ -582,19 +605,21 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
.addComponent(cardCountLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cardCount, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(165, Short.MAX_VALUE))
.addContainerGap(186, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonAddToMain)
.addComponent(jButtonAddToSideboard)
.addComponent(jLabel1)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButtonSearch)
.addComponent(jButtonClean)
.addComponent(cardCountLabel)
.addComponent(cardCount))
.addComponent(cardCount)
.addComponent(jButtonRemoveFromMain)
.addComponent(jButtonAddToSideboard)
.addComponent(jButtonRemoveFromSideboard))
);
cardCountLabel.getAccessibleContext().setAccessibleName("cardCountLabel");
@ -801,6 +826,15 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
}
}//GEN-LAST:event_jButtonAddToSideboardActionPerformed
private void jButtonRemoveFromMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonRemoveFromMainActionPerformed
mainModel.removeFromMainEvent(0);
}//GEN-LAST:event_jButtonRemoveFromMainActionPerformed
private void jButtonRemoveFromSideboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonRemoveFromSideboardActionPerformed
mainModel.removeFromSideEvent(0);
}//GEN-LAST:event_jButtonRemoveFromSideboardActionPerformed
private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSearchActionPerformed
String name = jTextFieldSearch.getText().trim();
filter.setText(name);
@ -813,7 +847,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
filterCards();
}//GEN-LAST:event_jButtonCleanActionPerformed
public List<Integer> asList(final int[] is) {
public List<Integer> asList(final int[] is) {
List<Integer> list = new ArrayList<Integer>();
for (int i : is) list.add(i);
return list;
@ -837,13 +871,14 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
private javax.swing.JButton btnClear;
private javax.swing.JLabel cardCount;
private javax.swing.JLabel cardCountLabel;
private mage.client.cards.CardGrid cardGrid;
private javax.swing.JComboBox cbExpansionSet;
private javax.swing.JComboBox cbSortBy;
private javax.swing.JCheckBox chkPiles;
private javax.swing.JButton jButtonAddToMain;
private javax.swing.JButton jButtonAddToSideboard;
private javax.swing.JButton jButtonClean;
private javax.swing.JButton jButtonRemoveFromMain;
private javax.swing.JButton jButtonRemoveFromSideboard;
private javax.swing.JButton jButtonSearch;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
@ -868,6 +903,8 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
private javax.swing.JToolBar tbTypes;
// End of variables declaration//GEN-END:variables
private mage.client.cards.CardGrid cardGrid;
@Override
public void componentResized(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)

View file

@ -37,6 +37,7 @@ package mage.client.deckeditor;
import mage.cards.decks.Deck;
import mage.client.cards.BigCard;
import mage.client.cards.CardsList;
import mage.client.util.Event;
import mage.client.util.Listener;
import mage.view.CardsView;
@ -113,6 +114,13 @@ public class DeckArea extends javax.swing.JPanel {
);
}// </editor-fold>//GEN-END:initComponents
public CardsList getDeckList() {
return deckList;
}
public CardsList getSideboardList() {
return sideboardList;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private mage.client.cards.CardsList deckList;

View file

@ -27,23 +27,10 @@
*/
package mage.client.deckeditor;
import mage.cards.decks.importer.DeckImporter;
import mage.cards.decks.importer.DeckImporterUtil;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.UUID;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import mage.cards.Card;
import mage.cards.decks.Deck;
import mage.cards.decks.importer.DeckImporter;
import mage.cards.decks.importer.DeckImporterUtil;
import mage.client.MageFrame;
import mage.client.cards.BigCard;
import mage.client.cards.ICardGrid;
@ -59,6 +46,18 @@ import mage.sets.Sets;
import mage.view.CardView;
import org.apache.log4j.Logger;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.UUID;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
/**
*
* @author BetaSteward_at_googlemail.com
@ -186,7 +185,11 @@ public class DeckEditorPanel extends javax.swing.JPanel {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
hidePopup();
}
} else if (event.getEventName().equals("remove-main")) {
DeckEditorPanel.this.deckArea.getDeckList().handleDoubleClick();
} else if (event.getEventName().equals("remove-sideboard")) {
DeckEditorPanel.this.deckArea.getSideboardList().handleDoubleClick();
}
refreshDeck();
}
}
@ -221,7 +224,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
}
hidePopup();
refreshDeck();
}
}
}
}
);

View file

@ -29,6 +29,7 @@
package mage.client.deckeditor.table;
import mage.Constants;
import mage.client.MageFrame;
import mage.client.cards.BigCard;
import mage.client.cards.CardEventSource;
import mage.client.cards.ICardGrid;
@ -38,9 +39,11 @@ import mage.client.util.Config;
import mage.client.util.Event;
import mage.client.util.ImageHelper;
import mage.client.util.Listener;
import mage.client.util.gui.GuiDisplayUtil;
import mage.view.CardView;
import mage.view.CardsView;
import org.apache.log4j.Logger;
import org.jdesktop.swingx.JXPanel;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
@ -51,9 +54,6 @@ import java.awt.image.BufferedImage;
import java.util.*;
import java.util.List;
import java.util.Map.Entry;
import mage.client.MageFrame;
import mage.client.util.gui.GuiDisplayUtil;
import org.jdesktop.swingx.JXPanel;
/**
* Table Model for card list.
@ -277,6 +277,14 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
cardEventSource.shiftDoubleClick(card.getId(), "shift-double-click");
}
public void removeFromMainEvent(int index) {
cardEventSource.removeFromMainEvent("remove-main");
}
public void removeFromSideEvent(int index) {
cardEventSource.removeFromSideboardEvent("remove-sideboard");
}
public void addListeners(final JTable table) {
// updates card detail, listens to any key strokes