Fixed that action column was not handled correctly after client restart if user changed their position in column order.

This commit is contained in:
LevelX2 2015-05-10 10:54:54 +02:00
parent 81300cd90a
commit 7e9340dee7
2 changed files with 18 additions and 8 deletions

View file

@ -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;

View file

@ -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) {}