From b846d0c411f0322718c3fba0625ca7eeb35bd97a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sat, 25 Apr 2015 16:37:08 +0200 Subject: [PATCH] Some minor changes to active table handling. --- .../java/mage/client/table/TablesPane.java | 4 -- .../java/mage/client/table/TablesPanel.java | 65 +++++++++++++----- .../src/main/resources/buttons/type_match.png | Bin 271 -> 0 bytes .../buttons/type_tourney_construced.png | Bin 262 -> 0 bytes .../buttons/type_tourney_limited.png | Bin 252 -> 0 bytes .../src/main/resources/tables/match_icon.png | Bin 0 -> 235 bytes .../main/resources/tables/tourney_icon.png | Bin 0 -> 278 bytes 7 files changed, 48 insertions(+), 21 deletions(-) delete mode 100644 Mage.Client/src/main/resources/buttons/type_match.png delete mode 100644 Mage.Client/src/main/resources/buttons/type_tourney_construced.png delete mode 100644 Mage.Client/src/main/resources/buttons/type_tourney_limited.png create mode 100644 Mage.Client/src/main/resources/tables/match_icon.png create mode 100644 Mage.Client/src/main/resources/tables/tourney_icon.png diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPane.java b/Mage.Client/src/main/java/mage/client/table/TablesPane.java index 54ef1da2cc5..cb2e3b0c578 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPane.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPane.java @@ -27,10 +27,6 @@ */ package mage.client.table; -import java.awt.Component; -import java.awt.Window; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; import java.util.UUID; import javax.swing.JComponent; import mage.client.MageFrame; 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 4f8bfd16ec2..817026eab3d 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -56,16 +56,20 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import javax.swing.AbstractAction; import javax.swing.Action; +import javax.swing.Icon; +import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JDesktopPane; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; +import javax.swing.JTable; import javax.swing.JToggleButton; import javax.swing.RowFilter; import javax.swing.SwingWorker; import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableColumn; import mage.cards.decks.importer.DeckImporterUtil; import mage.client.MageFrame; import mage.client.chat.ChatPanel; @@ -125,8 +129,10 @@ public class TablesPanel extends javax.swing.JPanel { tableModel.setSession(session); tableTables.createDefaultColumnsFromModel(); + activeTablesSorter = new MageTableRowSorter(tableModel); tableTables.setRowSorter(activeTablesSorter); + TableTableModel.setColumnWidth(tableTables); tableCompleted.setRowSorter(new MageTableRowSorter(matchesModel)); @@ -1138,14 +1144,19 @@ public class TablesPanel extends javax.swing.JPanel { } class TableTableModel extends AbstractTableModel { + ImageIcon tourneyIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/tourney_icon.png")); + ImageIcon matchIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/match_icon.png")); + + public static final int COLUMN_ICON = 0; + public static final int COLUMN_DECK_TYPE = 1; // column the deck type is located (starting with 0) Start string is used to check for Limited + public static final int COLUMN_GAME_TYPE = 3; + public static final int COLUMN_INFO = 4; + public static final int COLUMN_STATUS = 5; + public static final int ACTION_COLUMN = 7; // column the action is located (starting with 0) - 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) - - private final String[] columnNames = new String[]{"Deck Type", "Owner / Players", "Game Type", "Info", "Status", "Created / Started", "Action"}; + private final String[] columnNames = new String[]{"Typ","Deck Type", "Owner / Players", "Game Type", "Info", "Status", "Created / Started", "Action"}; + private static final int[] columnsWidth = {15, 120, 120, 180, 80, 120, 80, 60}; + private TableView[] tables = new TableView[0]; private static final DateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");; @@ -1156,6 +1167,20 @@ class TableTableModel extends AbstractTableModel { this.fireTableDataChanged(); } + static public void setColumnWidth(JTable table) { + table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + int i = 0; + for (int width : columnsWidth) { + TableColumn column = table.getColumnModel().getColumn(i++); + if (i == COLUMN_ICON) { + column.setMinWidth(width); + column.setMaxWidth(width); + } + column.setWidth(width); + column.setPreferredWidth(width); + } + } + @Override public int getRowCount() { return tables.length; @@ -1174,18 +1199,20 @@ class TableTableModel extends AbstractTableModel { public Object getValueAt(int arg0, int arg1) { switch (arg1) { case 0: - return tables[arg0].getDeckType(); + return tables[arg0].isTournament() ? tourneyIcon:matchIcon; case 1: - return tables[arg0].getControllerName(); + return tables[arg0].getDeckType(); case 2: - return tables[arg0].getGameType(); + return tables[arg0].getControllerName(); case 3: - return tables[arg0].getAdditionalInfo(); + return tables[arg0].getGameType(); case 4: - return tables[arg0].getTableStateText(); + return tables[arg0].getAdditionalInfo(); case 5: - return timeFormatter.format(tables[arg0].getCreateTime()); + return tables[arg0].getTableStateText(); case 6: + return timeFormatter.format(tables[arg0].getCreateTime()); + case 7: switch (tables[arg0].getTableState()) { case WAITING: @@ -1212,14 +1239,14 @@ class TableTableModel extends AbstractTableModel { default: return ""; } - case 7: - return tables[arg0].isTournament(); case 8: + return tables[arg0].isTournament(); + case 9: if (!tables[arg0].getGames().isEmpty()) { return tables[arg0].getGames().get(0); } return null; - case 9: + case 10: return tables[arg0].getTableId(); } return ""; @@ -1238,7 +1265,11 @@ class TableTableModel extends AbstractTableModel { @Override public Class getColumnClass(int columnIndex){ - return String.class; + if (columnIndex == 0) { + return Icon.class; + } else { + return String.class; + } } @Override diff --git a/Mage.Client/src/main/resources/buttons/type_match.png b/Mage.Client/src/main/resources/buttons/type_match.png deleted file mode 100644 index 15ea06ef9d414e45659a9c7ffd461f2c137d9e7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAQ1GCq zi(`nz>Er|n)(}Q5hdWG1xEp>j2%Kk3;#Qc)c!W1#jpGS{3CI3B{E_XL&-{@^L%zja z;Bl99z|rglU$PbKm{R9AtP*5=bUDD=YJu3%13VS{p>r6H>|e;0?r>Dj`D%&7PX+zF zcBv-}lO8w}<#7q)983i=|SAO_Dp!opH ziT(TyKP&`hGZgZfgo!yEW)%@;bEuK-uxBph6}aEN>M#S7!x^KdNrnt^SM5uR8RiKA PJ;UJX>gTe~DWM4fHvd|i diff --git a/Mage.Client/src/main/resources/buttons/type_tourney_construced.png b/Mage.Client/src/main/resources/buttons/type_tourney_construced.png deleted file mode 100644 index ba0f0401411b6742b5f1563c6c91879392bcbdb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;iH* zi(`nz>Er|n)|LhafzJvbQyU^!PNg++Hi_skJYsgJVd{`)_?WHmkN?R1#t5d4$E7(c4XF3_Safi@lO{*u(65hNYu^ zappgs&~7G`1&qavuWAHUETuCd8un~v=?J~>#NC8}A#aA|w-ubJ_CP-{c)I$ztaD0e F0sy95Q=I?+ diff --git a/Mage.Client/src/main/resources/buttons/type_tourney_limited.png b/Mage.Client/src/main/resources/buttons/type_tourney_limited.png deleted file mode 100644 index 48b26b87204f43e98690b09499c41cc54e1bbe42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;i~6 zi(`nz>Er|n))oeC0dIlD8yGsaGkj!J*vEW?zu||yh(5z3K7}~OBf$ldH<*u9PcUix zP^nPIcSI(j*)hp-M~ndD5l)9cva3E=U3tc|;*aQxA2Km)FBmp53%qa8n!|WRGvK!5 zggqr}nmIBTcqcMG5?XPHL*?uVwwm@;vzd9tc@{8+cE|m*YabDM~% wF>K@vk$G~(^nwB7%{vT7ZLfGJA7*4=u-a|FRXwA5JJ96}p00i_>zopr01!1)jQ{`u diff --git a/Mage.Client/src/main/resources/tables/match_icon.png b/Mage.Client/src/main/resources/tables/match_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7175b3d8c111be31ae64cc83df68101252f140 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;joN zi(`nz>Er~7xC20N>coi`dII~8HNI!M8u94To79|~Kdc@9g%89xWZ4?-nZ5X= zU^qd>kWGh4%j`f>1EWXZ0!AAfo1PtuBvsr`G`w!P#O1*o#@tY-&0n&JRgu{t%OR^h c@E;??h8fxMKaw6903FKU>FVdQ&MBb@0MOV|q5uE@ literal 0 HcmV?d00001 diff --git a/Mage.Client/src/main/resources/tables/tourney_icon.png b/Mage.Client/src/main/resources/tables/tourney_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f11d2da5ddd67af2e862ffce78f6fd47b747fb5d GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAQ1FDO zi(`nz>Ewh3YCrBDc))n1Yl=icQSr1xHS+TFZ4{;{A8&|tkm0(rhU>^Yhiygz=T&Yh ztY9?W^_Zu+{B9UPQxAhO-S^6K-^St=sEh z%DaQdgE7fghE1gTi2d~qc?Z%Dob(mYH+lS#iC>`jkx_!&32BeU6}(&#K}-|nJ8mXk zw6Jts|GL~(SVzjcqpQ_A^^dE=QM~~16AXoxo}NDo_NAzM7z=bym^{U?PAqYOIs?N( Xo2Hoy*7`L7{lwtu>gTe~DWM4fM-ySh literal 0 HcmV?d00001