Changeset 6912 in josm for trunk/src/org/openstreetmap/josm/gui/io
- Timestamp:
- 2014-03-19T01:01:04+01:00 (10 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/io
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/io/ActionFlagsTableCell.java
r6104 r6912 10 10 import java.awt.event.ActionListener; 11 11 import java.util.EventObject; 12 import java.util.concurrent.CopyOnWriteArrayList;13 12 14 13 import javax.swing.AbstractAction; … … 18 17 import javax.swing.JTable; 19 18 import javax.swing.event.CellEditorListener; 20 import javax.swing.event.ChangeEvent;21 19 import javax.swing.table.TableCellEditor; 22 20 import javax.swing.table.TableCellRenderer; 23 21 22 import org.openstreetmap.josm.gui.util.CellEditorSupport; 24 23 import org.openstreetmap.josm.tools.GBC; 25 24 … … 30 29 * 31 30 * Intended usage is like this: 32 * ActionFlagsTableCell aftc = new ActionFlagsTableCell(); 33 * col = new TableColumn(0); 34 * col.setCellRenderer(aftc); 35 * col.setCellEditor(aftc); 31 * <code> 32 * <br>ActionFlagsTableCell aftc = new ActionFlagsTableCell(); 33 * <br>col = new TableColumn(0); 34 * <br>col.setCellRenderer(aftc); 35 * <br>col.setCellEditor(aftc); 36 * </code> 36 37 */ 37 38 class ActionFlagsTableCell extends JPanel implements TableCellRenderer, TableCellEditor { 38 pr otectedfinal JCheckBox[] checkBoxes = new JCheckBox[2];39 private CopyOnWriteArrayList<CellEditorListener> listeners;39 private final JCheckBox[] checkBoxes = new JCheckBox[2]; 40 private final CellEditorSupport cellEditorSupport = new CellEditorSupport(this); 40 41 41 42 private ActionListener al = new ActionListener() { 42 43 @Override 43 44 public void actionPerformed(ActionEvent e) { 44 fireEditingStopped();45 cellEditorSupport.fireEditingStopped(); 45 46 } 46 47 }; 47 48 48 49 public ActionFlagsTableCell() { 49 super();50 listeners = new CopyOnWriteArrayList<CellEditorListener>();51 52 50 checkBoxes[0] = new JCheckBox(tr("Upload")); 53 51 checkBoxes[1] = new JCheckBox(tr("Save")); … … 63 61 public void actionPerformed(ActionEvent e) { 64 62 b.setSelected(!b.isSelected()); 65 fireEditingStopped();63 cellEditorSupport.fireEditingStopped(); 66 64 } 67 65 }); … … 94 92 @Override 95 93 public void addCellEditorListener(CellEditorListener l) { 96 if (l != null) { 97 listeners.addIfAbsent(l); 98 } 99 } 100 101 protected void fireEditingCanceled() { 102 for (CellEditorListener l: listeners) { 103 l.editingCanceled(new ChangeEvent(this)); 104 } 105 } 106 107 protected void fireEditingStopped() { 108 for (CellEditorListener l: listeners) { 109 l.editingStopped(new ChangeEvent(this)); 110 } 94 cellEditorSupport.addCellEditorListener(l); 111 95 } 112 96 113 97 @Override 114 98 public void cancelCellEditing() { 115 fireEditingCanceled();99 cellEditorSupport.fireEditingCanceled(); 116 100 } 117 101 … … 131 115 @Override 132 116 public void removeCellEditorListener(CellEditorListener l) { 133 listeners.remove(l);117 cellEditorSupport.removeCellEditorListener(l); 134 118 } 135 119 … … 141 125 @Override 142 126 public boolean stopCellEditing() { 143 fireEditingStopped();127 cellEditorSupport.fireEditingStopped(); 144 128 return true; 145 129 } -
trunk/src/org/openstreetmap/josm/gui/io/LayerNameAndFilePathTableCell.java
r6889 r6912 14 14 import java.io.File; 15 15 import java.util.EventObject; 16 import java.util.concurrent.CopyOnWriteArrayList;17 16 18 17 import javax.swing.AbstractAction; … … 23 22 import javax.swing.JTable; 24 23 import javax.swing.event.CellEditorListener; 25 import javax.swing.event.ChangeEvent;26 24 import javax.swing.table.TableCellEditor; 27 25 import javax.swing.table.TableCellRenderer; 28 26 29 27 import org.openstreetmap.josm.actions.SaveActionBase; 28 import org.openstreetmap.josm.gui.util.CellEditorSupport; 29 import org.openstreetmap.josm.gui.widgets.JosmTextField; 30 30 import org.openstreetmap.josm.tools.GBC; 31 import org.openstreetmap.josm.gui.widgets.JosmTextField;32 31 33 32 class LayerNameAndFilePathTableCell extends JPanel implements TableCellRenderer, TableCellEditor { … … 43 42 private static final GBC defaultCellStyle = GBC.eol().fill(GBC.HORIZONTAL).insets(2, 0, 2, 0); 44 43 45 private CopyOnWriteArrayList<CellEditorListener> listeners;44 private final CellEditorSupport cellEditorSupport = new CellEditorSupport(this); 46 45 private File value; 47 46 … … 71 70 btnFileChooser.setPreferredSize(new Dimension(20, 19)); 72 71 btnFileChooser.setOpaque(true); 73 74 listeners = new CopyOnWriteArrayList<CellEditorListener>();75 72 } 76 73 … … 93 90 } 94 91 95 /** renderer used while the file path is being edited **/ 96 @Override 97 public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, 98 int row, int column) { 92 @Override 93 public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { 99 94 removeAll(); 100 95 SaveLayerInfo info = (SaveLayerInfo)value; … … 182 177 @Override 183 178 public void addCellEditorListener(CellEditorListener l) { 184 if (l != null) { 185 listeners.addIfAbsent(l); 186 } 187 } 188 189 protected void fireEditingCanceled() { 190 for (CellEditorListener l: listeners) { 191 l.editingCanceled(new ChangeEvent(this)); 192 } 193 } 194 195 protected void fireEditingStopped() { 196 for (CellEditorListener l: listeners) { 197 l.editingStopped(new ChangeEvent(this)); 198 } 179 cellEditorSupport.addCellEditorListener(l); 199 180 } 200 181 201 182 @Override 202 183 public void cancelCellEditing() { 203 fireEditingCanceled();184 cellEditorSupport.fireEditingCanceled(); 204 185 } 205 186 … … 216 197 @Override 217 198 public void removeCellEditorListener(CellEditorListener l) { 218 listeners.remove(l);199 cellEditorSupport.removeCellEditorListener(l); 219 200 } 220 201 … … 231 212 value = new File(tfFilename.getText()); 232 213 } 233 fireEditingStopped();214 cellEditorSupport.fireEditingStopped(); 234 215 return true; 235 216 }
Note:
See TracChangeset
for help on using the changeset viewer.