Changeset 8621 in josm for trunk/src/org
- Timestamp:
- 2015-07-27T00:01:30+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java
r8604 r8621 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 5 6 import java.awt.Color; 6 7 import java.awt.Component; 7 8 import java.awt.GridBagLayout; … … 29 30 import javax.swing.JTable; 30 31 import javax.swing.UIManager; 32 import javax.swing.border.LineBorder; 31 33 import javax.swing.table.DefaultTableModel; 32 34 import javax.swing.table.TableCellEditor; … … 55 57 public class CacheContentsPanel extends JPanel { 56 58 59 /** 60 * 61 * Class based on: http://www.camick.com/java/source/ButtonColumn.java 62 * https://tips4java.wordpress.com/2009/07/12/table-button-column/ 63 * 64 */ 57 65 private static final class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener { 58 66 private final Action action; 59 67 private final JButton renderButton; 68 private JButton editButton; 69 private Object editorValue; 60 70 61 71 private ButtonColumn(Action action) { 62 72 this.action = action; 63 73 renderButton = new JButton(); 64 renderButton.addActionListener(this); 74 editButton = new JButton(); 75 editButton.setFocusPainted(false); 76 editButton.addActionListener(this); 77 editButton.setBorder(new LineBorder(Color.BLUE)); 65 78 } 66 79 67 80 @Override 68 81 public Object getCellEditorValue() { 69 return renderButton;82 return editorValue; 70 83 } 71 84 … … 77 90 @Override 78 91 public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { 79 return getTableCellRendererComponent(table, value, isSelected, false, row, column); 92 this.editorValue = value; 93 if (value == null) { 94 editButton.setText(""); 95 editButton.setIcon(null); 96 } else if (value instanceof Icon) { 97 editButton.setText(""); 98 editButton.setIcon((Icon) value); 99 } else { 100 editButton.setText(value.toString()); 101 editButton.setIcon(null); 102 } 103 this.editorValue = value; 104 return editButton; 80 105 } 81 106 … … 83 108 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 84 109 boolean hasFocus, int row, int column) { 85 86 110 if (isSelected) { 87 88 89 } else { 90 91 111 renderButton.setForeground(table.getSelectionForeground()); 112 renderButton.setBackground(table.getSelectionBackground()); 113 } else { 114 renderButton.setForeground(table.getForeground()); 115 renderButton.setBackground(UIManager.getColor("Button.background")); 92 116 } 93 117 … … 95 119 96 120 if (value == null) { 97 98 121 renderButton.setText(""); 122 renderButton.setIcon(null); 99 123 } else if (value instanceof Icon) { 100 101 102 } else { 103 104 124 renderButton.setText(""); 125 renderButton.setIcon((Icon) value); 126 } else { 127 renderButton.setText(value.toString()); 128 renderButton.setIcon(null); 105 129 } 106 130 return renderButton; … … 109 133 } 110 134 111 private transient ExecutorService executor = Executors.newSingleThreadExecutor();135 private final transient ExecutorService executor = Executors.newSingleThreadExecutor(); 112 136 113 137 /**
Note:
See TracChangeset
for help on using the changeset viewer.