[refactoring][minor] Replaced all tabs with four spaces.

This commit is contained in:
North 2012-06-19 23:50:20 +03:00
parent e646e4768d
commit 239a4fb100
2891 changed files with 79411 additions and 79411 deletions

View file

@ -62,10 +62,10 @@ import java.util.List;
*/
public class CardSelector extends javax.swing.JPanel implements ComponentListener {
private final List<Card> cards = new ArrayList<Card>();
private final FilterCard filter = new FilterCard();
private BigCard bigCard;
private boolean limited = false;
private final List<Card> cards = new ArrayList<Card>();
private final FilterCard filter = new FilterCard();
private BigCard bigCard;
private boolean limited = false;
private final ActionListener searchAction = new ActionListener() {
@Override
@ -73,184 +73,184 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
jButtonSearchActionPerformed(evt);
}
};
/** Creates new form CardSelector */
public CardSelector() {
initComponents();
cardGrid = new CardGrid();
makeTransparent();
initListViewComponents();
currentView = mainModel; // by default we use List View
makeTransparent();
initListViewComponents();
currentView = mainModel; // by default we use List View
}
public void makeTransparent() {
this.addComponentListener(this);
setOpaque(false);
cardGrid.setOpaque(false);
jScrollPane1.setOpaque(false);
jScrollPane1.getViewport().setOpaque(false);
cbSortBy.setModel(new DefaultComboBoxModel(SortBy.values()));
public void makeTransparent() {
this.addComponentListener(this);
setOpaque(false);
cardGrid.setOpaque(false);
jScrollPane1.setOpaque(false);
jScrollPane1.getViewport().setOpaque(false);
cbSortBy.setModel(new DefaultComboBoxModel(SortBy.values()));
jTextFieldSearch.addActionListener(searchAction);
}
}
public void initListViewComponents() {
mainTable = new JTable();
public void initListViewComponents() {
mainTable = new JTable();
mainModel = new TableModel();
mainModel.addListeners(mainTable);
mainModel = new TableModel();
mainModel.addListeners(mainTable);
mainTable.setModel(mainModel);
mainTable.setForeground(Color.white);
DefaultTableCellRenderer myRenderer = (DefaultTableCellRenderer) mainTable.getDefaultRenderer(String.class);
myRenderer.setBackground(new Color(0, 0, 0, 100));
mainTable.getColumnModel().getColumn(0).setMaxWidth(0);
mainTable.getColumnModel().getColumn(0).setPreferredWidth(10);
mainTable.getColumnModel().getColumn(1).setPreferredWidth(110);
mainTable.getColumnModel().getColumn(2).setPreferredWidth(90);
mainTable.getColumnModel().getColumn(3).setPreferredWidth(50);
mainTable.getColumnModel().getColumn(4).setPreferredWidth(170);
mainTable.getColumnModel().getColumn(5).setPreferredWidth(30);
mainTable.getColumnModel().getColumn(6).setPreferredWidth(15);
mainTable.getColumnModel().getColumn(7).setPreferredWidth(15);
mainTable.setForeground(Color.white);
DefaultTableCellRenderer myRenderer = (DefaultTableCellRenderer) mainTable.getDefaultRenderer(String.class);
myRenderer.setBackground(new Color(0, 0, 0, 100));
mainTable.getColumnModel().getColumn(0).setMaxWidth(0);
mainTable.getColumnModel().getColumn(0).setPreferredWidth(10);
mainTable.getColumnModel().getColumn(1).setPreferredWidth(110);
mainTable.getColumnModel().getColumn(2).setPreferredWidth(90);
mainTable.getColumnModel().getColumn(3).setPreferredWidth(50);
mainTable.getColumnModel().getColumn(4).setPreferredWidth(170);
mainTable.getColumnModel().getColumn(5).setPreferredWidth(30);
mainTable.getColumnModel().getColumn(6).setPreferredWidth(15);
mainTable.getColumnModel().getColumn(7).setPreferredWidth(15);
jScrollPane1.setViewportView(mainTable);
jScrollPane1.setViewportView(mainTable);
mainTable.setOpaque(false);
mainTable.setOpaque(false);
cbSortBy.setEnabled(false);
chkPiles.setEnabled(false);
cbSortBy.setEnabled(false);
chkPiles.setEnabled(false);
mainTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && !e.isConsumed()) {
e.consume();
jButtonAddToMainActionPerformed(null);
}
}
});
}
mainTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && !e.isConsumed()) {
e.consume();
jButtonAddToMainActionPerformed(null);
}
}
});
}
public void loadSideboard(List<Card> sideboard, BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(false);
this.btnClear.setVisible(false);
this.cbExpansionSet.setVisible(false);
this.limited = true;
this.cards.clear();
for (Card card: sideboard) {
this.cards.add(card);
}
initFilter();
filterCards();
}
public void loadSideboard(List<Card> sideboard, BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(false);
this.btnClear.setVisible(false);
this.cbExpansionSet.setVisible(false);
this.limited = true;
this.cards.clear();
for (Card card: sideboard) {
this.cards.add(card);
}
initFilter();
filterCards();
}
public void loadCards(BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(true);
this.btnClear.setVisible(true);
this.cbExpansionSet.setVisible(true);
Object[] l = Sets.getInstance().values().toArray();
Arrays.sort(l, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return ((ExpansionSet)o2).getReleaseDate().compareTo(((ExpansionSet)o1).getReleaseDate());
}
});
cbExpansionSet.setModel(new DefaultComboBoxModel(l));
cbExpansionSet.insertItemAt("-- All sets", 0);
public void loadCards(BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(true);
this.btnClear.setVisible(true);
this.cbExpansionSet.setVisible(true);
Object[] l = Sets.getInstance().values().toArray();
Arrays.sort(l, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return ((ExpansionSet)o2).getReleaseDate().compareTo(((ExpansionSet)o1).getReleaseDate());
}
});
cbExpansionSet.setModel(new DefaultComboBoxModel(l));
cbExpansionSet.insertItemAt("-- All sets", 0);
cbExpansionSet.insertItemAt("-- Standard", 1);
cbExpansionSet.setSelectedIndex(0);
initFilter();
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet) this.cbExpansionSet.getSelectedItem()).getCode());
} else if (this.cbExpansionSet.getSelectedItem().equals("-- Standard")) {
cbExpansionSet.setSelectedIndex(0);
initFilter();
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet) this.cbExpansionSet.getSelectedItem()).getCode());
} else if (this.cbExpansionSet.getSelectedItem().equals("-- Standard")) {
filter.getExpansionSetCode().addAll(ConstructedFormats.getSetsByFormat("Standard"));
}
filterCards();
}
filterCards();
}
private void initFilter() {
filter.setUseColor(true);
filter.getColor().setBlack(true);
filter.getColor().setBlue(true);
filter.getColor().setGreen(true);
filter.getColor().setWhite(true);
filter.getColor().setRed(true);
filter.setColorless(true);
filter.setUseColorless(true);
filter.setNotColor(false);
filter.setScopeColor(ComparisonScope.Any);
filter.getCardType().add(CardType.LAND);
filter.getCardType().add(CardType.ARTIFACT);
filter.getCardType().add(CardType.CREATURE);
filter.getCardType().add(CardType.ENCHANTMENT);
filter.getCardType().add(CardType.INSTANT);
filter.getCardType().add(CardType.PLANESWALKER);
filter.getCardType().add(CardType.SORCERY);
filter.setScopeCardType(ComparisonScope.Any);
}
private void initFilter() {
filter.setUseColor(true);
filter.getColor().setBlack(true);
filter.getColor().setBlue(true);
filter.getColor().setGreen(true);
filter.getColor().setWhite(true);
filter.getColor().setRed(true);
filter.setColorless(true);
filter.setUseColorless(true);
filter.setNotColor(false);
filter.setScopeColor(ComparisonScope.Any);
filter.getCardType().add(CardType.LAND);
filter.getCardType().add(CardType.ARTIFACT);
filter.getCardType().add(CardType.CREATURE);
filter.getCardType().add(CardType.ENCHANTMENT);
filter.getCardType().add(CardType.INSTANT);
filter.getCardType().add(CardType.PLANESWALKER);
filter.getCardType().add(CardType.SORCERY);
filter.setScopeCardType(ComparisonScope.Any);
}
private void filterCards() {
try {
List<Card> filteredCards = new ArrayList<Card>();
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (limited) {
for (Card card: cards) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
this.currentView.loadCards(new CardsView(filteredCards), (SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected(), bigCard, null);
this.cardCount.setText(String.valueOf(filteredCards.size()));
private void filterCards() {
try {
List<Card> filteredCards = new ArrayList<Card>();
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (limited) {
for (Card card: cards) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
this.currentView.loadCards(new CardsView(filteredCards), (SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected(), bigCard, null);
this.cardCount.setText(String.valueOf(filteredCards.size()));
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
public ICardGrid getCardsList() {
return this.currentView;
}
public ICardGrid getCardsList() {
return this.currentView;
}
public List<ICardGrid> getCardGridComponents() {
List<ICardGrid> components = new ArrayList<ICardGrid>();
components.add(mainModel);
components.add(cardGrid);
return components;
}
public List<ICardGrid> getCardGridComponents() {
List<ICardGrid> components = new ArrayList<ICardGrid>();
components.add(mainModel);
components.add(cardGrid);
return components;
}
public void removeCard(UUID cardId) {
this.mainModel.removeCard(cardId);
this.cardGrid.removeCard(cardId);
for (Card card: cards) {
if (card.getId().equals(cardId)) {
cards.remove(card);
break;
}
}
}
public void removeCard(UUID cardId) {
this.mainModel.removeCard(cardId);
this.cardGrid.removeCard(cardId);
for (Card card: cards) {
if (card.getId().equals(cardId)) {
cards.remove(card);
break;
}
}
}
public Card getCard(UUID cardId) {
if (!cards.isEmpty()) {
for (Card card: cards) {
if (card.getId().equals(cardId))
return card;
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (card.getId().equals(cardId))
return card;
}
}
return null;
}
public Card getCard(UUID cardId) {
if (!cards.isEmpty()) {
for (Card card: cards) {
if (card.getId().equals(cardId))
return card;
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (card.getId().equals(cardId))
return card;
}
}
return null;
}
/** This method is called from within the constructor to
* initialize the form.
@ -654,186 +654,186 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
);
}// </editor-fold>//GEN-END:initComponents
private void rdoGreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoGreenActionPerformed
filter.getColor().setGreen(this.rdoGreen.isSelected());
filterCards();
}//GEN-LAST:event_rdoGreenActionPerformed
private void rdoGreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoGreenActionPerformed
filter.getColor().setGreen(this.rdoGreen.isSelected());
filterCards();
}//GEN-LAST:event_rdoGreenActionPerformed
private void rdoBlackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlackActionPerformed
filter.getColor().setBlack(this.rdoBlack.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlackActionPerformed
private void rdoBlackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlackActionPerformed
filter.getColor().setBlack(this.rdoBlack.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlackActionPerformed
private void rdoWhiteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoWhiteActionPerformed
filter.getColor().setWhite(this.rdoWhite.isSelected());
filterCards();
}//GEN-LAST:event_rdoWhiteActionPerformed
private void rdoWhiteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoWhiteActionPerformed
filter.getColor().setWhite(this.rdoWhite.isSelected());
filterCards();
}//GEN-LAST:event_rdoWhiteActionPerformed
private void rdoRedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoRedActionPerformed
filter.getColor().setRed(this.rdoRed.isSelected());
filterCards();
}//GEN-LAST:event_rdoRedActionPerformed
private void rdoRedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoRedActionPerformed
filter.getColor().setRed(this.rdoRed.isSelected());
filterCards();
}//GEN-LAST:event_rdoRedActionPerformed
private void rdoBlueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlueActionPerformed
filter.getColor().setBlue(this.rdoBlue.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlueActionPerformed
private void rdoBlueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlueActionPerformed
filter.getColor().setBlue(this.rdoBlue.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlueActionPerformed
private void rdoColorlessActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoColorlessActionPerformed
filter.setColorless(this.rdoColorless.isSelected());
filterCards();
}//GEN-LAST:event_rdoColorlessActionPerformed
private void rdoColorlessActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoColorlessActionPerformed
filter.setColorless(this.rdoColorless.isSelected());
filterCards();
}//GEN-LAST:event_rdoColorlessActionPerformed
private void rdoLandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoLandActionPerformed
if (this.rdoLand.isSelected())
filter.getCardType().add(CardType.LAND);
else
filter.getCardType().remove(CardType.LAND);
filterCards();
}//GEN-LAST:event_rdoLandActionPerformed
private void rdoLandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoLandActionPerformed
if (this.rdoLand.isSelected())
filter.getCardType().add(CardType.LAND);
else
filter.getCardType().remove(CardType.LAND);
filterCards();
}//GEN-LAST:event_rdoLandActionPerformed
private void rdoCreaturesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoCreaturesActionPerformed
if (this.rdoCreatures.isSelected())
filter.getCardType().add(CardType.CREATURE);
else
filter.getCardType().remove(CardType.CREATURE);
filterCards();
}//GEN-LAST:event_rdoCreaturesActionPerformed
private void rdoCreaturesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoCreaturesActionPerformed
if (this.rdoCreatures.isSelected())
filter.getCardType().add(CardType.CREATURE);
else
filter.getCardType().remove(CardType.CREATURE);
filterCards();
}//GEN-LAST:event_rdoCreaturesActionPerformed
private void rdoArtifactsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoArtifactsActionPerformed
if (this.rdoArtifacts.isSelected())
filter.getCardType().add(CardType.ARTIFACT);
else
filter.getCardType().remove(CardType.ARTIFACT);
filterCards();
}//GEN-LAST:event_rdoArtifactsActionPerformed
private void rdoArtifactsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoArtifactsActionPerformed
if (this.rdoArtifacts.isSelected())
filter.getCardType().add(CardType.ARTIFACT);
else
filter.getCardType().remove(CardType.ARTIFACT);
filterCards();
}//GEN-LAST:event_rdoArtifactsActionPerformed
private void rdoEnchantmentsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoEnchantmentsActionPerformed
if (this.rdoEnchantments.isSelected())
filter.getCardType().add(CardType.ENCHANTMENT);
else
filter.getCardType().remove(CardType.ENCHANTMENT);
filterCards();
}//GEN-LAST:event_rdoEnchantmentsActionPerformed
private void rdoEnchantmentsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoEnchantmentsActionPerformed
if (this.rdoEnchantments.isSelected())
filter.getCardType().add(CardType.ENCHANTMENT);
else
filter.getCardType().remove(CardType.ENCHANTMENT);
filterCards();
}//GEN-LAST:event_rdoEnchantmentsActionPerformed
private void rdoInstantsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoInstantsActionPerformed
if (this.rdoInstants.isSelected())
filter.getCardType().add(CardType.INSTANT);
else
filter.getCardType().remove(CardType.INSTANT);
filterCards();
}//GEN-LAST:event_rdoInstantsActionPerformed
private void rdoInstantsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoInstantsActionPerformed
if (this.rdoInstants.isSelected())
filter.getCardType().add(CardType.INSTANT);
else
filter.getCardType().remove(CardType.INSTANT);
filterCards();
}//GEN-LAST:event_rdoInstantsActionPerformed
private void rdoSorceriesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoSorceriesActionPerformed
if (this.rdoSorceries.isSelected())
filter.getCardType().add(CardType.SORCERY);
else
filter.getCardType().remove(CardType.SORCERY);
filterCards();
}//GEN-LAST:event_rdoSorceriesActionPerformed
private void rdoSorceriesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoSorceriesActionPerformed
if (this.rdoSorceries.isSelected())
filter.getCardType().add(CardType.SORCERY);
else
filter.getCardType().remove(CardType.SORCERY);
filterCards();
}//GEN-LAST:event_rdoSorceriesActionPerformed
private void rdoPlaneswalkersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoPlaneswalkersActionPerformed
if (this.rdoPlaneswalkers.isSelected())
filter.getCardType().add(CardType.PLANESWALKER);
else
filter.getCardType().remove(CardType.PLANESWALKER);
filterCards();
}//GEN-LAST:event_rdoPlaneswalkersActionPerformed
private void rdoPlaneswalkersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoPlaneswalkersActionPerformed
if (this.rdoPlaneswalkers.isSelected())
filter.getCardType().add(CardType.PLANESWALKER);
else
filter.getCardType().remove(CardType.PLANESWALKER);
filterCards();
}//GEN-LAST:event_rdoPlaneswalkersActionPerformed
private void cbExpansionSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbExpansionSetActionPerformed
filter.getExpansionSetCode().clear();
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
filterCards();
} else {
private void cbExpansionSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbExpansionSetActionPerformed
filter.getExpansionSetCode().clear();
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
filterCards();
} else {
if (this.cbExpansionSet.getSelectedItem().equals("-- Standard")) {
filter.getExpansionSetCode().addAll(ConstructedFormats.getSetsByFormat("Standard"));
filterCards();
} else {
// auto switch for ListView for "All sets" (too many cards to load)
jToggleListView.doClick();
jToggleListView.setSelected(true);
// auto switch for ListView for "All sets" (too many cards to load)
jToggleListView.doClick();
jToggleListView.setSelected(true);
}
}
}
}//GEN-LAST:event_cbExpansionSetActionPerformed
}//GEN-LAST:event_cbExpansionSetActionPerformed
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
cards.clear();
filterCards();
}//GEN-LAST:event_btnClearActionPerformed
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
cards.clear();
filterCards();
}//GEN-LAST:event_btnClearActionPerformed
private void btnBoosterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBoosterActionPerformed
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
for (Card card: booster) {
cards.add(card);
}
filterCards();
} else {
JOptionPane.showMessageDialog(null, "It's not possible to generate booster for not Expansion Set \nChoose Expansion Set first.");
}
}//GEN-LAST:event_btnBoosterActionPerformed
private void btnBoosterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBoosterActionPerformed
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
for (Card card: booster) {
cards.add(card);
}
filterCards();
} else {
JOptionPane.showMessageDialog(null, "It's not possible to generate booster for not Expansion Set \nChoose Expansion Set first.");
}
}//GEN-LAST:event_btnBoosterActionPerformed
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_cbSortByActionPerformed
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_cbSortByActionPerformed
private void chkPilesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkPilesActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_chkPilesActionPerformed
private void chkPilesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkPilesActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_chkPilesActionPerformed
private void jToggleListViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jToggleListViewActionPerformed
jToggleCardView.setSelected(false);
currentView = mainModel;
jScrollPane1.setViewportView(mainTable);
cbSortBy.setEnabled(false);
chkPiles.setEnabled(false);
jButtonAddToMain.setEnabled(true);
jButtonAddToSideboard.setEnabled(true);
filterCards();
}//GEN-LAST:event_jToggleListViewActionPerformed
private void jToggleListViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jToggleListViewActionPerformed
jToggleCardView.setSelected(false);
currentView = mainModel;
jScrollPane1.setViewportView(mainTable);
cbSortBy.setEnabled(false);
chkPiles.setEnabled(false);
jButtonAddToMain.setEnabled(true);
jButtonAddToSideboard.setEnabled(true);
filterCards();
}//GEN-LAST:event_jToggleListViewActionPerformed
private void jToggleCardViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jToggleCardViewActionPerformed
jToggleListView.setSelected(false);
currentView = cardGrid;
jScrollPane1.setViewportView(cardGrid);
cbSortBy.setEnabled(true);
chkPiles.setEnabled(true);
jButtonAddToMain.setEnabled(false);
jButtonAddToSideboard.setEnabled(false);
filterCards();
}//GEN-LAST:event_jToggleCardViewActionPerformed
private void jToggleCardViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jToggleCardViewActionPerformed
jToggleListView.setSelected(false);
currentView = cardGrid;
jScrollPane1.setViewportView(cardGrid);
cbSortBy.setEnabled(true);
chkPiles.setEnabled(true);
jButtonAddToMain.setEnabled(false);
jButtonAddToSideboard.setEnabled(false);
filterCards();
}//GEN-LAST:event_jToggleCardViewActionPerformed
private void jButtonAddToMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddToMainActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
//if (!mode.equals(Constants.DeckEditorMode.Constructed))
if (limited)
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButtonAddToMainActionPerformed
private void jButtonAddToMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddToMainActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
//if (!mode.equals(Constants.DeckEditorMode.Constructed))
if (limited)
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButtonAddToMainActionPerformed
private void jButtonAddToSideboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddToSideboardActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.shiftDoubleClick(index);
}
//if (!mode.equals(Constants.DeckEditorMode.Constructed))
if (limited)
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButtonAddToSideboardActionPerformed
private void jButtonAddToSideboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddToSideboardActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.shiftDoubleClick(index);
}
//if (!mode.equals(Constants.DeckEditorMode.Constructed))
if (limited)
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButtonAddToSideboardActionPerformed
private void jButtonRemoveFromMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonRemoveFromMainActionPerformed
mainModel.removeFromMainEvent(0);
@ -844,36 +844,36 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
}//GEN-LAST:event_jButtonRemoveFromSideboardActionPerformed
private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSearchActionPerformed
String name = jTextFieldSearch.getText().trim();
filter.setText(name);
filterCards();
}//GEN-LAST:event_jButtonSearchActionPerformed
private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSearchActionPerformed
String name = jTextFieldSearch.getText().trim();
filter.setText(name);
filterCards();
}//GEN-LAST:event_jButtonSearchActionPerformed
private void jButtonCleanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCleanActionPerformed
jTextFieldSearch.setText("");
filter.setText("");
filterCards();
}//GEN-LAST:event_jButtonCleanActionPerformed
private void jButtonCleanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCleanActionPerformed
jTextFieldSearch.setText("");
filter.setText("");
filterCards();
}//GEN-LAST:event_jButtonCleanActionPerformed
public List<Integer> asList(final int[] is) {
List<Integer> list = new ArrayList<Integer>();
for (int i : is) list.add(i);
return list;
for (int i : is) list.add(i);
return list;
}
public void refresh() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
currentView.refresh();
}
});
}
public void refresh() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
currentView.refresh();
}
});
}
private TableModel mainModel;
private JTable mainTable;
private ICardGrid currentView;
private TableModel mainModel;
private JTable mainTable;
private ICardGrid currentView;
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnBooster;
@ -914,28 +914,28 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
private mage.client.cards.CardGrid cardGrid;
@Override
public void componentResized(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentResized(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentMoved(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentMoved(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentShown(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentShown(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentHidden(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentHidden(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.currentView.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
}

View file

@ -54,35 +54,35 @@ public class DeckArea extends javax.swing.JPanel {
jSplitPane1.setOpaque(false);
deckList.setOpaque(false);
sideboardList.setOpaque(false);
deckList.setDisplayNoCopies(true);
sideboardList.setDisplayNoCopies(true);
deckList.setDisplayNoCopies(true);
sideboardList.setDisplayNoCopies(true);
}
public void showSideboard(boolean show) {
this.sideboardList.setVisible(show);
}
public void showSideboard(boolean show) {
this.sideboardList.setVisible(show);
}
public void loadDeck(Deck deck, BigCard bigCard) {
deckList.loadCards(new CardsView(deck.getCards()), bigCard, null);
if (sideboardList.isVisible())
sideboardList.loadCards(new CardsView(deck.getSideboard()), bigCard, null);
}
public void loadDeck(Deck deck, BigCard bigCard) {
deckList.loadCards(new CardsView(deck.getCards()), bigCard, null);
if (sideboardList.isVisible())
sideboardList.loadCards(new CardsView(deck.getSideboard()), bigCard, null);
}
public void addDeckEventListener(Listener<Event> listener) {
deckList.addCardEventListener(listener);
}
public void addDeckEventListener(Listener<Event> listener) {
deckList.addCardEventListener(listener);
}
public void clearDeckEventListeners() {
deckList.clearCardEventListeners();
}
public void clearDeckEventListeners() {
deckList.clearCardEventListeners();
}
public void addSideboardEventListener(Listener<Event> listener) {
sideboardList.addCardEventListener(listener);
}
public void addSideboardEventListener(Listener<Event> listener) {
sideboardList.addCardEventListener(listener);
}
public void clearSideboardEventListeners() {
sideboardList.clearCardEventListeners();
}
public void clearSideboardEventListeners() {
sideboardList.clearCardEventListeners();
}
/** This method is called from within the constructor to
* initialize the form.

View file

@ -54,26 +54,26 @@ public class DeckEditorPane extends MagePane {
/** Creates new form TablesPane */
public DeckEditorPane() {
boolean initialized = false;
if (Plugins.getInstance().isThemePluginLoaded()) {
Map<String, JComponent> ui = new HashMap<String, JComponent>();
JComponent container = Plugins.getInstance().updateTablePanel(ui);
if (container != null) {
deckEditorPanel1 = new mage.client.deckeditor.DeckEditorPanel();
initComponents(container);
container.add(deckEditorPanel1);
container.setOpaque(false);
deckEditorPanel1.setOpaque(false);
initialized = true;
}
Map<String, JComponent> ui = new HashMap<String, JComponent>();
JComponent container = Plugins.getInstance().updateTablePanel(ui);
if (container != null) {
deckEditorPanel1 = new mage.client.deckeditor.DeckEditorPanel();
initComponents(container);
container.add(deckEditorPanel1);
container.setOpaque(false);
deckEditorPanel1.setOpaque(false);
initialized = true;
}
}
if (!initialized) {
initComponents();
initComponents();
}
}
public void show(DeckEditorMode mode, Deck deck, String name, UUID tableId, int time) {
public void show(DeckEditorMode mode, Deck deck, String name, UUID tableId, int time) {
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited)
this.setTitle("Deck Editor - " + tableId.toString());
else {
@ -82,9 +82,9 @@ public class DeckEditorPane extends MagePane {
else
this.setTitle("Deck Editor");
}
this.deckEditorPanel1.showDeckEditor(mode, deck, tableId, time);
this.repaint();
}
this.deckEditorPanel1.showDeckEditor(mode, deck, tableId, time);
this.repaint();
}
/** This method is called from within the constructor to

View file

@ -64,232 +64,232 @@ import java.util.concurrent.ExecutionException;
*/
public class DeckEditorPanel extends javax.swing.JPanel {
private final static Logger logger = Logger.getLogger(DeckEditorPanel.class);
private final static Logger logger = Logger.getLogger(DeckEditorPanel.class);
private JFileChooser fcSelectDeck;
private JFileChooser fcImportDeck;
private Deck deck = new Deck();
private JFileChooser fcImportDeck;
private Deck deck = new Deck();
private boolean isShowCardInfo = false;
private UUID tableId;
private DeckEditorMode mode;
private int timeout;
private Timer countdown;
private UpdateDeckTask updateDeckTask;
private UUID tableId;
private DeckEditorMode mode;
private int timeout;
private Timer countdown;
private UpdateDeckTask updateDeckTask;
/** Creates new form DeckEditorPanel */
public DeckEditorPanel() {
initComponents();
fcSelectDeck = new JFileChooser();
fcSelectDeck.setAcceptAllFileFilterUsed(false);
fcSelectDeck.addChoosableFileFilter(new DeckFilter());
fcImportDeck = new JFileChooser();
fcImportDeck.setAcceptAllFileFilterUsed(false);
fcImportDeck.addChoosableFileFilter(new ImportFilter());
deckArea.setOpaque(false);
jPanel1.setOpaque(false);
jSplitPane1.setOpaque(false);
countdown = new Timer(1000,
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (--timeout > 0) {
setTimeout(Integer.toString(timeout));
}
else {
fcSelectDeck = new JFileChooser();
fcSelectDeck.setAcceptAllFileFilterUsed(false);
fcSelectDeck.addChoosableFileFilter(new DeckFilter());
fcImportDeck = new JFileChooser();
fcImportDeck.setAcceptAllFileFilterUsed(false);
fcImportDeck.addChoosableFileFilter(new ImportFilter());
deckArea.setOpaque(false);
jPanel1.setOpaque(false);
jSplitPane1.setOpaque(false);
countdown = new Timer(1000,
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (--timeout > 0) {
setTimeout(Integer.toString(timeout));
}
else {
if (updateDeckTask != null)
updateDeckTask.cancel(true);
setTimeout("0");
countdown.stop();
setTimeout("0");
countdown.stop();
hideDeckEditor();
}
}
}
);
}
}
}
);
}
public void showDeckEditor(DeckEditorMode mode, Deck deck, UUID tableId, int time) {
if (deck != null)
this.deck = deck;
this.tableId = tableId;
this.mode = mode;
this.btnAddLand.setVisible(false);
switch (mode) {
case Limited:
this.btnAddLand.setVisible(true);
this.txtTimeRemaining.setVisible(true);
case Sideboard:
this.btnSubmit.setVisible(true);
this.cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), this.bigCard);
this.btnExit.setVisible(false);
this.btnImport.setVisible(false);
if (!MageFrame.getSession().isTestMode())
this.btnLoad.setVisible(false);
this.deckArea.showSideboard(false);
countdown.stop();
this.timeout = time;
setTimeout(Integer.toString(timeout));
if (timeout != 0) {
countdown.start();
public void showDeckEditor(DeckEditorMode mode, Deck deck, UUID tableId, int time) {
if (deck != null)
this.deck = deck;
this.tableId = tableId;
this.mode = mode;
this.btnAddLand.setVisible(false);
switch (mode) {
case Limited:
this.btnAddLand.setVisible(true);
this.txtTimeRemaining.setVisible(true);
case Sideboard:
this.btnSubmit.setVisible(true);
this.cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), this.bigCard);
this.btnExit.setVisible(false);
this.btnImport.setVisible(false);
if (!MageFrame.getSession().isTestMode())
this.btnLoad.setVisible(false);
this.deckArea.showSideboard(false);
countdown.stop();
this.timeout = time;
setTimeout(Integer.toString(timeout));
if (timeout != 0) {
countdown.start();
if (updateDeckTask == null || updateDeckTask.isDone()) {
updateDeckTask = new UpdateDeckTask(MageFrame.getSession(), tableId, deck);
updateDeckTask.execute();
}
}
break;
case Constructed:
this.btnSubmit.setVisible(false);
this.cardSelector.loadCards(this.bigCard);
//this.cardTableSelector.loadCards(this.bigCard);
this.btnExit.setVisible(true);
this.btnImport.setVisible(true);
if (!MageFrame.getSession().isTestMode())
this.btnLoad.setVisible(true);
this.deckArea.showSideboard(true);
this.txtTimeRemaining.setVisible(false);
break;
}
init();
}
}
break;
case Constructed:
this.btnSubmit.setVisible(false);
this.cardSelector.loadCards(this.bigCard);
//this.cardTableSelector.loadCards(this.bigCard);
this.btnExit.setVisible(true);
this.btnImport.setVisible(true);
if (!MageFrame.getSession().isTestMode())
this.btnLoad.setVisible(true);
this.deckArea.showSideboard(true);
this.txtTimeRemaining.setVisible(false);
break;
}
init();
}
private void init() {
this.cardSelector.setVisible(true);
this.jPanel1.setVisible(true);
for (ICardGrid component : this.cardSelector.getCardGridComponents()) {
component.clearCardEventListeners();
component.addCardEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
Card card = cardSelector.getCard((UUID) event.getSource());
if (card != null) {
deck.getCards().add(Sets.createCard(card.getClass()));
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) {
deck.getSideboard().remove(card);
cardSelector.removeCard(card.getId());
cardSelector.refresh();
private void init() {
this.cardSelector.setVisible(true);
this.jPanel1.setVisible(true);
for (ICardGrid component : this.cardSelector.getCardGridComponents()) {
component.clearCardEventListeners();
component.addCardEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
Card card = cardSelector.getCard((UUID) event.getSource());
if (card != null) {
deck.getCards().add(Sets.createCard(card.getClass()));
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) {
deck.getSideboard().remove(card);
cardSelector.removeCard(card.getId());
cardSelector.refresh();
}
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
hidePopup();
}
}
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
hidePopup();
}
} else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
Card card = cardSelector.getCard((UUID) event.getSource());
deck.getSideboard().add(Sets.createCard(card.getClass()));
if (cardInfoPane instanceof CardInfoPane) {
((CardInfoPane)cardInfoPane).setCard(new CardView(card));
}
hidePopup();
} else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
Card card = cardSelector.getCard((UUID) event.getSource());
deck.getSideboard().add(Sets.createCard(card.getClass()));
if (cardInfoPane instanceof CardInfoPane) {
((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();
}
}
);
}
this.deckArea.clearDeckEventListeners();
this.deckArea.addDeckEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
for (Card card: deck.getCards()) {
if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
if (mode == DeckEditorMode.Limited || mode == DeckEditorMode.Sideboard) {
deck.getSideboard().add(card);
cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), getBigCard());
}
break;
}
}
hidePopup();
refreshDeck();
}
else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
for (Card card: deck.getCards()) {
if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
deck.getSideboard().add(card);
break;
}
}
hidePopup();
refreshDeck();
refreshDeck();
}
}
}
);
this.deckArea.addSideboardEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
for (Card card: deck.getSideboard()) {
if (card.getId().equals(event.getSource())) {
deck.getSideboard().remove(card);
deck.getCards().add(card);
break;
}
}
hidePopup();
refreshDeck();
}
}
}
);
refreshDeck();
this.setVisible(true);
this.repaint();
}
}
);
}
this.deckArea.clearDeckEventListeners();
this.deckArea.addDeckEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
for (Card card: deck.getCards()) {
if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
if (mode == DeckEditorMode.Limited || mode == DeckEditorMode.Sideboard) {
deck.getSideboard().add(card);
cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), getBigCard());
}
break;
}
}
hidePopup();
refreshDeck();
}
else if (event.getEventName().equals("shift-double-click") && mode == DeckEditorMode.Constructed) {
for (Card card: deck.getCards()) {
if (card.getId().equals(event.getSource())) {
deck.getCards().remove(card);
deck.getSideboard().add(card);
break;
}
}
hidePopup();
refreshDeck();
}
}
}
);
this.deckArea.addSideboardEventListener(
new Listener<Event> () {
@Override
public void event(Event event) {
if (event.getEventName().equals("double-click")) {
for (Card card: deck.getSideboard()) {
if (card.getId().equals(event.getSource())) {
deck.getSideboard().remove(card);
deck.getCards().add(card);
break;
}
}
hidePopup();
refreshDeck();
}
}
}
);
refreshDeck();
this.setVisible(true);
this.repaint();
}
private void hidePopup() {
Plugins.getInstance().getActionCallback().mouseExited(null, null);
}
public void hideDeckEditor() {
private void hidePopup() {
Plugins.getInstance().getActionCallback().mouseExited(null, null);
}
public void hideDeckEditor() {
if (updateDeckTask != null)
updateDeckTask.cancel(true);
Component c = this.getParent();
while (c != null && !(c instanceof DeckEditorPane)) {
c = c.getParent();
}
if (c != null)
((DeckEditorPane)c).hideFrame();
}
Component c = this.getParent();
while (c != null && !(c instanceof DeckEditorPane)) {
c = c.getParent();
}
if (c != null)
((DeckEditorPane)c).hideFrame();
}
private BigCard getBigCard() {
return this.bigCard;
}
private BigCard getBigCard() {
return this.bigCard;
}
private void refreshDeck() {
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
this.txtDeckName.setText(deck.getName());
deckArea.loadDeck(deck, bigCard);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
private void refreshDeck() {
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
this.txtDeckName.setText(deck.getName());
deckArea.loadDeck(deck, bigCard);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
private void setTimeout(String text) {
this.txtTimeRemaining.setText(text);
}
private void setTimeout(String text) {
this.txtTimeRemaining.setText(text);
}
private void initComponents() {
private void initComponents() {
jSplitPane1 = new javax.swing.JSplitPane();
cardSelector = new mage.client.deckeditor.CardSelector();
deckArea = new mage.client.deckeditor.DeckArea();
deckArea = new mage.client.deckeditor.DeckArea();
jPanel1 = new javax.swing.JPanel();
bigCard = new mage.client.cards.BigCard();
txtDeckName = new javax.swing.JTextField();
@ -300,20 +300,20 @@ public class DeckEditorPanel extends javax.swing.JPanel {
btnExit = new javax.swing.JButton();
btnImport = new javax.swing.JButton();
btnSubmit = new javax.swing.JButton();
btnAddLand = new javax.swing.JButton();
txtTimeRemaining = new javax.swing.JTextField();
btnAddLand = new javax.swing.JButton();
txtTimeRemaining = new javax.swing.JTextField();
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jSplitPane1.setResizeWeight(0.5);
jSplitPane1.setTopComponent(cardSelector);
jSplitPane1.setBottomComponent(deckArea);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
jSplitPane1.setDividerLocation(0.6);
}
});
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
jSplitPane1.setDividerLocation(0.6);
}
});
bigCard.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
@ -384,9 +384,9 @@ public class DeckEditorPanel extends javax.swing.JPanel {
btnAddLand.setName("btnAddLand"); // NOI18N
btnAddLand.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAddLandActionPerformed(evt);
}
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAddLandActionPerformed(evt);
}
});
txtTimeRemaining.setEditable(false);
@ -394,69 +394,69 @@ public class DeckEditorPanel extends javax.swing.JPanel {
txtTimeRemaining.setHorizontalAlignment(javax.swing.JTextField.CENTER);
txtTimeRemaining.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
/*.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))*/
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addComponent(lblDeckName)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
.addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(btnSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnLoad)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnNew)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnExit))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(btnImport)
.addContainerGap()
.addComponent(btnAddLand)
.addContainerGap()
.addComponent(btnSubmit))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(txtTimeRemaining))
)
.addContainerGap())
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
/*.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))*/
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addComponent(lblDeckName)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
.addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(btnSave)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnLoad)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnNew)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnExit))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(btnImport)
.addContainerGap()
.addComponent(btnAddLand)
.addContainerGap()
.addComponent(btnSubmit))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(txtTimeRemaining))
)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblDeckName))
.addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblDeckName))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnSave)
.addComponent(btnLoad)
.addComponent(btnNew)
.addComponent(btnExit))
.addComponent(btnSave)
.addComponent(btnLoad)
.addComponent(btnNew)
.addComponent(btnExit))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnImport)
.addComponent(btnAddLand)
.addComponent(btnSubmit))
.addComponent(btnImport)
.addComponent(btnAddLand)
.addComponent(btnSubmit))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtTimeRemaining))
//.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtTimeRemaining))
//.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, isShowCardInfo ? 30 : 159, Short.MAX_VALUE)
.addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE)
.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
@ -476,124 +476,124 @@ public class DeckEditorPanel extends javax.swing.JPanel {
);
}
private void btnLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", "");
if (!lastFolder.isEmpty())
fcSelectDeck.setCurrentDirectory(new File(lastFolder));
int ret = fcSelectDeck.showOpenDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcSelectDeck.getSelectedFile();
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
deck = Deck.load(DeckImporterUtil.importDeck(file.getPath()), true);
} catch (GameException ex) {
JOptionPane.showMessageDialog(MageFrame.getDesktop(), ex.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE);
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
refreshDeck();
try {
MageFrame.getPreferences().put("lastDeckFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
fcSelectDeck.setSelectedFile(null);
}//GEN-LAST:event_btnLoadActionPerformed
private void btnLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", "");
if (!lastFolder.isEmpty())
fcSelectDeck.setCurrentDirectory(new File(lastFolder));
int ret = fcSelectDeck.showOpenDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcSelectDeck.getSelectedFile();
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
deck = Deck.load(DeckImporterUtil.importDeck(file.getPath()), true);
} catch (GameException ex) {
JOptionPane.showMessageDialog(MageFrame.getDesktop(), ex.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE);
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
refreshDeck();
try {
MageFrame.getPreferences().put("lastDeckFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
fcSelectDeck.setSelectedFile(null);
}//GEN-LAST:event_btnLoadActionPerformed
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", "");
if (!lastFolder.isEmpty())
fcSelectDeck.setCurrentDirectory(new File(lastFolder));
deck.setName(this.txtDeckName.getText());
int ret = fcSelectDeck.showSaveDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcSelectDeck.getSelectedFile();
try {
String fileName = file.getPath();
if (!fileName.endsWith(".dck"))
fileName += ".dck";
setCursor(new Cursor(Cursor.WAIT_CURSOR));
Sets.saveDeck(fileName, deck.getDeckCardLists());
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
try {
MageFrame.getPreferences().put("lastDeckFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
}//GEN-LAST:event_btnSaveActionPerformed
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", "");
if (!lastFolder.isEmpty())
fcSelectDeck.setCurrentDirectory(new File(lastFolder));
deck.setName(this.txtDeckName.getText());
int ret = fcSelectDeck.showSaveDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcSelectDeck.getSelectedFile();
try {
String fileName = file.getPath();
if (!fileName.endsWith(".dck"))
fileName += ".dck";
setCursor(new Cursor(Cursor.WAIT_CURSOR));
Sets.saveDeck(fileName, deck.getDeckCardLists());
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
try {
MageFrame.getPreferences().put("lastDeckFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
}//GEN-LAST:event_btnSaveActionPerformed
private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) {
for (Card card: deck.getCards()) {
deck.getSideboard().add(card);
}
deck.getCards().clear();
cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), this.bigCard);
}
else {
deck = new Deck();
}
refreshDeck();
}//GEN-LAST:event_btnNewActionPerformed
private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed
if (mode == DeckEditorMode.Sideboard || mode == DeckEditorMode.Limited) {
for (Card card: deck.getCards()) {
deck.getSideboard().add(card);
}
deck.getCards().clear();
cardSelector.loadSideboard(new ArrayList<Card>(deck.getSideboard()), this.bigCard);
}
else {
deck = new Deck();
}
refreshDeck();
}//GEN-LAST:event_btnNewActionPerformed
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExitActionPerformed
hideDeckEditor();
}//GEN-LAST:event_btnExitActionPerformed
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExitActionPerformed
hideDeckEditor();
}//GEN-LAST:event_btnExitActionPerformed
private void btnImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImportActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastImportFolder", "");
if (!lastFolder.isEmpty())
fcImportDeck.setCurrentDirectory(new File(lastFolder));
int ret = fcImportDeck.showOpenDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcImportDeck.getSelectedFile();
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
DeckImporter importer = DeckImporterUtil.getDeckImporter(file.getPath());
if (importer != null) {
deck = Deck.load(importer.importDeck(file.getPath()));
String errors = importer.getErrors();
if(!errors.isEmpty()){
JOptionPane.showMessageDialog(MageFrame.getDesktop(), errors, "Error importing deck", JOptionPane.ERROR_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unknown deck format", "Error importing deck", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
refreshDeck();
try {
if (file != null)
MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
fcImportDeck.setSelectedFile(null);
}//GEN-LAST:event_btnImportActionPerformed
private void btnImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImportActionPerformed
String lastFolder = MageFrame.getPreferences().get("lastImportFolder", "");
if (!lastFolder.isEmpty())
fcImportDeck.setCurrentDirectory(new File(lastFolder));
int ret = fcImportDeck.showOpenDialog(this);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fcImportDeck.getSelectedFile();
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
DeckImporter importer = DeckImporterUtil.getDeckImporter(file.getPath());
if (importer != null) {
deck = Deck.load(importer.importDeck(file.getPath()));
String errors = importer.getErrors();
if(!errors.isEmpty()){
JOptionPane.showMessageDialog(MageFrame.getDesktop(), errors, "Error importing deck", JOptionPane.ERROR_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Unknown deck format", "Error importing deck", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception ex) {
logger.fatal(ex);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
refreshDeck();
try {
if (file != null)
MageFrame.getPreferences().put("lastImportFolder", file.getCanonicalPath());
} catch (IOException ex) { }
}
fcImportDeck.setSelectedFile(null);
}//GEN-LAST:event_btnImportActionPerformed
private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {
private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {
if (updateDeckTask != null)
updateDeckTask.cancel(true);
if (MageFrame.getSession().submitDeck(tableId, deck.getDeckCardLists()))
hideDeckEditor();
}
if (MageFrame.getSession().submitDeck(tableId, deck.getDeckCardLists()))
hideDeckEditor();
}
private void btnAddLandActionPerformed(java.awt.event.ActionEvent evt) {
AddLandDialog addLand = new AddLandDialog();
addLand.showDialog(deck);
refreshDeck();
}
private void btnAddLandActionPerformed(java.awt.event.ActionEvent evt) {
AddLandDialog addLand = new AddLandDialog();
addLand.showDialog(deck);
refreshDeck();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private mage.client.cards.BigCard bigCard;
@ -611,17 +611,17 @@ public class DeckEditorPanel extends javax.swing.JPanel {
// End of variables declaration//GEN-END:variables
private JComponent cardInfoPane;
private javax.swing.JButton btnSubmit;
private javax.swing.JButton btnAddLand;
private javax.swing.JTextField txtTimeRemaining;
private javax.swing.JButton btnSubmit;
private javax.swing.JButton btnAddLand;
private javax.swing.JTextField txtTimeRemaining;
}
class DeckFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory())
return true;
@Override
public boolean accept(File f) {
if (f.isDirectory())
return true;
String ext = null;
String s = f.getName();
@ -630,21 +630,21 @@ class DeckFilter extends FileFilter {
if (i > 0 && i < s.length() - 1) {
ext = s.substring(i+1).toLowerCase();
}
return (ext==null)?false:ext.equals("dck");
}
return (ext==null)?false:ext.equals("dck");
}
@Override
public String getDescription() {
return "Deck Files";
}
@Override
public String getDescription() {
return "Deck Files";
}
}
class ImportFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory())
return true;
@Override
public boolean accept(File f) {
if (f.isDirectory())
return true;
String ext = null;
String s = f.getName();
@ -653,53 +653,53 @@ class ImportFilter extends FileFilter {
if (i > 0 && i < s.length() - 1) {
ext = s.substring(i+1).toLowerCase();
}
if (ext != null) {
if (ext.toLowerCase().equals("dec") || ext.toLowerCase().equals("mwdeck") || ext.toLowerCase().equals("txt"))
return true;
}
return false;
}
if (ext != null) {
if (ext.toLowerCase().equals("dec") || ext.toLowerCase().equals("mwdeck") || ext.toLowerCase().equals("txt"))
return true;
}
return false;
}
@Override
public String getDescription() {
return "*.dec | *.mwDeck | *.txt";
}
@Override
public String getDescription() {
return "*.dec | *.mwDeck | *.txt";
}
}
class UpdateDeckTask extends SwingWorker<Void, Void> {
private final static Logger logger = Logger.getLogger(UpdateDeckTask.class);
private final static Logger logger = Logger.getLogger(UpdateDeckTask.class);
private Session session;
private UUID tableId;
private Deck deck;
private UUID tableId;
private Deck deck;
UpdateDeckTask(Session session, UUID tableId, Deck deck) {
this.session = session;
this.tableId = tableId;
this.deck = deck;
}
UpdateDeckTask(Session session, UUID tableId, Deck deck) {
this.session = session;
this.tableId = tableId;
this.deck = deck;
}
@Override
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
session.updateDeck(tableId, deck.getDeckCardLists());
Thread.sleep(5000);
}
return null;
}
@Override
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
session.updateDeck(tableId, deck.getDeckCardLists());
Thread.sleep(5000);
}
return null;
}
@Override
protected void done() {
try {
get();
} catch (InterruptedException ex) {
logger.fatal("Update Matches Task error", ex);
} catch (ExecutionException ex) {
logger.fatal("Update Matches Task error", ex);
} catch (CancellationException ex) {}
}
@Override
protected void done() {
try {
get();
} catch (InterruptedException ex) {
logger.fatal("Update Matches Task error", ex);
} catch (ExecutionException ex) {
logger.fatal("Update Matches Task error", ex);
} catch (CancellationException ex) {}
}
}

View file

@ -44,21 +44,21 @@ public class CollectionViewerPane extends MagePane {
public CollectionViewerPane() {
boolean initialized = false;
this.setTitle("Collection Viewier");
this.setTitle("Collection Viewier");
if (Plugins.getInstance().isThemePluginLoaded()) {
Map<String, JComponent> ui = new HashMap<String, JComponent>();
JComponent container = Plugins.getInstance().updateTablePanel(ui);
if (container != null) {
collectionViewerPanel = new CollectionViewerPanel();
initComponents(container);
container.add(collectionViewerPanel);
container.setOpaque(false);
collectionViewerPanel.setOpaque(false);
initialized = true;
}
Map<String, JComponent> ui = new HashMap<String, JComponent>();
JComponent container = Plugins.getInstance().updateTablePanel(ui);
if (container != null) {
collectionViewerPanel = new CollectionViewerPanel();
initComponents(container);
container.add(collectionViewerPanel);
container.setOpaque(false);
collectionViewerPanel.setOpaque(false);
initialized = true;
}
}
if (!initialized) {
initComponents(null);
initComponents(null);
}
}

View file

@ -147,7 +147,7 @@ public final class CollectionViewerPanel extends JPanel {
}
});
jPanel1.add(Box.createVerticalGlue());
jPanel1.add(Box.createVerticalGlue());
bigCard.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
bigCard.setAlignmentX(Component.LEFT_ALIGNMENT);
@ -182,14 +182,14 @@ public final class CollectionViewerPanel extends JPanel {
}
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {
Component c = this.getParent();
while (c != null && !(c instanceof CollectionViewerPane)) {
c = c.getParent();
}
if (c != null)
c.setVisible(false);
}
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {
Component c = this.getParent();
while (c != null && !(c instanceof CollectionViewerPane)) {
c = c.getParent();
}
if (c != null)
c.setVisible(false);
}
private final class MageBookContainer extends JPanel {
public MageBookContainer() {
@ -218,7 +218,7 @@ public final class CollectionViewerPanel extends JPanel {
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private mage.client.cards.BigCard bigCard;
private javax.swing.JButton btnExit;
private javax.swing.JButton btnExit;
private JComboBox formats;
private MageBook mageBook;
private JRadioButton small3x3;

View file

@ -62,9 +62,9 @@ import java.util.UUID;
* @author nantuko
*/
public class MageBook extends JComponent {
public static final String LAYOUT_3x3 = "small";
public static final String LAYOUT_4x4 = "big";
public MageBook(BigCard bigCard) {

View file

@ -38,41 +38,41 @@ import mage.view.CardView;
* @author nantuko
*/
public class CardHelper {
private CardHelper() {
}
public static String getColor(CardView c) {
if (c.getColor().getColorCount() == 0) return "Colorless";
else if (c.getColor().getColorCount() > 1) return "Gold";
else if (c.getColor().isBlack()) return "Black";
else if (c.getColor().isBlue()) return "Blue";
else if (c.getColor().isWhite()) return "White";
else if (c.getColor().isGreen()) return "Green";
else if (c.getColor().isRed()) return "Red";
return "";
}
public static String getType(CardView c) {
StringBuilder type = new StringBuilder();
for (String superType : c.getSuperTypes()) {
type.append(superType);
type.append(" ");
}
for (CardType cardType : c.getCardTypes()) {
type.append(cardType.toString());
type.append(" ");
}
if (c.getSubTypes().size() > 0) {
type.append("- ");
for (String subType : c.getSubTypes()) {
type.append(subType);
type.append(" ");
}
}
return type.toString();
}
public static boolean isCreature(CardView c) {
return c.getCardTypes().contains(CardType.CREATURE);
}
private CardHelper() {
}
public static String getColor(CardView c) {
if (c.getColor().getColorCount() == 0) return "Colorless";
else if (c.getColor().getColorCount() > 1) return "Gold";
else if (c.getColor().isBlack()) return "Black";
else if (c.getColor().isBlue()) return "Blue";
else if (c.getColor().isWhite()) return "White";
else if (c.getColor().isGreen()) return "Green";
else if (c.getColor().isRed()) return "Red";
return "";
}
public static String getType(CardView c) {
StringBuilder type = new StringBuilder();
for (String superType : c.getSuperTypes()) {
type.append(superType);
type.append(" ");
}
for (CardType cardType : c.getCardTypes()) {
type.append(cardType.toString());
type.append(" ");
}
if (c.getSubTypes().size() > 0) {
type.append("- ");
for (String subType : c.getSubTypes()) {
type.append(subType);
type.append(" ");
}
}
return type.toString();
}
public static boolean isCreature(CardView c) {
return c.getCardTypes().contains(CardType.CREATURE);
}
}

View file

@ -58,142 +58,142 @@ import java.util.List;
*/
public class CardTableSelector extends javax.swing.JPanel implements ComponentListener {
private final List<Card> cards = new ArrayList<Card>();
private final FilterCard filter = new FilterCard();
private BigCard bigCard;
protected CardEventSource cardEventSource = new CardEventSource();
private DeckEditorMode mode = DeckEditorMode.Constructed;
private final List<Card> cards = new ArrayList<Card>();
private final FilterCard filter = new FilterCard();
private BigCard bigCard;
protected CardEventSource cardEventSource = new CardEventSource();
private DeckEditorMode mode = DeckEditorMode.Constructed;
public CardTableSelector() {
initComponents();
this.addComponentListener(this);
setOpaque(false);
mainTable.setOpaque(false);
jScrollPane1.setOpaque(false);
jScrollPane1.getViewport().setOpaque(false);
cbSortBy.setModel(new DefaultComboBoxModel(SortBy.values()));
cbSortBy.setVisible(false);
chkPiles.setVisible(false);
mainTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && !e.isConsumed()) {
e.consume();
jButtonAddToMainActionPerformed(null);
}
}
});
this.addComponentListener(this);
setOpaque(false);
mainTable.setOpaque(false);
jScrollPane1.setOpaque(false);
jScrollPane1.getViewport().setOpaque(false);
cbSortBy.setModel(new DefaultComboBoxModel(SortBy.values()));
cbSortBy.setVisible(false);
chkPiles.setVisible(false);
mainTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && !e.isConsumed()) {
e.consume();
jButtonAddToMainActionPerformed(null);
}
}
});
}
public void loadCards(List<Card> sideboard, BigCard bigCard, boolean construct) {
this.bigCard = bigCard;
this.btnBooster.setVisible(false);
this.btnClear.setVisible(false);
this.cbExpansionSet.setVisible(false);
this.cards.clear();
for (Card card: sideboard) {
this.cards.add(card);
}
initFilter();
filterCards();
}
public void loadCards(List<Card> sideboard, BigCard bigCard, boolean construct) {
this.bigCard = bigCard;
this.btnBooster.setVisible(false);
this.btnClear.setVisible(false);
this.cbExpansionSet.setVisible(false);
this.cards.clear();
for (Card card: sideboard) {
this.cards.add(card);
}
initFilter();
filterCards();
}
public void loadCards(BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(true);
this.btnClear.setVisible(true);
this.cbExpansionSet.setVisible(true);
Object[] l = Sets.getInstance().values().toArray();
Arrays.sort(l, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return ((ExpansionSet)o1).getName().compareTo(((ExpansionSet)o2).getName());
}
});
cbExpansionSet.setModel(new DefaultComboBoxModel(l));
cbExpansionSet.insertItemAt("-- All sets -- ", 0);
cbExpansionSet.setSelectedIndex(0);
initFilter();
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
}
filterCards();
}
public void loadCards(BigCard bigCard) {
this.bigCard = bigCard;
this.btnBooster.setVisible(true);
this.btnClear.setVisible(true);
this.cbExpansionSet.setVisible(true);
Object[] l = Sets.getInstance().values().toArray();
Arrays.sort(l, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return ((ExpansionSet)o1).getName().compareTo(((ExpansionSet)o2).getName());
}
});
cbExpansionSet.setModel(new DefaultComboBoxModel(l));
cbExpansionSet.insertItemAt("-- All sets -- ", 0);
cbExpansionSet.setSelectedIndex(0);
initFilter();
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
}
filterCards();
}
private void initFilter() {
filter.setUseColor(true);
filter.getColor().setBlack(true);
filter.getColor().setBlue(true);
filter.getColor().setGreen(true);
filter.getColor().setWhite(true);
filter.getColor().setRed(true);
filter.setColorless(true);
filter.setUseColorless(true);
filter.setNotColor(false);
filter.setScopeColor(ComparisonScope.Any);
filter.getCardType().add(CardType.LAND);
filter.getCardType().add(CardType.ARTIFACT);
filter.getCardType().add(CardType.CREATURE);
filter.getCardType().add(CardType.ENCHANTMENT);
filter.getCardType().add(CardType.INSTANT);
filter.getCardType().add(CardType.PLANESWALKER);
filter.getCardType().add(CardType.SORCERY);
filter.setScopeCardType(ComparisonScope.Any);
}
private void initFilter() {
filter.setUseColor(true);
filter.getColor().setBlack(true);
filter.getColor().setBlue(true);
filter.getColor().setGreen(true);
filter.getColor().setWhite(true);
filter.getColor().setRed(true);
filter.setColorless(true);
filter.setUseColorless(true);
filter.setNotColor(false);
filter.setScopeColor(ComparisonScope.Any);
filter.getCardType().add(CardType.LAND);
filter.getCardType().add(CardType.ARTIFACT);
filter.getCardType().add(CardType.CREATURE);
filter.getCardType().add(CardType.ENCHANTMENT);
filter.getCardType().add(CardType.INSTANT);
filter.getCardType().add(CardType.PLANESWALKER);
filter.getCardType().add(CardType.SORCERY);
filter.setScopeCardType(ComparisonScope.Any);
}
private void filterCards() {
try {
List<Card> filteredCards = new ArrayList<Card>();
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (!cards.isEmpty()) {
for (Card card: cards) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
this.mainModel.loadCards(new CardsView(filteredCards), (SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected(), bigCard, null);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
private void filterCards() {
try {
List<Card> filteredCards = new ArrayList<Card>();
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (!cards.isEmpty()) {
for (Card card: cards) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (filter.match(card, null))
filteredCards.add(card);
}
}
this.mainModel.loadCards(new CardsView(filteredCards), (SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected(), bigCard, null);
}
finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
public ICardGrid getCardsList() {
return this.mainModel;
}
public ICardGrid getCardsList() {
return this.mainModel;
}
public void removeCard(UUID cardId) {
this.mainModel.removeCard(cardId);
for (Card card: cards) {
if (card.getId().equals(cardId)) {
cards.remove(card);
break;
}
}
}
public void removeCard(UUID cardId) {
this.mainModel.removeCard(cardId);
for (Card card: cards) {
if (card.getId().equals(cardId)) {
cards.remove(card);
break;
}
}
}
public Card getCard(UUID cardId) {
if (!cards.isEmpty()) {
for (Card card: cards) {
if (card.getId().equals(cardId))
return card;
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (card.getId().equals(cardId))
return card;
}
}
return null;
}
public Card getCard(UUID cardId) {
if (!cards.isEmpty()) {
for (Card card: cards) {
if (card.getId().equals(cardId))
return card;
}
}
else {
for (Card card: CardsStorage.getAllCards()) {
if (card.getId().equals(cardId))
return card;
}
}
return null;
}
private void initComponents() {
@ -219,13 +219,13 @@ public class CardTableSelector extends javax.swing.JPanel implements ComponentLi
rdoPlaneswalkers = new javax.swing.JRadioButton();
chkPiles = new javax.swing.JCheckBox();
cbSortBy = new javax.swing.JComboBox();
jTextFieldSearch = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jButtonSearch = new javax.swing.JButton();
jButtonClean = new javax.swing.JButton();
jSeparator1 = new javax.swing.JSeparator();
jButtonAddToMain = new javax.swing.JButton();
jButtonAddToSideboard = new javax.swing.JButton();
jTextFieldSearch = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jButtonSearch = new javax.swing.JButton();
jButtonClean = new javax.swing.JButton();
jSeparator1 = new javax.swing.JSeparator();
jButtonAddToMain = new javax.swing.JButton();
jButtonAddToSideboard = new javax.swing.JButton();
tbColor.setFloatable(false);
tbColor.setRollover(true);
@ -331,24 +331,24 @@ public class CardTableSelector extends javax.swing.JPanel implements ComponentLi
}
});
tbColor.add(btnClear);
mainModel = new TableModel();
mainModel.addListeners(mainTable);
mainModel.addListeners(mainTable);
mainTable.setModel(mainModel);
mainTable.setForeground(Color.white);
DefaultTableCellRenderer myRenderer = (DefaultTableCellRenderer) mainTable.getDefaultRenderer(String.class);
myRenderer.setBackground(new Color(0, 0, 0, 100));
mainTable.getColumnModel().getColumn(0).setMaxWidth(0);
mainTable.getColumnModel().getColumn(0).setPreferredWidth(10);
mainTable.getColumnModel().getColumn(1).setPreferredWidth(110);
mainTable.getColumnModel().getColumn(2).setPreferredWidth(90);
mainTable.getColumnModel().getColumn(3).setPreferredWidth(50);
mainTable.getColumnModel().getColumn(4).setPreferredWidth(170);
mainTable.getColumnModel().getColumn(5).setPreferredWidth(30);
mainTable.getColumnModel().getColumn(6).setPreferredWidth(15);
mainTable.getColumnModel().getColumn(7).setPreferredWidth(15);
mainTable.setForeground(Color.white);
DefaultTableCellRenderer myRenderer = (DefaultTableCellRenderer) mainTable.getDefaultRenderer(String.class);
myRenderer.setBackground(new Color(0, 0, 0, 100));
mainTable.getColumnModel().getColumn(0).setMaxWidth(0);
mainTable.getColumnModel().getColumn(0).setPreferredWidth(10);
mainTable.getColumnModel().getColumn(1).setPreferredWidth(110);
mainTable.getColumnModel().getColumn(2).setPreferredWidth(90);
mainTable.getColumnModel().getColumn(3).setPreferredWidth(50);
mainTable.getColumnModel().getColumn(4).setPreferredWidth(170);
mainTable.getColumnModel().getColumn(5).setPreferredWidth(30);
mainTable.getColumnModel().getColumn(6).setPreferredWidth(15);
mainTable.getColumnModel().getColumn(7).setPreferredWidth(15);
jScrollPane1.setViewportView(mainTable);
tbTypes.setFloatable(false);
@ -457,266 +457,266 @@ public class CardTableSelector extends javax.swing.JPanel implements ComponentLi
});
tbTypes.add(cbSortBy);
jLabel1.setText("Search (by name,in rules):");
jLabel1.setText("Search (by name,in rules):");
jButtonSearch.setLabel("Search");
jButtonSearch.setMaximumSize(new java.awt.Dimension(85, 23));
jButtonSearch.setMinimumSize(new java.awt.Dimension(85, 23));
jButtonSearch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSearchActionPerformed(evt);
}
});
jButtonSearch.setLabel("Search");
jButtonSearch.setMaximumSize(new java.awt.Dimension(85, 23));
jButtonSearch.setMinimumSize(new java.awt.Dimension(85, 23));
jButtonSearch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSearchActionPerformed(evt);
}
});
jButtonClean.setText("Clear");
jButtonClean.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCleanActionPerformed(evt);
}
});
jButtonClean.setText("Clear");
jButtonClean.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCleanActionPerformed(evt);
}
});
jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
jButtonAddToMain.setLabel("Add to Main");
jButtonAddToMain.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToMainActionPerformed(evt);
}
});
jButtonAddToMain.setLabel("Add to Main");
jButtonAddToMain.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToMainActionPerformed(evt);
}
});
jButtonAddToSideboard.setLabel("Add to Sideboard");
jButtonAddToSideboard.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToSideboardActionPerformed(evt);
}
});
jButtonAddToSideboard.setLabel("Add to Sideboard");
jButtonAddToSideboard.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAddToSideboardActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tbColor, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addComponent(tbTypes, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButtonAddToMain, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonAddToSideboard)
.addGap(18, 18, 18)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonClean)
.addContainerGap(322, Short.MAX_VALUE))
);
.addComponent(tbColor, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addComponent(tbTypes, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 938, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButtonAddToMain, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonAddToSideboard)
.addGap(18, 18, 18)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonClean)
.addContainerGap(322, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(tbColor, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(tbTypes, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonAddToMain)
.addComponent(jButtonAddToSideboard))
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jButtonSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButtonClean)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonAddToMain)
.addComponent(jButtonAddToSideboard))
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jButtonSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButtonClean)
.addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
}
private void rdoGreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoGreenActionPerformed
filter.getColor().setGreen(this.rdoGreen.isSelected());
filterCards();
}//GEN-LAST:event_rdoGreenActionPerformed
private void rdoGreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoGreenActionPerformed
filter.getColor().setGreen(this.rdoGreen.isSelected());
filterCards();
}//GEN-LAST:event_rdoGreenActionPerformed
private void rdoBlackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlackActionPerformed
filter.getColor().setBlack(this.rdoBlack.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlackActionPerformed
private void rdoBlackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlackActionPerformed
filter.getColor().setBlack(this.rdoBlack.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlackActionPerformed
private void rdoWhiteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoWhiteActionPerformed
filter.getColor().setWhite(this.rdoWhite.isSelected());
filterCards();
}//GEN-LAST:event_rdoWhiteActionPerformed
private void rdoWhiteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoWhiteActionPerformed
filter.getColor().setWhite(this.rdoWhite.isSelected());
filterCards();
}//GEN-LAST:event_rdoWhiteActionPerformed
private void rdoRedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoRedActionPerformed
filter.getColor().setRed(this.rdoRed.isSelected());
filterCards();
}//GEN-LAST:event_rdoRedActionPerformed
private void rdoRedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoRedActionPerformed
filter.getColor().setRed(this.rdoRed.isSelected());
filterCards();
}//GEN-LAST:event_rdoRedActionPerformed
private void rdoBlueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlueActionPerformed
filter.getColor().setBlue(this.rdoBlue.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlueActionPerformed
private void rdoBlueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBlueActionPerformed
filter.getColor().setBlue(this.rdoBlue.isSelected());
filterCards();
}//GEN-LAST:event_rdoBlueActionPerformed
private void rdoColorlessActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoColorlessActionPerformed
filter.setColorless(this.rdoColorless.isSelected());
filterCards();
}//GEN-LAST:event_rdoColorlessActionPerformed
private void rdoColorlessActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoColorlessActionPerformed
filter.setColorless(this.rdoColorless.isSelected());
filterCards();
}//GEN-LAST:event_rdoColorlessActionPerformed
private void rdoLandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoLandActionPerformed
if (this.rdoLand.isSelected())
filter.getCardType().add(CardType.LAND);
else
filter.getCardType().remove(CardType.LAND);
filterCards();
}//GEN-LAST:event_rdoLandActionPerformed
private void rdoLandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoLandActionPerformed
if (this.rdoLand.isSelected())
filter.getCardType().add(CardType.LAND);
else
filter.getCardType().remove(CardType.LAND);
filterCards();
}//GEN-LAST:event_rdoLandActionPerformed
private void rdoCreaturesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoCreaturesActionPerformed
if (this.rdoCreatures.isSelected())
filter.getCardType().add(CardType.CREATURE);
else
filter.getCardType().remove(CardType.CREATURE);
filterCards();
}//GEN-LAST:event_rdoCreaturesActionPerformed
private void rdoCreaturesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoCreaturesActionPerformed
if (this.rdoCreatures.isSelected())
filter.getCardType().add(CardType.CREATURE);
else
filter.getCardType().remove(CardType.CREATURE);
filterCards();
}//GEN-LAST:event_rdoCreaturesActionPerformed
private void rdoArtifactsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoArtifactsActionPerformed
if (this.rdoArtifacts.isSelected())
filter.getCardType().add(CardType.ARTIFACT);
else
filter.getCardType().remove(CardType.ARTIFACT);
filterCards();
}//GEN-LAST:event_rdoArtifactsActionPerformed
private void rdoArtifactsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoArtifactsActionPerformed
if (this.rdoArtifacts.isSelected())
filter.getCardType().add(CardType.ARTIFACT);
else
filter.getCardType().remove(CardType.ARTIFACT);
filterCards();
}//GEN-LAST:event_rdoArtifactsActionPerformed
private void rdoEnchantmentsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoEnchantmentsActionPerformed
if (this.rdoEnchantments.isSelected())
filter.getCardType().add(CardType.ENCHANTMENT);
else
filter.getCardType().remove(CardType.ENCHANTMENT);
filterCards();
}//GEN-LAST:event_rdoEnchantmentsActionPerformed
private void rdoEnchantmentsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoEnchantmentsActionPerformed
if (this.rdoEnchantments.isSelected())
filter.getCardType().add(CardType.ENCHANTMENT);
else
filter.getCardType().remove(CardType.ENCHANTMENT);
filterCards();
}//GEN-LAST:event_rdoEnchantmentsActionPerformed
private void rdoInstantsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoInstantsActionPerformed
if (this.rdoInstants.isSelected())
filter.getCardType().add(CardType.INSTANT);
else
filter.getCardType().remove(CardType.INSTANT);
filterCards();
}//GEN-LAST:event_rdoInstantsActionPerformed
private void rdoInstantsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoInstantsActionPerformed
if (this.rdoInstants.isSelected())
filter.getCardType().add(CardType.INSTANT);
else
filter.getCardType().remove(CardType.INSTANT);
filterCards();
}//GEN-LAST:event_rdoInstantsActionPerformed
private void rdoSorceriesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoSorceriesActionPerformed
if (this.rdoSorceries.isSelected())
filter.getCardType().add(CardType.SORCERY);
else
filter.getCardType().remove(CardType.SORCERY);
filterCards();
}//GEN-LAST:event_rdoSorceriesActionPerformed
private void rdoSorceriesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoSorceriesActionPerformed
if (this.rdoSorceries.isSelected())
filter.getCardType().add(CardType.SORCERY);
else
filter.getCardType().remove(CardType.SORCERY);
filterCards();
}//GEN-LAST:event_rdoSorceriesActionPerformed
private void rdoPlaneswalkersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoPlaneswalkersActionPerformed
if (this.rdoPlaneswalkers.isSelected())
filter.getCardType().add(CardType.PLANESWALKER);
else
filter.getCardType().remove(CardType.PLANESWALKER);
filterCards();
}//GEN-LAST:event_rdoPlaneswalkersActionPerformed
private void rdoPlaneswalkersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoPlaneswalkersActionPerformed
if (this.rdoPlaneswalkers.isSelected())
filter.getCardType().add(CardType.PLANESWALKER);
else
filter.getCardType().remove(CardType.PLANESWALKER);
filterCards();
}//GEN-LAST:event_rdoPlaneswalkersActionPerformed
private void cbExpansionSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbExpansionSetActionPerformed
filter.getExpansionSetCode().clear();
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
}
filterCards();
}//GEN-LAST:event_cbExpansionSetActionPerformed
private void cbExpansionSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbExpansionSetActionPerformed
filter.getExpansionSetCode().clear();
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
filter.getExpansionSetCode().add(((ExpansionSet)this.cbExpansionSet.getSelectedItem()).getCode());
}
filterCards();
}//GEN-LAST:event_cbExpansionSetActionPerformed
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
cards.clear();
filterCards();
}//GEN-LAST:event_btnClearActionPerformed
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
cards.clear();
filterCards();
}//GEN-LAST:event_btnClearActionPerformed
private void btnBoosterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBoosterActionPerformed
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
for (Card card: booster) {
cards.add(card);
}
filterCards();
}
}//GEN-LAST:event_btnBoosterActionPerformed
private void btnBoosterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBoosterActionPerformed
if (this.cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
for (Card card: booster) {
cards.add(card);
}
filterCards();
}
}//GEN-LAST:event_btnBoosterActionPerformed
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_cbSortByActionPerformed
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_cbSortByActionPerformed
private void chkPilesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkPilesActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_chkPilesActionPerformed
private void chkPilesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkPilesActionPerformed
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}//GEN-LAST:event_chkPilesActionPerformed
private void jButtonAddToMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
if (!mode.equals(DeckEditorMode.Constructed))
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButton3ActionPerformed
private void jButtonAddToMainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.doubleClick(index);
}
if (!mode.equals(DeckEditorMode.Constructed))
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButton3ActionPerformed
private void jButtonAddToSideboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.shiftDoubleClick(index);
}
if (!mode.equals(DeckEditorMode.Constructed))
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButton4ActionPerformed
private void jButtonAddToSideboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
if (mainTable.getSelectedRowCount() > 0) {
int[] n = mainTable.getSelectedRows();
List<Integer> indexes = asList(n);
Collections.reverse(indexes);
for (Integer index : indexes) {
mainModel.shiftDoubleClick(index);
}
if (!mode.equals(DeckEditorMode.Constructed))
mainModel.fireTableDataChanged();
}
}//GEN-LAST:event_jButton4ActionPerformed
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;
for (int i : is) list.add(i);
return list;
}
private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
String name = jTextFieldSearch.getText().trim();
filter.setText(name);
filterCards();
}//GEN-LAST:event_jButton1ActionPerformed
private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
String name = jTextFieldSearch.getText().trim();
filter.setText(name);
filterCards();
}//GEN-LAST:event_jButton1ActionPerformed
private void jButtonCleanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
jTextFieldSearch.setText("");
filter.setText("");
filterCards();
}//GEN-LAST:event_jButton2ActionPerformed
private void jButtonCleanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
jTextFieldSearch.setText("");
filter.setText("");
filterCards();
}//GEN-LAST:event_jButton2ActionPerformed
private TableModel mainModel;
private javax.swing.JButton btnBooster;
private javax.swing.JButton btnClear;
private JTable mainTable = new JTable();
private javax.swing.JComboBox cbExpansionSet;
private javax.swing.JComboBox cbExpansionSet;
private javax.swing.JComboBox cbSortBy;
private javax.swing.JCheckBox chkPiles;
private javax.swing.JButton jButtonSearch;
private javax.swing.JButton jButtonClean;
private javax.swing.JButton jButtonAddToMain;
private javax.swing.JButton jButtonAddToSideboard;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextField jTextFieldSearch;
private javax.swing.JButton jButtonSearch;
private javax.swing.JButton jButtonClean;
private javax.swing.JButton jButtonAddToMain;
private javax.swing.JButton jButtonAddToSideboard;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextField jTextFieldSearch;
private javax.swing.JRadioButton rdoArtifacts;
private javax.swing.JRadioButton rdoBlack;
private javax.swing.JRadioButton rdoBlue;
@ -733,31 +733,31 @@ public class CardTableSelector extends javax.swing.JPanel implements ComponentLi
private javax.swing.JToolBar tbColor;
private javax.swing.JToolBar tbTypes;
@Override
public void componentResized(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentResized(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentMoved(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentMoved(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentShown(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentShown(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentHidden(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
@Override
public void componentHidden(ComponentEvent e) {
if (cbSortBy.getSelectedItem() instanceof SortBy)
this.mainModel.drawCards((SortBy) cbSortBy.getSelectedItem(), chkPiles.isSelected());
}
public void setMode(DeckEditorMode mode) {
this.mode = mode;
}
public void setMode(DeckEditorMode mode) {
this.mode = mode;
}
}

View file

@ -38,64 +38,64 @@ import mage.view.CardView;
* @author nantuko
*/
public class MageCardComparator implements Comparator<CardView> {
private final int column;
private boolean ascending;
private final int column;
private boolean ascending;
public MageCardComparator(int column, boolean ascending) {
this.column = column;
this.ascending = ascending;
}
public MageCardComparator(int column, boolean ascending) {
this.column = column;
this.ascending = ascending;
}
public int compare(CardView a, CardView b) {
Comparable aCom = null;
Comparable bCom = null;
public int compare(CardView a, CardView b) {
Comparable aCom = null;
Comparable bCom = null;
if (column == 0)// #skip
{
aCom = Integer.valueOf(1);
bCom = Integer.valueOf(1);
} else if (column == 1)// Name
{
aCom = a.getName();
bCom = b.getName();
if (aCom.equals(bCom) && a.getExpansionSetCode().equals(b.getExpansionSetCode())) {
aCom = a.getCardNumber();
bCom = b.getCardNumber();
}
} else if (column == 2)// Cost
{
aCom = a.getConvertedManaCost();
bCom = b.getConvertedManaCost();
} else if (column == 3)// Color
{
aCom = CardHelper.getColor(a);
bCom = CardHelper.getColor(b);
} else if (column == 4)// Type
{
aCom = CardHelper.getType(a);
bCom = CardHelper.getType(b);
} else if (column == 5)// Stats, attack and defense
{
aCom = new Float(-1);
bCom = new Float(-1);
if (column == 0)// #skip
{
aCom = Integer.valueOf(1);
bCom = Integer.valueOf(1);
} else if (column == 1)// Name
{
aCom = a.getName();
bCom = b.getName();
if (aCom.equals(bCom) && a.getExpansionSetCode().equals(b.getExpansionSetCode())) {
aCom = a.getCardNumber();
bCom = b.getCardNumber();
}
} else if (column == 2)// Cost
{
aCom = a.getConvertedManaCost();
bCom = b.getConvertedManaCost();
} else if (column == 3)// Color
{
aCom = CardHelper.getColor(a);
bCom = CardHelper.getColor(b);
} else if (column == 4)// Type
{
aCom = CardHelper.getType(a);
bCom = CardHelper.getType(b);
} else if (column == 5)// Stats, attack and defense
{
aCom = new Float(-1);
bCom = new Float(-1);
if (CardHelper.isCreature(a))
aCom = new Float(a.getPower() + "." + a.getToughness());
if (CardHelper.isCreature(b))
bCom = new Float(b.getPower() + "." + b.getToughness());
} else if (column == 6)// Rarity
{
aCom = a.getRarity().toString();
bCom = b.getRarity().toString();
} else if (column == 7)// Set name
{
aCom = a.getExpansionSetCode();
bCom = b.getExpansionSetCode();
}
if (CardHelper.isCreature(a))
aCom = new Float(a.getPower() + "." + a.getToughness());
if (CardHelper.isCreature(b))
bCom = new Float(b.getPower() + "." + b.getToughness());
} else if (column == 6)// Rarity
{
aCom = a.getRarity().toString();
bCom = b.getRarity().toString();
} else if (column == 7)// Set name
{
aCom = a.getExpansionSetCode();
bCom = b.getExpansionSetCode();
}
if (ascending)
return aCom.compareTo(bCom);
else
return bCom.compareTo(aCom);
}// compare()
if (ascending)
return aCom.compareTo(bCom);
else
return bCom.compareTo(aCom);
}// compare()
}

View file

@ -62,220 +62,220 @@ import java.util.Map.Entry;
*/
public class TableModel extends AbstractTableModel implements ICardGrid {
private static final long serialVersionUID = -528008802935423088L;
private static final long serialVersionUID = -528008802935423088L;
private static final Logger log = Logger.getLogger(TableModel.class);
private static final Logger log = Logger.getLogger(TableModel.class);
protected CardEventSource cardEventSource = new CardEventSource();
protected BigCard bigCard;
protected UUID gameId;
private Map<UUID, CardView> cards = new LinkedHashMap<UUID, CardView>();
private Map<String, Integer> cardsNoCopies = new LinkedHashMap<String, Integer>();
private List<CardView> view = new ArrayList<CardView>();
private Dimension cardDimension;
protected CardEventSource cardEventSource = new CardEventSource();
protected BigCard bigCard;
protected UUID gameId;
private Map<UUID, CardView> cards = new LinkedHashMap<UUID, CardView>();
private Map<String, Integer> cardsNoCopies = new LinkedHashMap<String, Integer>();
private List<CardView> view = new ArrayList<CardView>();
private Dimension cardDimension;
private boolean displayNoCopies = false;
private UpdateCountsCallback updateCountsCallback;
private boolean displayNoCopies = false;
private UpdateCountsCallback updateCountsCallback;
private String column[] = { "", "Name", "Cost", "Color", "Type", "Stats", "Rarity", "Set" };
private String column[] = { "", "Name", "Cost", "Color", "Type", "Stats", "Rarity", "Set" };
private int recentSortedColumn;
private boolean recentAscending;
private int recentSortedColumn;
private boolean recentAscending;
@Override
public void loadCards(CardsView showCards, SortBy sortBy, boolean piles, BigCard bigCard, UUID gameId) {
this.bigCard = bigCard;
this.gameId = gameId;
int landCount = 0;
int creatureCount = 0;
for (CardView card : showCards.values()) {
if (!cards.containsKey(card.getId())) {
addCard(card, bigCard, gameId);
}
if (updateCountsCallback != null) {
if (card.getCardTypes().contains(Constants.CardType.LAND))
landCount++;
if (card.getCardTypes().contains(Constants.CardType.CREATURE))
creatureCount++;
}
}
// not easy logic for merge :)
for (Iterator<Entry<UUID, CardView>> i = cards.entrySet().iterator(); i.hasNext();) {
Entry<UUID, CardView> entry = i.next();
if (!showCards.containsKey(entry.getKey())) {
i.remove();
if (displayNoCopies) {
String key = entry.getValue().getName() + entry.getValue().getExpansionSetCode() + entry.getValue().getCardNumber();
if (cardsNoCopies.containsKey(key)) {
Integer count = cardsNoCopies.get(key);
count--;
if (count > 0) {
cardsNoCopies.put(key, count);
} else {
cardsNoCopies.remove(key);
}
for (int j = 0; j < view.size(); j++) {
CardView cv = view.get(j);
if (cv.getId().equals(entry.getKey())) {
if (count > 0) {
// replace by another card with the same name+setCode
String key1 = cv.getName()+cv.getExpansionSetCode();
for (CardView cardView : cards.values()) {
String key2 = cardView.getName()+cardView.getExpansionSetCode();
if ((key1).equals(key2)) {
view.set(j, cardView);
break;
}
}
} else {
view.remove(j);
}
break;
}
}
}
} else {
for (CardView cv : view) {
if (cv.getId().equals(entry.getKey())) {
view.remove(cv);
break;
}
}
}
}
}
public void loadCards(CardsView showCards, SortBy sortBy, boolean piles, BigCard bigCard, UUID gameId) {
this.bigCard = bigCard;
this.gameId = gameId;
int landCount = 0;
int creatureCount = 0;
for (CardView card : showCards.values()) {
if (!cards.containsKey(card.getId())) {
addCard(card, bigCard, gameId);
}
if (updateCountsCallback != null) {
if (card.getCardTypes().contains(Constants.CardType.LAND))
landCount++;
if (card.getCardTypes().contains(Constants.CardType.CREATURE))
creatureCount++;
}
}
// not easy logic for merge :)
for (Iterator<Entry<UUID, CardView>> i = cards.entrySet().iterator(); i.hasNext();) {
Entry<UUID, CardView> entry = i.next();
if (!showCards.containsKey(entry.getKey())) {
i.remove();
if (displayNoCopies) {
String key = entry.getValue().getName() + entry.getValue().getExpansionSetCode() + entry.getValue().getCardNumber();
if (cardsNoCopies.containsKey(key)) {
Integer count = cardsNoCopies.get(key);
count--;
if (count > 0) {
cardsNoCopies.put(key, count);
} else {
cardsNoCopies.remove(key);
}
for (int j = 0; j < view.size(); j++) {
CardView cv = view.get(j);
if (cv.getId().equals(entry.getKey())) {
if (count > 0) {
// replace by another card with the same name+setCode
String key1 = cv.getName()+cv.getExpansionSetCode();
for (CardView cardView : cards.values()) {
String key2 = cardView.getName()+cardView.getExpansionSetCode();
if ((key1).equals(key2)) {
view.set(j, cardView);
break;
}
}
} else {
view.remove(j);
}
break;
}
}
}
} else {
for (CardView cv : view) {
if (cv.getId().equals(entry.getKey())) {
view.remove(cv);
break;
}
}
}
}
}
if (updateCountsCallback != null) {
updateCountsCallback.update(cards.size(), creatureCount, landCount);
}
if (updateCountsCallback != null) {
updateCountsCallback.update(cards.size(), creatureCount, landCount);
}
sort(1, true);
drawCards(sortBy, piles);
}
@Override
public void refresh() {
fireTableDataChanged();
}
public void clear() {
view.clear();
cards.clear();
}
sort(1, true);
drawCards(sortBy, piles);
}
@Override
public int getRowCount() {
return view.size();
}
public void refresh() {
fireTableDataChanged();
}
public void clear() {
view.clear();
cards.clear();
}
@Override
public int getColumnCount() {
return column.length;
}
public int getRowCount() {
return view.size();
}
@Override
public String getColumnName(int n) {
return column[n];
}
public int getColumnCount() {
return column.length;
}
@Override
public Object getValueAt(int row, int column) {
return getColumn(view.get(row), column);
}
private Object getColumn(Object obj, int column) {
CardView c = (CardView) obj;
switch (column) {
case 0:
if (displayNoCopies) {
String key = c.getName() + c.getExpansionSetCode() + c.getCardNumber();
Integer count = cardsNoCopies.get(key);
return count != null ? count : "";
}
return "";
case 1:
return c.getName();
case 2:
StringBuilder s = new StringBuilder();
for (String cost : c.getManaCost()) {
s.append(cost);
}
String cost = s.toString();
if (cost.isEmpty()) {
return "0";
}
return cost;
case 3:
return CardHelper.getColor(c);
case 4:
return CardHelper.getType(c);
case 5:
return CardHelper.isCreature(c) ? c.getPower() + "/"
+ c.getToughness() : "-";
case 6:
return c.getRarity().toString();
case 7:
return c.getExpansionSetCode();
default:
return "error";
}
}
private void addCard(CardView card, BigCard bigCard, UUID gameId) {
if (cardDimension == null) {
cardDimension = new Dimension(Config.dimensions.frameWidth,
Config.dimensions.frameHeight);
}
cards.put(card.getId(), card);
if (displayNoCopies) {
String key = card.getName()+card.getExpansionSetCode()+card.getCardNumber();
Integer count = 1;
if (cardsNoCopies.containsKey(key)) {
count = cardsNoCopies.get(key) + 1;
} else {
view.add(card);
}
cardsNoCopies.put(key, count);
} else {
view.add(card);
}
}
public String getColumnName(int n) {
return column[n];
}
@Override
public void drawCards(SortBy sortBy, boolean piles) {
fireTableDataChanged();
}
public Object getValueAt(int row, int column) {
return getColumn(view.get(row), column);
}
public void removeCard(UUID cardId) {
cards.remove(cardId);
for (CardView cv : view) {
if (cv.getId().equals(cardId)) {
view.remove(cv);
break;
}
}
}
private Object getColumn(Object obj, int column) {
CardView c = (CardView) obj;
switch (column) {
case 0:
if (displayNoCopies) {
String key = c.getName() + c.getExpansionSetCode() + c.getCardNumber();
Integer count = cardsNoCopies.get(key);
return count != null ? count : "";
}
return "";
case 1:
return c.getName();
case 2:
StringBuilder s = new StringBuilder();
for (String cost : c.getManaCost()) {
s.append(cost);
}
String cost = s.toString();
if (cost.isEmpty()) {
return "0";
}
return cost;
case 3:
return CardHelper.getColor(c);
case 4:
return CardHelper.getType(c);
case 5:
return CardHelper.isCreature(c) ? c.getPower() + "/"
+ c.getToughness() : "-";
case 6:
return c.getRarity().toString();
case 7:
return c.getExpansionSetCode();
default:
return "error";
}
}
private void addCard(CardView card, BigCard bigCard, UUID gameId) {
if (cardDimension == null) {
cardDimension = new Dimension(Config.dimensions.frameWidth,
Config.dimensions.frameHeight);
}
cards.put(card.getId(), card);
if (displayNoCopies) {
String key = card.getName()+card.getExpansionSetCode()+card.getCardNumber();
Integer count = 1;
if (cardsNoCopies.containsKey(key)) {
count = cardsNoCopies.get(key) + 1;
} else {
view.add(card);
}
cardsNoCopies.put(key, count);
} else {
view.add(card);
}
}
@Override
public void addCardEventListener(Listener<Event> listener) {
cardEventSource.addListener(listener);
}
public void drawCards(SortBy sortBy, boolean piles) {
fireTableDataChanged();
}
public void removeCard(UUID cardId) {
cards.remove(cardId);
for (CardView cv : view) {
if (cv.getId().equals(cardId)) {
view.remove(cv);
break;
}
}
}
@Override
public void clearCardEventListeners() {
cardEventSource.clearListeners();
}
public void addCardEventListener(Listener<Event> listener) {
cardEventSource.addListener(listener);
}
public void doubleClick(int index) {
CardView card = view.get(index);
cardEventSource.doubleClick(card.getId(), "double-click");
}
@Override
public void clearCardEventListeners() {
cardEventSource.clearListeners();
}
public void shiftDoubleClick(int index) {
CardView card = view.get(index);
cardEventSource.shiftDoubleClick(card.getId(), "shift-double-click");
}
public void doubleClick(int index) {
CardView card = view.get(index);
cardEventSource.doubleClick(card.getId(), "double-click");
}
public void shiftDoubleClick(int index) {
CardView card = view.get(index);
cardEventSource.shiftDoubleClick(card.getId(), "shift-double-click");
}
public void removeFromMainEvent(int index) {
cardEventSource.removeFromMainEvent("remove-main");
@ -285,103 +285,103 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
cardEventSource.removeFromSideboardEvent("remove-sideboard");
}
public void addListeners(final JTable table) {
// updates card detail, listens to any key strokes
public void addListeners(final JTable table) {
// updates card detail, listens to any key strokes
table.addKeyListener(new KeyListener() {
table.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent ev) {}
public void keyPressed(KeyEvent ev) {}
@Override
public void keyTyped(KeyEvent ev) {}
public void keyTyped(KeyEvent ev) {}
@Override
public void keyReleased(KeyEvent ev) {
int row = table.getSelectedRow();
if (row != -1) {
showImage(row);
}
}
});
public void keyReleased(KeyEvent ev) {
int row = table.getSelectedRow();
if (row != -1) {
showImage(row);
}
}
});
// updates card detail, listens to any mouse clicks
table.addMouseListener(new MouseAdapter() {
// updates card detail, listens to any mouse clicks
table.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int row = table.getSelectedRow();
if (row != -1) {
showImage(row);
}
}
});
public void mousePressed(MouseEvent e) {
int row = table.getSelectedRow();
if (row != -1) {
showImage(row);
}
}
});
// sorts
MouseListener mouse = new MouseAdapter() {
// sorts
MouseListener mouse = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
TableColumnModel columnModel = table.getColumnModel();
int viewColumn = columnModel.getColumnIndexAtX(e.getX());
int column = table.convertColumnIndexToModel(viewColumn);
public void mousePressed(MouseEvent e) {
TableColumnModel columnModel = table.getColumnModel();
int viewColumn = columnModel.getColumnIndexAtX(e.getX());
int column = table.convertColumnIndexToModel(viewColumn);
if (column != -1) {
// sort ascending
boolean asc = true;
if (recentSortedColumn == column) {
asc = !recentAscending;
}
sort(column, asc);
fireTableDataChanged();
}
}
};
table.getTableHeader().addMouseListener(mouse);
}
if (column != -1) {
// sort ascending
boolean asc = true;
if (recentSortedColumn == column) {
asc = !recentAscending;
}
sort(column, asc);
fireTableDataChanged();
}
}
};
table.getTableHeader().addMouseListener(mouse);
}
private void showImage(int row) {
CardView card = view.get(row);
if (!card.getId().equals(bigCard.getCardId())) {
if (!MageFrame.isLite()) {
Image image = Plugins.getInstance().getOriginalImage(card);
if (image != null && image instanceof BufferedImage) {
// XXX: scaled to fit width
image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth());
bigCard.setCard(card.getId(), image, new ArrayList<String>(), false);
} else {
drawCardText(card);
}
} else {
drawCardText(card);
}
}
}
private void showImage(int row) {
CardView card = view.get(row);
if (!card.getId().equals(bigCard.getCardId())) {
if (!MageFrame.isLite()) {
Image image = Plugins.getInstance().getOriginalImage(card);
if (image != null && image instanceof BufferedImage) {
// XXX: scaled to fit width
image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth());
bigCard.setCard(card.getId(), image, new ArrayList<String>(), false);
} else {
drawCardText(card);
}
} else {
drawCardText(card);
}
}
}
private void drawCardText(CardView card) {
JXPanel panel = GuiDisplayUtil.getDescription(card, bigCard.getWidth(), bigCard.getHeight());
panel.setVisible(true);
bigCard.hideTextComponent();
bigCard.addJXPanel(card.getId(), panel);
}
public List<CardView> getCardsView() {
return view;
}
private void drawCardText(CardView card) {
JXPanel panel = GuiDisplayUtil.getDescription(card, bigCard.getWidth(), bigCard.getHeight());
panel.setVisible(true);
bigCard.hideTextComponent();
bigCard.addJXPanel(card.getId(), panel);
}
public boolean sort(int column, boolean ascending) {
// used by addCard() to resort the cards
recentSortedColumn = column;
recentAscending = ascending;
public List<CardView> getCardsView() {
return view;
}
MageCardComparator sorter = new MageCardComparator(column, ascending);
Collections.sort(view, sorter);
public boolean sort(int column, boolean ascending) {
// used by addCard() to resort the cards
recentSortedColumn = column;
recentAscending = ascending;
fireTableDataChanged();
MageCardComparator sorter = new MageCardComparator(column, ascending);
Collections.sort(view, sorter);
return true;
}
fireTableDataChanged();
public void setDisplayNoCopies(boolean value) {
this.displayNoCopies = value;
}
return true;
}
public void setUpdateCountsCallback(UpdateCountsCallback callback) {
this.updateCountsCallback = callback;
}
public void setDisplayNoCopies(boolean value) {
this.displayNoCopies = value;
}
public void setUpdateCountsCallback(UpdateCountsCallback callback) {
this.updateCountsCallback = callback;
}
}

View file

@ -8,19 +8,19 @@ import javax.swing.*;
*/
public class UpdateCountsCallback {
private javax.swing.JLabel lblCount;
private javax.swing.JLabel lblCount;
private javax.swing.JLabel lblCreatureCount;
private javax.swing.JLabel lblLandCount;
public UpdateCountsCallback(JLabel count, JLabel creatures, JLabel lands) {
this.lblCount = count;
this.lblCreatureCount = creatures;
this.lblLandCount = lands;
}
public UpdateCountsCallback(JLabel count, JLabel creatures, JLabel lands) {
this.lblCount = count;
this.lblCreatureCount = creatures;
this.lblLandCount = lands;
}
public void update(int count, int creatures, int lands) {
this.lblCount.setText("Count: " + Integer.toString(count));
this.lblCreatureCount.setText("Creatures: " + Integer.toString(creatures));
this.lblLandCount.setText("Lands: " + Integer.toString(lands));
}
public void update(int count, int creatures, int lands) {
this.lblCount.setText("Count: " + Integer.toString(count));
this.lblCreatureCount.setText("Creatures: " + Integer.toString(creatures));
this.lblLandCount.setText("Lands: " + Integer.toString(lands));
}
}