From 7e9340dee785cff23672a241869f6e146510f435 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sun, 10 May 2015 10:54:54 +0200 Subject: [PATCH] Fixed that action column was not handled correctly after client restart if user changed their position in column order. --- .../java/mage/client/table/TablesPanel.java | 9 +++++---- .../java/mage/client/util/ButtonColumn.java | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) 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 a302664d68c..f5d4acbe968 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -170,10 +170,10 @@ public class TablesPanel extends javax.swing.JPanel { String deckType = (String)tableModel.getValueAt(modelRow, TableTableModel.COLUMN_DECK_TYPE); String status = (String)tableModel.getValueAt(modelRow, TableTableModel.COLUMN_STATUS); boolean isTournament = (Boolean)tableModel.getValueAt(modelRow, TableTableModel.ACTION_COLUMN + 1); - String owner = (String)tableModel.getValueAt(modelRow, 1); + String owner = (String)tableModel.getValueAt(modelRow, TableTableModel.COLUMN_OWNER); switch (action) { case "Join": - if (owner.equals(session.getUserName())) { + if (owner.equals(session.getUserName()) || owner.startsWith(session.getUserName() + ",")) { try { JDesktopPane desktopPane = (JDesktopPane) MageFrame.getUI().getComponent(MageComponents.DESKTOP_PANE); JInternalFrame[] windows = desktopPane.getAllFramesInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER); @@ -267,8 +267,8 @@ public class TablesPanel extends javax.swing.JPanel { }; // !!!! 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); + new ButtonColumn(tableTables, openTableAction, tableTables.convertColumnIndexToView(TableTableModel.ACTION_COLUMN)); + new ButtonColumn(tableCompleted, closedTableAction, tableCompleted.convertColumnIndexToView(MatchesTableModel.ACTION_COLUMN)); // !!!! } @@ -1176,6 +1176,7 @@ class TableTableModel extends AbstractTableModel { 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_OWNER = 2; public static final int COLUMN_GAME_TYPE = 3; public static final int COLUMN_INFO = 4; public static final int COLUMN_STATUS = 5; diff --git a/Mage.Client/src/main/java/mage/client/util/ButtonColumn.java b/Mage.Client/src/main/java/mage/client/util/ButtonColumn.java index e254245e237..07a874d9f08 100644 --- a/Mage.Client/src/main/java/mage/client/util/ButtonColumn.java +++ b/Mage.Client/src/main/java/mage/client/util/ButtonColumn.java @@ -48,10 +48,10 @@ import javax.swing.table.TableColumnModel; */ public class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener, MouseListener { - private JTable table; - private Action action; - private JButton renderButton; - private JButton editButton; + private final JTable table; + private final Action action; + private final JButton renderButton; + private final JButton editButton; private String text; private boolean isButtonColumnEditor; @@ -71,10 +71,12 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere table.addMouseListener(this); } + @Override public Object getCellEditorValue() { return text; } + @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (hasFocus) { @@ -96,12 +98,14 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere return renderButton; } + @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { text = (value == null) ? "" : value.toString(); editButton.setText( text ); return editButton; } + @Override public void actionPerformed(ActionEvent e) { int row = table.convertRowIndexToModel( table.getEditingRow() ); fireEditingStopped(); @@ -110,11 +114,13 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere } + @Override public void mousePressed(MouseEvent arg0) { if (table.isEditing() && table.getCellEditor() == this) isButtonColumnEditor = true; } + @Override public void mouseReleased(MouseEvent arg0) { if (isButtonColumnEditor && table.isEditing()) table.getCellEditor().stopCellEditing(); @@ -122,10 +128,13 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere isButtonColumnEditor = false; } + @Override public void mouseClicked(MouseEvent arg0) {} + @Override public void mouseEntered(MouseEvent arg0) {} + @Override public void mouseExited(MouseEvent arg0) {}