From b0963798810a9d6faa9aab9e681ae3c419af3cd1 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sat, 25 Apr 2015 02:20:54 +0200 Subject: [PATCH] Update to table filtering. --- .../mage/client/deckeditor/CardSelector.java | 2 + .../java/mage/client/table/TablesPanel.form | 261 ++++++------ .../java/mage/client/table/TablesPanel.java | 381 ++++++++++++------ .../main/resources/buttons/format_block.png | Bin 233 -> 0 bytes .../resources/buttons/format_commander.png | Bin 224 -> 0 bytes .../main/resources/buttons/format_legacy.png | Bin 239 -> 0 bytes .../main/resources/buttons/format_modern.png | Bin 268 -> 0 bytes .../main/resources/buttons/format_other.png | Bin 253 -> 0 bytes .../resources/buttons/format_standard.png | Bin 259 -> 0 bytes .../resources/buttons/format_tiny_leader.png | Bin 252 -> 0 bytes .../main/resources/buttons/format_vintage.png | Bin 241 -> 0 bytes .../src/main/resources/buttons/match_new.png | Bin 669 -> 1052 bytes .../main/resources/buttons/state_active.png | Bin 244 -> 452 bytes .../main/resources/buttons/state_finished.png | Bin 241 -> 642 bytes .../main/resources/buttons/state_waiting.png | Bin 377 -> 370 bytes .../main/resources/buttons/tourney_new.png | Bin 679 -> 745 bytes 16 files changed, 388 insertions(+), 256 deletions(-) delete mode 100644 Mage.Client/src/main/resources/buttons/format_block.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_commander.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_legacy.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_modern.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_other.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_standard.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_tiny_leader.png delete mode 100644 Mage.Client/src/main/resources/buttons/format_vintage.png diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index bd7c4c6977..dee42eb34a 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -110,11 +110,13 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene setOpaque(false); cardGrid.setOpaque(false); + cardSelectorScrollPane.setOpaque(false); cardSelectorScrollPane.getViewport().setOpaque(false); cbSortBy.setModel(new DefaultComboBoxModel<>(SortBy.values())); cbSortBy.setSelectedItem(sortSetting.getSortBy()); jTextFieldSearch.addActionListener(searchAction); + // make the components more readable tbColor.setBackground(new Color(250, 250, 250, 150)); tbColor.setOpaque(true); // false = transparent diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.form b/Mage.Client/src/main/java/mage/client/table/TablesPanel.form index a0928fb15b..70deb88214 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.form +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.form @@ -16,7 +16,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -39,7 +39,13 @@ - + + + + + + + @@ -51,16 +57,13 @@ - - + + + + + + - - - - - - - @@ -74,20 +77,13 @@ - - - - - - - - - - - - - + + + + + + @@ -103,7 +99,7 @@ - + @@ -117,20 +113,21 @@ - + - + + @@ -138,16 +135,11 @@ - + - + - - - - - @@ -161,14 +153,10 @@ - - - - - + @@ -177,13 +165,8 @@ - + - - - - - @@ -197,14 +180,10 @@ - - - - - + @@ -215,11 +194,6 @@ - - - - - @@ -233,37 +207,35 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -271,11 +243,21 @@ + + + + + + + + + + @@ -283,111 +265,134 @@ + + + + + + + + + + - + + - - - + + + + + - - - + + + + + - - - + + + + + + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -517,7 +522,7 @@ - + diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index 523438c3bf..26455f0b5c 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -44,6 +44,7 @@ import java.beans.PropertyVetoException; import java.io.File; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -68,7 +69,6 @@ import mage.cards.decks.importer.DeckImporterUtil; import mage.client.MageFrame; import mage.client.chat.ChatPanel; import mage.client.components.MageComponents; -import mage.client.deckeditor.table.TableModel; import mage.client.dialog.JoinTableDialog; import mage.client.dialog.NewTableDialog; import mage.client.dialog.NewTournamentDialog; @@ -121,19 +121,6 @@ public class TablesPanel extends javax.swing.JPanel { initComponents(); tableModel.setSession(session); - - filterStateBar.setBackground(new Color(250, 250, 250, 150)); - filterStateBar.setOpaque(true); // false = transparent - - filterTypeBar.setBackground(new Color(250, 250, 250, 150)); - filterTypeBar.setOpaque(true); // false = transparent - - filterFormatBar1.setBackground(new Color(250, 250, 250, 150)); - filterFormatBar1.setOpaque(true); // false = transparent - - filterFormatBar2.setBackground(new Color(250, 250, 250, 150)); - filterFormatBar2.setOpaque(true); // false = transparent - tableTables.createDefaultColumnsFromModel(); activeTablesSorter = new MageTableRowSorter(tableModel); tableTables.setRowSorter(activeTablesSorter); @@ -144,14 +131,15 @@ public class TablesPanel extends javax.swing.JPanel { chatPanel.setBorder(null); chatPanel.setChatType(ChatPanel.ChatType.TABLES); - JComponent[] components = new JComponent[] {chatPanel, jSplitPane1, jScrollPane1, jScrollPane2, jPanel1, jPanel3}; + JComponent[] components = new JComponent[] {chatPanel, jSplitPane1, jScrollPane1, jScrollPane2, topPanel, jPanel3}; for (JComponent component : components) { component.setOpaque(false); } jScrollPane1.getViewport().setBackground(new Color(255,255,255,50)); jScrollPane2.getViewport().setBackground(new Color(255,255,255,50)); - + topPanel.setBackground(new Color(255,255,255,50)); + Action openTableAction; openTableAction = new AbstractAction() { @@ -261,7 +249,22 @@ public class TablesPanel extends javax.swing.JPanel { } }; - +// filterBar1.setBackground(new Color(250, 250, 250, 150)); +// filterBar1.setOpaque(true); // false = transparent +// +// filterBar2.setBackground(new Color(250, 250, 250, 150)); +// filterBar2.setOpaque(true); // false = transparent +// +// JComponent container = filterBar1; +// while (container.getParent() != null) { +// if (container.getParent() instanceof JComponent) { +// container = (JComponent) container.getParent(); +// container.setBackground(new Color(250, 250, 250, 150)); +// container.setOpaque(true); +// } +// +// } + // !!!! adds action buttons to the table panel (don't delete this) new ButtonColumn(tableTables, openTableAction, TableTableModel.ACTION_COLUMN); new ButtonColumn(tableCompleted, closedTableAction, MatchesTableModel.ACTION_COLUMN); @@ -313,7 +316,7 @@ public class TablesPanel extends javax.swing.JPanel { components.put("jScrollPane1", jScrollPane1); components.put("jScrollPane1ViewPort", jScrollPane1.getViewport()); - components.put("jPanel1", jPanel1); + components.put("jPanel1", topPanel); components.put("tablesPanel", this); return components; @@ -459,20 +462,84 @@ public class TablesPanel extends javax.swing.JPanel { private void activeTablesFilter() { // state - StringBuilder stateFilter = new StringBuilder(); + List> stateFilterList = new ArrayList<>(); if (btnStateWaiting.isSelected()) { - stateFilter.append("Waiting"); + stateFilterList.add(RowFilter.regexFilter("Waiting", TableTableModel.COLUMN_STATUS)); } if (btnStateActive.isSelected()) { - if (stateFilter.length() > 0) { - stateFilter.append("|"); - } - stateFilter.append("Dueling|Constructing|Drafting|Sideboard"); + stateFilterList.add(RowFilter.regexFilter("Dueling|Constructing|Drafting|Sideboard", TableTableModel.COLUMN_STATUS)); + } + + // type + List> typeFilterList = new ArrayList<>(); + if (btnTypeMatch.isSelected()) { + typeFilterList.add(RowFilter.regexFilter("Two|Commander|Free|Tiny", TableTableModel.COLUMN_GAME_TYPE)); + } + if (btnTypeTourneyConstructed.isSelected()) { + typeFilterList.add(RowFilter.regexFilter("Constructed", TableTableModel.COLUMN_GAME_TYPE)); + } + if (btnTypeTourneyLimited.isSelected()) { + typeFilterList.add(RowFilter.regexFilter("Booster|Sealed", TableTableModel.COLUMN_GAME_TYPE)); + } + + // format + List> formatFilterList = new ArrayList<>(); + if (btnFormatBlock.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Block", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatStandard.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Standard", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatModern.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Modern", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatCommander.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Commander", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatTinyLeader.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Tiny", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatLegacy.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Legacy", TableTableModel.COLUMN_DECK_TYPE)); + } + if (btnFormatVintage.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Vintage", TableTableModel.COLUMN_DECK_TYPE)); } - RowFilter rf = RowFilter.regexFilter(stateFilter.toString(), 4); - activeTablesSorter.setRowFilter(rf); + if (btnFormatOther.isSelected()) { + formatFilterList.add(RowFilter.regexFilter("Pauper|Extended|Limited", TableTableModel.COLUMN_DECK_TYPE)); + } + + if (stateFilterList.isEmpty() || typeFilterList.isEmpty() || formatFilterList.isEmpty()) { // no selection + activeTablesSorter.setRowFilter(RowFilter.regexFilter("Nothing", TableTableModel.COLUMN_GAME_TYPE)); + } else { + List> filterList = new ArrayList<>(); + + if (stateFilterList.size() > 1) { + filterList.add(RowFilter.orFilter(stateFilterList)); + } else if (stateFilterList.size() == 1) { + filterList.addAll(stateFilterList); + } + + if (typeFilterList.size() > 1) { + filterList.add(RowFilter.orFilter(typeFilterList)); + } else if (typeFilterList.size() == 1) { + filterList.addAll(typeFilterList); + } + + if (formatFilterList.size() > 1) { + filterList.add(RowFilter.orFilter(formatFilterList)); + } else if (formatFilterList.size() == 1) { + filterList.addAll(formatFilterList); + } + + if (filterList.size() == 1) { + activeTablesSorter.setRowFilter(filterList.get(0)); + } else { + activeTablesSorter.setRowFilter(RowFilter.andFilter(filterList)); + } + } } - + /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is @@ -482,27 +549,28 @@ public class TablesPanel extends javax.swing.JPanel { // //GEN-BEGIN:initComponents private void initComponents() { - jPanel1 = new javax.swing.JPanel(); + topPanel = new javax.swing.JPanel(); btnNewTable = new javax.swing.JButton(); btnNewTournament = new javax.swing.JButton(); - filterStateBar = new javax.swing.JToolBar(); + filterBar1 = new javax.swing.JToolBar(); btnStateWaiting = new javax.swing.JToggleButton(); btnStateActive = new javax.swing.JToggleButton(); btnStateFinished = new javax.swing.JToggleButton(); - filterTypeBar = new javax.swing.JToolBar(); + jSeparator1 = new javax.swing.JToolBar.Separator(); btnTypeMatch = new javax.swing.JToggleButton(); btnTypeTourneyConstructed = new javax.swing.JToggleButton(); btnTypeTourneyLimited = new javax.swing.JToggleButton(); - filterFormatBar1 = new javax.swing.JToolBar(); + filterBar2 = new javax.swing.JToolBar(); btnFormatBlock = new javax.swing.JToggleButton(); btnFormatStandard = new javax.swing.JToggleButton(); btnFormatModern = new javax.swing.JToggleButton(); + jSeparator3 = new javax.swing.JToolBar.Separator(); btnFormatCommander = new javax.swing.JToggleButton(); - filterFormatBar2 = new javax.swing.JToolBar(); + btnFormatTinyLeader = new javax.swing.JToggleButton(); + jSeparator2 = new javax.swing.JToolBar.Separator(); btnFormatLegacy = new javax.swing.JToggleButton(); btnFormatVintage = new javax.swing.JToggleButton(); btnFormatOther = new javax.swing.JToggleButton(); - btnFormatTinyLeader = new javax.swing.JToggleButton(); btnQuickStart = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); @@ -517,9 +585,12 @@ public class TablesPanel extends javax.swing.JPanel { jScrollPane2 = new javax.swing.JScrollPane(); tableCompleted = new javax.swing.JTable(); + topPanel.setBackground(java.awt.Color.white); + topPanel.setOpaque(false); + btnNewTable.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/match_new.png"))); // NOI18N btnNewTable.setToolTipText("Creates a new match table."); - btnNewTable.setMargin(new java.awt.Insets(10, 10, 10, 10)); + btnNewTable.setMargin(new java.awt.Insets(2, 2, 2, 2)); btnNewTable.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNewTableActionPerformed(evt); @@ -528,22 +599,22 @@ public class TablesPanel extends javax.swing.JPanel { btnNewTournament.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/tourney_new.png"))); // NOI18N btnNewTournament.setToolTipText("Creates a new tourney table."); - btnNewTournament.setMargin(new java.awt.Insets(10, 10, 10, 10)); + btnNewTournament.setMargin(new java.awt.Insets(2, 2, 2, 2)); btnNewTournament.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNewTournamentActionPerformed(evt); } }); - filterStateBar.setFloatable(false); - filterStateBar.setForeground(new java.awt.Color(102, 102, 255)); - filterStateBar.setFocusable(false); + filterBar1.setFloatable(false); + filterBar1.setForeground(new java.awt.Color(102, 102, 255)); + filterBar1.setFocusable(false); + filterBar1.setOpaque(false); - btnStateWaiting.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_waiting_off.png"))); // NOI18N + btnStateWaiting.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_waiting.png"))); // NOI18N btnStateWaiting.setSelected(true); - btnStateWaiting.setToolTipText("Show tables waiting for players."); + btnStateWaiting.setToolTipText("Shows all tables waiting for players."); btnStateWaiting.setActionCommand("stateWait"); - btnStateWaiting.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); btnStateWaiting.setFocusPainted(false); btnStateWaiting.setFocusable(false); btnStateWaiting.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); @@ -551,21 +622,18 @@ public class TablesPanel extends javax.swing.JPanel { btnStateWaiting.setMinimumSize(new java.awt.Dimension(27, 27)); btnStateWaiting.setPreferredSize(new java.awt.Dimension(23, 23)); btnStateWaiting.setRequestFocusEnabled(false); - btnStateWaiting.setRolloverEnabled(false); - btnStateWaiting.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_waiting.png"))); // NOI18N btnStateWaiting.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnStateWaiting.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - btnStateWaitingActionPerformed(evt); + btnFilterActionPerformed(evt); } }); - filterStateBar.add(btnStateWaiting); + filterBar1.add(btnStateWaiting); btnStateActive.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_active.png"))); // NOI18N btnStateActive.setSelected(true); - btnStateActive.setToolTipText("Show tables with active matches."); + btnStateActive.setToolTipText("Shows all tables with active matches."); btnStateActive.setActionCommand("stateActive"); - btnStateActive.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); btnStateActive.setFocusPainted(false); btnStateActive.setFocusable(false); btnStateActive.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); @@ -573,21 +641,18 @@ public class TablesPanel extends javax.swing.JPanel { btnStateActive.setMinimumSize(new java.awt.Dimension(27, 27)); btnStateActive.setPreferredSize(new java.awt.Dimension(23, 23)); btnStateActive.setRequestFocusEnabled(false); - btnStateActive.setRolloverEnabled(false); - btnStateActive.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_active.png"))); // NOI18N btnStateActive.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnStateActive.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - btnStateActiveActionPerformed(evt); + btnFilterActionPerformed(evt); } }); - filterStateBar.add(btnStateActive); + filterBar1.add(btnStateActive); btnStateFinished.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_finished.png"))); // NOI18N btnStateFinished.setSelected(true); btnStateFinished.setToolTipText("Toggles the visibility of the table of completed
matches and tournaments in the lower area.\n
Showing the last 50 finished matches."); btnStateFinished.setActionCommand("stateFinished"); - btnStateFinished.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); btnStateFinished.setFocusPainted(false); btnStateFinished.setFocusable(false); btnStateFinished.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); @@ -595,96 +660,166 @@ public class TablesPanel extends javax.swing.JPanel { btnStateFinished.setMinimumSize(new java.awt.Dimension(27, 27)); btnStateFinished.setPreferredSize(new java.awt.Dimension(23, 23)); btnStateFinished.setRequestFocusEnabled(false); - btnStateFinished.setRolloverEnabled(false); - btnStateFinished.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_finished.png"))); // NOI18N btnStateFinished.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); btnStateFinished.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnStateFinishedActionPerformed(evt); } }); - filterStateBar.add(btnStateFinished); - - filterTypeBar.setFloatable(false); - filterTypeBar.setFocusable(false); + filterBar1.add(btnStateFinished); + filterBar1.add(jSeparator1); btnTypeMatch.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_match.png"))); // NOI18N btnTypeMatch.setSelected(true); + btnTypeMatch.setToolTipText("Shows all non tournament tables."); btnTypeMatch.setActionCommand("typeMatch"); btnTypeMatch.setFocusable(false); btnTypeMatch.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeMatch.setMaximumSize(new java.awt.Dimension(27, 27)); + btnTypeMatch.setMinimumSize(new java.awt.Dimension(27, 27)); btnTypeMatch.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterTypeBar.add(btnTypeMatch); + btnTypeMatch.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar1.add(btnTypeMatch); btnTypeTourneyConstructed.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_tourney_construced.png"))); // NOI18N btnTypeTourneyConstructed.setSelected(true); + btnTypeTourneyConstructed.setToolTipText("Shows all constructed tournament tables."); btnTypeTourneyConstructed.setActionCommand("typeTourneyConstructed"); btnTypeTourneyConstructed.setFocusable(false); btnTypeTourneyConstructed.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeTourneyConstructed.setMaximumSize(new java.awt.Dimension(27, 27)); + btnTypeTourneyConstructed.setMinimumSize(new java.awt.Dimension(27, 27)); btnTypeTourneyConstructed.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterTypeBar.add(btnTypeTourneyConstructed); + btnTypeTourneyConstructed.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar1.add(btnTypeTourneyConstructed); btnTypeTourneyLimited.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_tourney_limited.png"))); // NOI18N btnTypeTourneyLimited.setSelected(true); + btnTypeTourneyLimited.setToolTipText("Shows all limited tournament tables."); btnTypeTourneyLimited.setActionCommand("typeTourneyLimited"); btnTypeTourneyLimited.setFocusable(false); btnTypeTourneyLimited.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeTourneyLimited.setMaximumSize(new java.awt.Dimension(27, 27)); + btnTypeTourneyLimited.setMinimumSize(new java.awt.Dimension(27, 27)); btnTypeTourneyLimited.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterTypeBar.add(btnTypeTourneyLimited); + btnTypeTourneyLimited.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar1.add(btnTypeTourneyLimited); - filterFormatBar1.setFloatable(false); - filterFormatBar1.setFocusable(false); + filterBar2.setFloatable(false); + filterBar2.setFocusable(false); + filterBar2.setOpaque(false); - btnFormatBlock.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_block.png"))); // NOI18N btnFormatBlock.setSelected(true); + btnFormatBlock.setText("Block"); + btnFormatBlock.setToolTipText("Block constructed formats."); btnFormatBlock.setFocusable(false); btnFormatBlock.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnFormatBlock.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterFormatBar1.add(btnFormatBlock); + btnFormatBlock.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatBlock); - btnFormatStandard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_standard.png"))); // NOI18N btnFormatStandard.setSelected(true); + btnFormatStandard.setText("Standard"); + btnFormatStandard.setToolTipText("Standard format."); btnFormatStandard.setFocusable(false); btnFormatStandard.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnFormatStandard.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterFormatBar1.add(btnFormatStandard); + btnFormatStandard.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatStandard); - btnFormatModern.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_modern.png"))); // NOI18N btnFormatModern.setSelected(true); - filterFormatBar1.add(btnFormatModern); + btnFormatModern.setText("Modern"); + btnFormatModern.setToolTipText("Modern format."); + btnFormatModern.setFocusable(false); + btnFormatModern.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatModern); + filterBar2.add(jSeparator3); - btnFormatCommander.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_commander.png"))); // NOI18N btnFormatCommander.setSelected(true); + btnFormatCommander.setText("Commander"); + btnFormatCommander.setToolTipText("Commander format."); btnFormatCommander.setFocusable(false); btnFormatCommander.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnFormatCommander.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterFormatBar1.add(btnFormatCommander); + btnFormatCommander.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatCommander); - filterFormatBar2.setFloatable(false); - filterFormatBar2.setToolTipText("All tables with active matches"); - filterFormatBar2.setFocusable(false); + btnFormatTinyLeader.setSelected(true); + btnFormatTinyLeader.setText("Tiny Leader"); + btnFormatTinyLeader.setToolTipText("Tiny Leader format."); + btnFormatTinyLeader.setFocusable(false); + btnFormatTinyLeader.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatTinyLeader); + filterBar2.add(jSeparator2); - btnFormatLegacy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_legacy.png"))); // NOI18N btnFormatLegacy.setSelected(true); + btnFormatLegacy.setText("Legacy"); + btnFormatLegacy.setToolTipText("Legacy format."); btnFormatLegacy.setFocusable(false); btnFormatLegacy.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnFormatLegacy.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterFormatBar2.add(btnFormatLegacy); + btnFormatLegacy.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatLegacy); - btnFormatVintage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_vintage.png"))); // NOI18N btnFormatVintage.setSelected(true); + btnFormatVintage.setText("Vintage"); + btnFormatVintage.setToolTipText("Vintage format."); btnFormatVintage.setFocusable(false); btnFormatVintage.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnFormatVintage.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - filterFormatBar2.add(btnFormatVintage); + btnFormatVintage.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatVintage); - btnFormatOther.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_other.png"))); // NOI18N btnFormatOther.setSelected(true); - filterFormatBar2.add(btnFormatOther); - - btnFormatTinyLeader.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_tiny_leader.png"))); // NOI18N - btnFormatTinyLeader.setSelected(true); - filterFormatBar2.add(btnFormatTinyLeader); + btnFormatOther.setText("Other"); + btnFormatOther.setToolTipText("Other formats (Pauper, Extended, etc.)"); + btnFormatOther.setFocusable(false); + btnFormatOther.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnFilterActionPerformed(evt); + } + }); + filterBar2.add(btnFormatOther); btnQuickStart.setText("Quick Start"); btnQuickStart.setFocusable(false); @@ -696,46 +831,38 @@ public class TablesPanel extends javax.swing.JPanel { } }); - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() + javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel); + topPanel.setLayout(topPanelLayout); + topPanelLayout.setHorizontalGroup( + topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(topPanelLayout.createSequentialGroup() .addContainerGap() .addComponent(btnNewTable) .addGap(6, 6, 6) .addComponent(btnNewTournament) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(filterStateBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(filterTypeBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(filterFormatBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(filterFormatBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnQuickStart) + .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(topPanelLayout.createSequentialGroup() + .addComponent(filterBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(223, 223, 223) + .addComponent(btnQuickStart)) + .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() + topPanelLayout.setVerticalGroup( + topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(topPanelLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnNewTable) .addComponent(btnNewTournament)) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(filterStateBar, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(filterTypeBar, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel1Layout.createSequentialGroup() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(filterFormatBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnQuickStart)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(filterFormatBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGroup(topPanelLayout.createSequentialGroup() + .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(filterBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnQuickStart)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(filterBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); @@ -815,7 +942,7 @@ public class TablesPanel extends javax.swing.JPanel { ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 494, Short.MAX_VALUE) + .addComponent(jSplitPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE) ); jSplitPane1.setLeftComponent(jPanel3); @@ -824,7 +951,7 @@ public class TablesPanel extends javax.swing.JPanel { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(topPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 908, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 908, Short.MAX_VALUE)) @@ -832,7 +959,7 @@ public class TablesPanel extends javax.swing.JPanel { layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(topPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(jSplitPane1) .addGap(0, 0, 0) @@ -890,13 +1017,9 @@ public class TablesPanel extends javax.swing.JPanel { } }//GEN-LAST:event_jButton1ActionPerformed - private void btnStateWaitingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateWaitingActionPerformed + private void btnFilterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFilterActionPerformed activeTablesFilter(); - }//GEN-LAST:event_btnStateWaitingActionPerformed - - private void btnStateActiveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateActiveActionPerformed - activeTablesFilter(); - }//GEN-LAST:event_btnStateActiveActionPerformed + }//GEN-LAST:event_btnFilterActionPerformed private void btnStateFinishedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateFinishedActionPerformed if (this.btnStateFinished.isSelected()) { @@ -934,22 +1057,23 @@ public class TablesPanel extends javax.swing.JPanel { private javax.swing.JToggleButton btnTypeTourneyConstructed; private javax.swing.JToggleButton btnTypeTourneyLimited; private mage.client.chat.ChatPanel chatPanel; - private javax.swing.JToolBar filterFormatBar1; - private javax.swing.JToolBar filterFormatBar2; - private javax.swing.JToolBar filterStateBar; - private javax.swing.JToolBar filterTypeBar; + private javax.swing.JToolBar filterBar1; + private javax.swing.JToolBar filterBar2; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; - private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JToolBar.Separator jSeparator1; + private javax.swing.JToolBar.Separator jSeparator2; + private javax.swing.JToolBar.Separator jSeparator3; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JSplitPane jSplitPane2; private javax.swing.JTable tableCompleted; private javax.swing.JTable tableTables; + private javax.swing.JPanel topPanel; // End of variables declaration//GEN-END:variables } @@ -957,6 +1081,7 @@ public class TablesPanel extends javax.swing.JPanel { class TableTableModel extends AbstractTableModel { public static final int COLUMN_DECK_TYPE = 0; // column the deck type is located (starting with 0) Start string is used to check for Limited + public static final int COLUMN_GAME_TYPE = 2; public static final int COLUMN_INFO = 3; public static final int COLUMN_STATUS = 4; public static final int ACTION_COLUMN = 6; // column the action is located (starting with 0) diff --git a/Mage.Client/src/main/resources/buttons/format_block.png b/Mage.Client/src/main/resources/buttons/format_block.png deleted file mode 100644 index ab872da5f0ba903c442cacaec566a1a7a1604ed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;j=V zi(`nz>Er|n)(}=Lhdt~a@(dq&73>&}L^teU(8^~zVj55=AJg`Q;bXnRJBCL*8qzJI z4Levm*EgSTU|G@h+~JR87x#rH4l|giGpYr!UT^$iGv%*zM{t7$)5(H44h*X}Qf}v{ zNIU*3YuMB;z;))i$F~3OMgnOEgkq#D7yR4Hb40zNf>&U>!``Eesm(m|8ILI4;CUdq c@T53HT%^9&Nv7N+pfedfUHx3vIVCg!08wsEF#rGn diff --git a/Mage.Client/src/main/resources/buttons/format_commander.png b/Mage.Client/src/main/resources/buttons/format_commander.png deleted file mode 100644 index 1dfb8376558d38de870a92f608a1b3f49c40ca9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;io` zi(`nz>Er|n)(}=5hZyD~-y46}3*2XWB)7sMFo7*Znd3j(BTVLke?aZtu%o9F}X#ABr zJC*Onx`-y%&!q}}4ZAoZ|JVv}FOWXK%zNT|fDQX94>l<_^$9#%C4IMWFfbg6G4Wcx S*A?hE1_n=8KbLh*2~7a3Iz_(# diff --git a/Mage.Client/src/main/resources/buttons/format_legacy.png b/Mage.Client/src/main/resources/buttons/format_legacy.png deleted file mode 100644 index 177c0b2ab6163021e0f6a01d3c859f55319eedf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;jBA zi(`nz>Er|n)(~bJhc^sI3>{(^k1#%w5Mny=zww9V&UGIer5Fw|WfX}y>|ySB&+w5= z;o5;T2c}7kd;x|NoCFp2@g6a9sFBmEZ=1l#>Y&4TD9sWpXT}W4$$9#nC2-`Y_pb%{a hL+&Z(jeI5Er|n)(}P^hZyD~+zl1{0{M(dq6+hvkMIWMIGzxg@a(_CAK8w2XWl>jN5wk| zkMgZ}WE$|xR6xFQ(|qTv8yE`t1>)Hsop-Qd)?#B5U(i+D@WWQXzRgPZ8P|kEA_{SQ zN0TrhH^o!x79lTez{m-yq zTylZAgP-9e^NRltUC9fU={HDOF-k=nFZlPL=c`f}LlNU~4zFVjAEfLIw=Dmj0rUxj Mr>mdKI;Vst09K}40RR91 diff --git a/Mage.Client/src/main/resources/buttons/format_other.png b/Mage.Client/src/main/resources/buttons/format_other.png deleted file mode 100644 index 5b29e6ed23af13a8649ce83a86fde6cf7bdf356a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;kAc zi(`nz>Er|n)(}=5hZu$<>J2{_1@ak^m{lzKSNzCTC_Aw1r-8u#_D38F_jr%YZ;W8< zU~Ra;s%6gJq1q6^e6xW^<*dRQrXxxYe`Gt<89tUO?BkzW&3{zw1e=b7@dIO#<{Rt{ z72F}0>sOdNuAAs+wt(?0L&_e8S1B_Z4gPa0NHYX|km`PR-lMKnl7VZssY6VY+ypC! wJ?tIz&Z6rZ+gOV%4(_?ed_-|Er#KUX?+$C7@0V6r1D(#`>FVdQ&MBb@0Hu#pH~;_u diff --git a/Mage.Client/src/main/resources/buttons/format_standard.png b/Mage.Client/src/main/resources/buttons/format_standard.png deleted file mode 100644 index 67466a36bad0611ecc43eba347f7cad1d4f59bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;jfK zi(`nz>Er|n))x*;9j+WJ7*C#Fz`cs$W2(YG{-etqEf_j{7ktujc*8t(H-Bh9Q<_31 z+ry_0HjEw83qBbIFgq3nH$*UZ@J`_Ea4>#gAaI*uBU8vfOM(6F!O0EpxY!lq7?0ea zC=$z_B(4z0aAf_$B*6fE4~6WohF_BzPp&kmVeVj^z*FYEr|n)(~bp2OGu?afXk43U&-f${T(#3dl1);!((JTorgQ&4E#1KHH=J9zV&(B%xCu6{1-oD!MEr|n)(}=hhdm4(EasZBmSJjk z!zc9z-0bWtlqPIm?;Oj-Y&;>RUEIcvi(6jhqiDcJ=^rNE3?DgFn0*#JTHvsohqu|< j<52}8_oV;r#taPQGqpbpx!(;3I+wxI)z4*}Q$iB}*0f1u diff --git a/Mage.Client/src/main/resources/buttons/match_new.png b/Mage.Client/src/main/resources/buttons/match_new.png index da127a0c20231a95e6b88e4696973b4f0d35aee8..10289173f719cd5a4ce64f631cbe2cce815ea9b5 100644 GIT binary patch delta 1045 zcmV+w1nT>p1)K;WiBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmj!{e*?}* zL_t(&-tAdEXj4%Xj*_8+Lx&8dREQwh!68G34jG~Z>ENK)p+kqFO9h8wGjwq1&_SVt zLx)l#1ZhpMu|FUfP%%TrL9E3J9UNLHS|vl&)TUZ#JhyxoK5t)b;(Iq~tQS7=&bjZN zd%pY5IrqL7pRbJ8+}zwK7z8@^f6zyK2epZFK|u-F5`-M|gY`l{;kCg3Cjufjpuh1T z5-1^Tb`g-@V}cZ(leXcGiT-+}w%kaKELpj(5k&jx`Uh0+BF0%^#~i6OxY8mGw3 zKpw_Z%#n?#;569}*dQ>36;;=(#uI5I`4M!Zq&rWf7ggfpx`5wtwd%Nje`qU&lvAyO z;yxj@B*+@*FjhUKLk0E}k!R3#S|b2m%p_pM?<5kr8{rbu2`#@PMpX+?Xes2?Sla~r z6yL1xG7?xLN%q=E{{%YDr%|t~kmH6W*C+SThp_4itag`!%>j%HQ`yzFT78GM3Hueo zIO)f^uR@!u+6+~2|1jp6fBPE(9Jd9;x}Qqj4l1yx6E<7Hm;}bGxFL|oZ#%%cl5u3{ zr1G@&nya;nQ}kJ`*Auevct{AIzApf5LHlkV)nDK(Z5kZEGZV66U!grcS&3V+TN;FG`e?T{k73z0k zw;xaV7G&OMX1&}8oCqvJPP(w0gpK)H5O`bf1m4suflcTZJRmS(5ZI_DfqBRiF6`cg zjaRiGFb8?eYlYoW*mzz|0!8T5x&4m7&8P5FuyF?Rw`vgBu=v8XZi~S5zeHf&B7uU} z=OEqEH6SqUrQv&IxL}dMSDGi~rD65w!&8C!KzrRHfj-Qk<~nyMzOelQ2V|X+Q1fpV P00000NkvXXu0mjf_le=S delta 659 zcmV;E0&M-92%QBXiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPKe*#ZQ zL_t(o!|jzZXj4HL$0Np4O0fYmJR!r|bPx<=DI!vw92|-ir&2@&iw1OXa4Ecsf|CRh z>Cho=4jmjabZ{sbq0oSC3Kbhr5OE0N(4j*7AN&qJ9`)s=?*&vm_>u4KzWcua-MjBn zC=711A`;W0DsDpr&c23yK`a{oe`)42wI`x4eu!1^7W(jB+{fO;r_Z`o<}$U&By((l zv)_p(C*$Xz^Xo)@5+_F~;FYN3x5L;Me)q(iLJqCYP8tMuJAQ%fj(7&Y6*J$#j`9$2 zMRc*}__j?Fe53E$MaJBveTZGnL%^h{#QJ3sLW%Jr{USc$L6Z6Mst_bHf5$k7Jwwtc zMwK;nPUwz_H_J&z{QkE2Z`UAzvwN{Q_x*#|#dOSzEz{pLfi3rz8SlSSTnm`G@mH(Z78F@ zXv!_%NK2-?{0@VC%B@VLgr;04S#QhsfBOqttyY^5Qv*0Us^mAtPti}oGjSxZ#D~Ok z%EXqIJFz?jJUT#f&ucN3RX{g`07sZrK#M@%#mAIgn$>yCejHDd^$`s4p$e*tDKaG9k()l~oh002ovPDHLkV1lKRJ(>Uj diff --git a/Mage.Client/src/main/resources/buttons/state_active.png b/Mage.Client/src/main/resources/buttons/state_active.png index 455958b2486f1988308e654c2297fce1105c80f2..27d595624e87a760d73fab6505ac9ac08682af84 100644 GIT binary patch delta 406 zcmV;H0crm90mK84IDY|lNklO@9gZn zzM-MvwU3X_3RYIu6reIi6ix5my)!y-;zWN(N5|#Z*w}wkQd0kc!eAU282G=xzyHU7 zD0uz)^?#tD|I5nC?pRt{P6w)SU|7C<`Bp|oMz|(q%*@RE|9|Y+v;T2{oSdAi4EOKf zuVQCs$7+Cxh{*rHfB)h%z}nh+7Q>4dFH9XB9kCh^5fOn?^WD35L25!7va_?9Dl04B zVl!aQoH;lRm^EwGU!WQxa6keBW)(IA9zJ}C(}1k3tW)rqc>DHks<5yyie`0nb)1_2 z{Q2`=Sy{OiZhrtUAQeMHLs1L>dJU%mCr_RPsc}R}4=pV%w~-C#?(W7J13Z!bgoMQZ=;-MG1qB6Hb8~ag&7M8`@4b8X;08oSMsCAM#=vlJ0GfPr)22;} zfXO)yn5?Cdq=i9I28{Qaz*KlmKtLd7@MJ&$yBd~^Mi1Gy&;S4c07*qoM6N<$f;dpd Af&c&j delta 196 zcmV;#06YK01M~rqIDY`9NklQ y^8oQ0sJ~sHfw=~%8RV@DAhy648!RIz`2qmq0x)evc{un00000J-0fGgPIDY~(Nkl?k;!D^!^1d+1YI(k+=@`F#G!0qr_&&nO5x<>1bjXp?CtFVm&=8l zn;Sq7&}cM|NPj>q7SrNR(P$Lr^Es^7YgnyTU@#a+HRW;{E-x=ZsZ@eQA^|jpj0BvY zp9@B#5z%$IToT3jbh%u>U@!vJ85DW$h1sLphyFYLE(CKu#)qiRgj*gCqj<^el!-00Y4U@?P z^m;w-9dqzD~Y|dc9uT3Lp>&c6+_vqSb0GghJu&RuJU)uiii`4Nw}=B-3ge00000NkvXXu0mjf7n4M? diff --git a/Mage.Client/src/main/resources/buttons/state_waiting.png b/Mage.Client/src/main/resources/buttons/state_waiting.png index 343af792ab907d8192d9309b6f6abdf36daca39e..36260b2ae7b80c2103fdb5c562b0c3a066764e04 100644 GIT binary patch delta 322 zcmV-I0lohD0`dZoIe#QcL_t(I%axO1Zo)7Oh1;}~dK36h1!%|MP9Qh}Rk;J)U=!NE z!5y}PP`(%0sANd(B3VwJpB?+9%`#R9p}^(%oK^e>iy-R_%dtwqvW(|Jj1^QvfC!a5 zfi-~xc*EX(W7yhxDi}LbB~^3~;tgU4-pO;0X4uVnvN(cf@qZQ#Tyg%@ZN$E?Gy6?Z zgdg@R=UKO9EYb(nBG83|g<5C7$G;0pdAj&XM4ylKO~TUVZ#mc4wV!Ofzap9rSMb_J zR532Qq`a3RLf%>1ZSn%bwqrz;+D9cQ(R5IulVXD+>iIPD3t^>0Hz=ZR(afn}yvke! z21PW|A{ESDr8^t*C8~qEPc(d{@y3Yw2{!E$ZG;K2566`A5K*((ud0qp|I@}`ca{w~ UyH7BWvj6}907*qoM6N<$g5w98^Z)<= delta 329 zcmV-P0k;0~0{H@vIe#ljL_t(I%VS^|1(X9G2?hgsJBAu%H-;WHABGwHatt;gaRCJe z2MGg)1Th_k2oRf%hd~0TA+}WvpB)+){_93DYyt6^*%){@1Q--RVj!&O#L$A*6($)B z7eER@uHchlu+R!&Sb=N+rx1e*D;I-^aT>#EyBdb?N-hi?R(~Z7&&Bl^V!#GyhcT=H zDU>#2$gwD3xNl#_@EhcOkQmVL^B^@KO(4FyAHy8I7>4a2gFs$mK$bL0VK@#l8Kx0L zgTe=-#vp;=0EiEA1Z-=fP-8Gk^^}eYoLOn3>0W1 bBqaj?nmT3_*h_sp00000NkvXXu0mjf^VM|1 diff --git a/Mage.Client/src/main/resources/buttons/tourney_new.png b/Mage.Client/src/main/resources/buttons/tourney_new.png index 32e470ff7c14e44bbb2368426d22540586e4b360..c315a74e739bca3aa13edbf0d5fc19797d9b6c88 100644 GIT binary patch delta 735 zcmV<50wDdT1?dGLiBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmj!|f161} zK~!ko?N=>KBS92y2x0{SQPDIN6^IH%1pX zCm=a_m(TAYUdnt_ivC3+Ke1z_d;1 zEdsfVQW*)DlW%we|Gf$MDD)W;S+!d23KGFT!5nmb=;DuX;#W>8?G-^N*c(AWaWIU4 zk`vSg!AB6-5p;pY5d;*WOF*7`f=B2Ef_*_5?LNjF3Ze?;I4KdB4f z7y&_x-meNS&|edrgTy?3R`s`n2HN`*zt9kYo}lBLMx1g&2GvJsAL4mRbLn$w;#W$C zz$|u<39O_213RlE+kzU#+s;1-DmW4C|C-9Bo(Z7eq@RfKli!`)KQr4_$A|71{h#P> zPbG4}el@z3Nmqexj&uz;e|W?B-lEgIGha~h;$^b7n+!p}Cin1D94i3p|N z+-4?#F!l&UNI(e|%tGLjY9P~nL+sb~kzf(+KPV|q(BITr$Z8_Ne;2g3#vu^0FYr%i zBoL*{9S)htMGrYdH}4t+-hgvV76LVVbdO`S-RaQ6Y9?QY5C}66ShjKj2~JOU%aR;b zrfOp6@9}{)l>=7CSjIHF{cV0SE&;qdbawxWE<{VDkKQ6s;Z*LF2x+Nb$FIQQ^t9^E zJVDCb0c}9piE_F|HIsA;WX7ZK133-v*R=baMNF`EDhs~c@Z!ab7cXA&CeK=Cb7oHs R)#U&H002ovPDHLkV1hkA*(_zs3g`0 zzVU!h?+env;v!JASQ{pD2n31c2#t=0IK*d^V@( zbj6fO&IFbvOmP#Cn73svSHG$S##e~)mnM+(rp1Tyf>;kb(DPp6v02^2Y$S_RJrNu}>R?3srb z^nS=dXNJ}u+4YdrC6r-Kll;+f-!fv!8Q!5X>L3IUq|-+)(DgRr%@uHlo}o!uLofL( zix4kvNhzecMFgZbTob7?XI2EzmGzxP9j8{i&+zo%=R&VwEh!JTa$%ngDS-~{S%lH* z4+KsSDm`%I_5)R%pp2Gsy26LHC_GA_O)kHKogPlwgN}Mr_Rm76Mxh;y1{mw8qipVx zFj<@;1e&y`f)6gC