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 ab872da5f0..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_block.png and /dev/null differ 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 1dfb837655..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_commander.png and /dev/null differ 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 177c0b2ab6..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_legacy.png and /dev/null differ diff --git a/Mage.Client/src/main/resources/buttons/format_modern.png b/Mage.Client/src/main/resources/buttons/format_modern.png deleted file mode 100644 index e8717f6ade..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_modern.png and /dev/null differ 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 5b29e6ed23..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_other.png and /dev/null differ 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 67466a36ba..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_standard.png and /dev/null differ diff --git a/Mage.Client/src/main/resources/buttons/format_tiny_leader.png b/Mage.Client/src/main/resources/buttons/format_tiny_leader.png deleted file mode 100644 index f4dad22fbb..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_tiny_leader.png and /dev/null differ diff --git a/Mage.Client/src/main/resources/buttons/format_vintage.png b/Mage.Client/src/main/resources/buttons/format_vintage.png deleted file mode 100644 index 7f6b2e1e24..0000000000 Binary files a/Mage.Client/src/main/resources/buttons/format_vintage.png and /dev/null differ diff --git a/Mage.Client/src/main/resources/buttons/match_new.png b/Mage.Client/src/main/resources/buttons/match_new.png index da127a0c20..10289173f7 100644 Binary files a/Mage.Client/src/main/resources/buttons/match_new.png and b/Mage.Client/src/main/resources/buttons/match_new.png differ diff --git a/Mage.Client/src/main/resources/buttons/state_active.png b/Mage.Client/src/main/resources/buttons/state_active.png index 455958b248..27d595624e 100644 Binary files a/Mage.Client/src/main/resources/buttons/state_active.png and b/Mage.Client/src/main/resources/buttons/state_active.png differ diff --git a/Mage.Client/src/main/resources/buttons/state_finished.png b/Mage.Client/src/main/resources/buttons/state_finished.png index dc1337f98d..4166fd29ff 100644 Binary files a/Mage.Client/src/main/resources/buttons/state_finished.png and b/Mage.Client/src/main/resources/buttons/state_finished.png differ diff --git a/Mage.Client/src/main/resources/buttons/state_waiting.png b/Mage.Client/src/main/resources/buttons/state_waiting.png index 343af792ab..36260b2ae7 100644 Binary files a/Mage.Client/src/main/resources/buttons/state_waiting.png and b/Mage.Client/src/main/resources/buttons/state_waiting.png differ diff --git a/Mage.Client/src/main/resources/buttons/tourney_new.png b/Mage.Client/src/main/resources/buttons/tourney_new.png index 32e470ff7c..c315a74e73 100644 Binary files a/Mage.Client/src/main/resources/buttons/tourney_new.png and b/Mage.Client/src/main/resources/buttons/tourney_new.png differ