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 372e4e0fd23..a0928fb15b5 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.form +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.form @@ -26,14 +26,14 @@ - + - + @@ -50,11 +50,17 @@ + + + + + + + + + + - - - - @@ -63,14 +69,28 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + - + @@ -78,53 +98,309 @@ - + + + + + + + - - - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - @@ -241,7 +517,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 fdca4071b95..523438c3bf7 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -121,8 +121,19 @@ public class TablesPanel extends javax.swing.JPanel { initComponents(); tableModel.setSession(session); - chkShowCompleted.setVisible(true); - + + 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); @@ -279,8 +290,8 @@ public class TablesPanel extends javax.swing.JPanel { if (location != null && jSplitPane1 != null) { jSplitPane1.setDividerLocation(Integer.parseInt(location)); } - this.chkShowCompleted.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_TABLES_SHOW_COMPLETED, "Yes").equals("Yes")); - if (this.chkShowCompleted.isSelected()) { + this.btnStateFinished.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_TABLES_SHOW_COMPLETED, "Yes").equals("Yes")); + if (this.btnStateFinished.isSelected()) { this.jSplitPane2.setDividerLocation(-1); } else { @@ -336,7 +347,7 @@ public class TablesPanel extends javax.swing.JPanel { updatePlayersTask = new UpdatePlayersTask(session, roomId, this.chatPanel); updatePlayersTask.execute(); } - if (this.chkShowCompleted.isSelected()) { + if (this.btnStateFinished.isSelected()) { if (updateMatchesTask == null || updateMatchesTask.isDone()) { updateMatchesTask = new UpdateMatchesTask(session, roomId, this); updateMatchesTask.execute(); @@ -447,12 +458,19 @@ public class TablesPanel extends javax.swing.JPanel { } private void activeTablesFilter() { - if (cbStatusFilter.getSelectedItem().toString().equals("All tables")) { - activeTablesSorter.setRowFilter(null); - } else { - activeTablesSorter.setRowFilter(RowFilter.regexFilter("Waiting for players", 4)); + // state + StringBuilder stateFilter = new StringBuilder(); + if (btnStateWaiting.isSelected()) { + stateFilter.append("Waiting"); } - + if (btnStateActive.isSelected()) { + if (stateFilter.length() > 0) { + stateFilter.append("|"); + } + stateFilter.append("Dueling|Constructing|Drafting|Sideboard"); + } + RowFilter rf = RowFilter.regexFilter(stateFilter.toString(), 4); + activeTablesSorter.setRowFilter(rf); } /** This method is called from within the constructor to @@ -466,10 +484,26 @@ public class TablesPanel extends javax.swing.JPanel { jPanel1 = new javax.swing.JPanel(); btnNewTable = new javax.swing.JButton(); - btnQuickStart = new javax.swing.JButton(); btnNewTournament = new javax.swing.JButton(); - chkShowCompleted = new javax.swing.JCheckBox(); - cbStatusFilter = new javax.swing.JComboBox(); + filterStateBar = new javax.swing.JToolBar(); + btnStateWaiting = new javax.swing.JToggleButton(); + btnStateActive = new javax.swing.JToggleButton(); + btnStateFinished = new javax.swing.JToggleButton(); + filterTypeBar = new javax.swing.JToolBar(); + btnTypeMatch = new javax.swing.JToggleButton(); + btnTypeTourneyConstructed = new javax.swing.JToggleButton(); + btnTypeTourneyLimited = new javax.swing.JToggleButton(); + filterFormatBar1 = new javax.swing.JToolBar(); + btnFormatBlock = new javax.swing.JToggleButton(); + btnFormatStandard = new javax.swing.JToggleButton(); + btnFormatModern = new javax.swing.JToggleButton(); + btnFormatCommander = new javax.swing.JToggleButton(); + filterFormatBar2 = new javax.swing.JToolBar(); + 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(); jLabel2 = new javax.swing.JLabel(); @@ -483,40 +517,182 @@ public class TablesPanel extends javax.swing.JPanel { jScrollPane2 = new javax.swing.JScrollPane(); tableCompleted = new javax.swing.JTable(); - btnNewTable.setText("New Match"); + 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.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNewTableActionPerformed(evt); } }); - btnQuickStart.setText("Quick Start"); - btnQuickStart.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnQuickStartActionPerformed(evt); - } - }); - - btnNewTournament.setText("New Tournament"); + 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.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNewTournamentActionPerformed(evt); } }); - chkShowCompleted.setSelected(true); - chkShowCompleted.setText("Show Completed"); - chkShowCompleted.setToolTipText("Toggles the visibility of the table of completed\n
matches and tournaments in the lower area"); - chkShowCompleted.addActionListener(new java.awt.event.ActionListener() { + filterStateBar.setFloatable(false); + filterStateBar.setForeground(new java.awt.Color(102, 102, 255)); + filterStateBar.setFocusable(false); + + btnStateWaiting.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_waiting_off.png"))); // NOI18N + btnStateWaiting.setSelected(true); + btnStateWaiting.setToolTipText("Show 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); + btnStateWaiting.setMaximumSize(new java.awt.Dimension(27, 27)); + 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) { - chkShowCompletedActionPerformed(evt); + btnStateWaitingActionPerformed(evt); } }); + filterStateBar.add(btnStateWaiting); - cbStatusFilter.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "All tables", "Waiting for players" })); - cbStatusFilter.addActionListener(new java.awt.event.ActionListener() { + btnStateActive.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/state_active.png"))); // NOI18N + btnStateActive.setSelected(true); + btnStateActive.setToolTipText("Show 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); + btnStateActive.setMaximumSize(new java.awt.Dimension(27, 27)); + 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) { - cbStatusFilterActionPerformed(evt); + btnStateActiveActionPerformed(evt); + } + }); + filterStateBar.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); + btnStateFinished.setMaximumSize(new java.awt.Dimension(27, 27)); + 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); + + btnTypeMatch.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_match.png"))); // NOI18N + btnTypeMatch.setSelected(true); + btnTypeMatch.setActionCommand("typeMatch"); + btnTypeMatch.setFocusable(false); + btnTypeMatch.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeMatch.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterTypeBar.add(btnTypeMatch); + + btnTypeTourneyConstructed.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_tourney_construced.png"))); // NOI18N + btnTypeTourneyConstructed.setSelected(true); + btnTypeTourneyConstructed.setActionCommand("typeTourneyConstructed"); + btnTypeTourneyConstructed.setFocusable(false); + btnTypeTourneyConstructed.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeTourneyConstructed.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterTypeBar.add(btnTypeTourneyConstructed); + + btnTypeTourneyLimited.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_tourney_limited.png"))); // NOI18N + btnTypeTourneyLimited.setSelected(true); + btnTypeTourneyLimited.setActionCommand("typeTourneyLimited"); + btnTypeTourneyLimited.setFocusable(false); + btnTypeTourneyLimited.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnTypeTourneyLimited.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterTypeBar.add(btnTypeTourneyLimited); + + filterFormatBar1.setFloatable(false); + filterFormatBar1.setFocusable(false); + + btnFormatBlock.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_block.png"))); // NOI18N + btnFormatBlock.setSelected(true); + btnFormatBlock.setFocusable(false); + btnFormatBlock.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnFormatBlock.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterFormatBar1.add(btnFormatBlock); + + btnFormatStandard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_standard.png"))); // NOI18N + btnFormatStandard.setSelected(true); + btnFormatStandard.setFocusable(false); + btnFormatStandard.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnFormatStandard.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterFormatBar1.add(btnFormatStandard); + + btnFormatModern.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_modern.png"))); // NOI18N + btnFormatModern.setSelected(true); + filterFormatBar1.add(btnFormatModern); + + btnFormatCommander.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_commander.png"))); // NOI18N + btnFormatCommander.setSelected(true); + btnFormatCommander.setFocusable(false); + btnFormatCommander.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnFormatCommander.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterFormatBar1.add(btnFormatCommander); + + filterFormatBar2.setFloatable(false); + filterFormatBar2.setToolTipText("All tables with active matches"); + filterFormatBar2.setFocusable(false); + + btnFormatLegacy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_legacy.png"))); // NOI18N + btnFormatLegacy.setSelected(true); + btnFormatLegacy.setFocusable(false); + btnFormatLegacy.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnFormatLegacy.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterFormatBar2.add(btnFormatLegacy); + + btnFormatVintage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/format_vintage.png"))); // NOI18N + btnFormatVintage.setSelected(true); + btnFormatVintage.setFocusable(false); + btnFormatVintage.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnFormatVintage.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + filterFormatBar2.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); + + btnQuickStart.setText("Quick Start"); + btnQuickStart.setFocusable(false); + btnQuickStart.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnQuickStart.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnQuickStart.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnQuickStartActionPerformed(evt); } }); @@ -530,24 +706,37 @@ public class TablesPanel extends javax.swing.JPanel { .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) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(chkShowCompleted) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cbStatusFilter, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnNewTable) - .addComponent(btnQuickStart) - .addComponent(btnNewTournament) - .addComponent(chkShowCompleted) - .addComponent(cbStatusFilter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(16, Short.MAX_VALUE)) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.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)))) + .addContainerGap()) ); jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); @@ -626,7 +815,7 @@ public class TablesPanel extends javax.swing.JPanel { ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE) + .addComponent(jSplitPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 494, Short.MAX_VALUE) ); jSplitPane1.setLeftComponent(jPanel3); @@ -643,13 +832,13 @@ public class TablesPanel extends javax.swing.JPanel { layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel1, 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) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 584, Short.MAX_VALUE)) + .addGap(0, 598, Short.MAX_VALUE)) ); }// //GEN-END:initComponents @@ -701,20 +890,24 @@ public class TablesPanel extends javax.swing.JPanel { } }//GEN-LAST:event_jButton1ActionPerformed -private void chkShowCompletedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkShowCompletedActionPerformed - if (this.chkShowCompleted.isSelected()) { - this.jSplitPane2.setDividerLocation(-1); - } - else { - this.jSplitPane2.setDividerLocation(this.jPanel3.getHeight()); - } - PreferencesDialog.saveValue(PreferencesDialog.KEY_TABLES_SHOW_COMPLETED, (chkShowCompleted.isSelected()?"Yes":"No")); - this.startTasks(); -}//GEN-LAST:event_chkShowCompletedActionPerformed - - private void cbStatusFilterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbStatusFilterActionPerformed + private void btnStateWaitingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateWaitingActionPerformed activeTablesFilter(); - }//GEN-LAST:event_cbStatusFilterActionPerformed + }//GEN-LAST:event_btnStateWaitingActionPerformed + + private void btnStateActiveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateActiveActionPerformed + activeTablesFilter(); + }//GEN-LAST:event_btnStateActiveActionPerformed + + private void btnStateFinishedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStateFinishedActionPerformed + if (this.btnStateFinished.isSelected()) { + this.jSplitPane2.setDividerLocation(-1); + } + else { + this.jSplitPane2.setDividerLocation(this.jPanel3.getHeight()); + } + PreferencesDialog.saveValue(PreferencesDialog.KEY_TABLES_SHOW_COMPLETED, (btnStateFinished.isSelected()?"Yes":"No")); + this.startTasks(); + }//GEN-LAST:event_btnStateFinishedActionPerformed private void handleError(Exception ex) { logger.fatal("Error loading deck: ", ex); @@ -723,12 +916,28 @@ private void chkShowCompletedActionPerformed(java.awt.event.ActionEvent evt) {// // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JToggleButton btnFormatBlock; + private javax.swing.JToggleButton btnFormatCommander; + private javax.swing.JToggleButton btnFormatLegacy; + private javax.swing.JToggleButton btnFormatModern; + private javax.swing.JToggleButton btnFormatOther; + private javax.swing.JToggleButton btnFormatStandard; + private javax.swing.JToggleButton btnFormatTinyLeader; + private javax.swing.JToggleButton btnFormatVintage; private javax.swing.JButton btnNewTable; private javax.swing.JButton btnNewTournament; private javax.swing.JButton btnQuickStart; - private javax.swing.JComboBox cbStatusFilter; + private javax.swing.JToggleButton btnStateActive; + private javax.swing.JToggleButton btnStateFinished; + private javax.swing.JToggleButton btnStateWaiting; + private javax.swing.JToggleButton btnTypeMatch; + private javax.swing.JToggleButton btnTypeTourneyConstructed; + private javax.swing.JToggleButton btnTypeTourneyLimited; private mage.client.chat.ChatPanel chatPanel; - private javax.swing.JCheckBox chkShowCompleted; + private javax.swing.JToolBar filterFormatBar1; + private javax.swing.JToolBar filterFormatBar2; + private javax.swing.JToolBar filterStateBar; + private javax.swing.JToolBar filterTypeBar; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; diff --git a/Mage.Client/src/main/resources/buttons/format_block.png b/Mage.Client/src/main/resources/buttons/format_block.png new file mode 100644 index 00000000000..ab872da5f0b Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_block.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_commander.png b/Mage.Client/src/main/resources/buttons/format_commander.png new file mode 100644 index 00000000000..1dfb8376558 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_commander.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_legacy.png b/Mage.Client/src/main/resources/buttons/format_legacy.png new file mode 100644 index 00000000000..177c0b2ab61 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_legacy.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_modern.png b/Mage.Client/src/main/resources/buttons/format_modern.png new file mode 100644 index 00000000000..e8717f6ade0 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_modern.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_other.png b/Mage.Client/src/main/resources/buttons/format_other.png new file mode 100644 index 00000000000..5b29e6ed23a Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_other.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_standard.png b/Mage.Client/src/main/resources/buttons/format_standard.png new file mode 100644 index 00000000000..67466a36bad Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_standard.png 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 new file mode 100644 index 00000000000..f4dad22fbba Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_tiny_leader.png differ diff --git a/Mage.Client/src/main/resources/buttons/format_vintage.png b/Mage.Client/src/main/resources/buttons/format_vintage.png new file mode 100644 index 00000000000..7f6b2e1e24c Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/format_vintage.png differ diff --git a/Mage.Client/src/main/resources/buttons/match_new.png b/Mage.Client/src/main/resources/buttons/match_new.png new file mode 100644 index 00000000000..da127a0c202 Binary files /dev/null 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 new file mode 100644 index 00000000000..455958b2486 Binary files /dev/null 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 new file mode 100644 index 00000000000..dc1337f98d6 Binary files /dev/null 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 new file mode 100644 index 00000000000..343af792ab9 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/state_waiting.png differ diff --git a/Mage.Client/src/main/resources/buttons/state_waiting_off.png b/Mage.Client/src/main/resources/buttons/state_waiting_off.png new file mode 100644 index 00000000000..d857ab87e35 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/state_waiting_off.png differ diff --git a/Mage.Client/src/main/resources/buttons/tourney_new.png b/Mage.Client/src/main/resources/buttons/tourney_new.png new file mode 100644 index 00000000000..32e470ff7c1 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/tourney_new.png differ diff --git a/Mage.Client/src/main/resources/buttons/type_match.png b/Mage.Client/src/main/resources/buttons/type_match.png new file mode 100644 index 00000000000..15ea06ef9d4 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/type_match.png differ diff --git a/Mage.Client/src/main/resources/buttons/type_tourney_construced.png b/Mage.Client/src/main/resources/buttons/type_tourney_construced.png new file mode 100644 index 00000000000..ba0f0401411 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/type_tourney_construced.png differ diff --git a/Mage.Client/src/main/resources/buttons/type_tourney_limited.png b/Mage.Client/src/main/resources/buttons/type_tourney_limited.png new file mode 100644 index 00000000000..48b26b87204 Binary files /dev/null and b/Mage.Client/src/main/resources/buttons/type_tourney_limited.png differ