source: josm/trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionEditor.java@ 12902

Last change on this file since 12902 was 10611, checked in by Don-vip, 8 years ago

see #11390 - sonar - squid:S1604 - Java 8: Anonymous inner classes containing only one method should become lambdas

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.tags;
3
4import java.awt.Component;
5import java.util.EventObject;
6
7import javax.swing.JTable;
8import javax.swing.event.CellEditorListener;
9import javax.swing.table.TableCellEditor;
10
11import org.openstreetmap.josm.gui.util.CellEditorSupport;
12import org.openstreetmap.josm.gui.widgets.JosmComboBox;
13
14/**
15 * Table cell editor for relation member conflict resolver table.
16 * @since 2070
17 */
18public class RelationMemberConflictDecisionEditor extends JosmComboBox<RelationMemberConflictDecisionType> implements TableCellEditor {
19
20 private final transient CellEditorSupport tableCellEditorSupport;
21 private RelationMemberConflictDecisionType originalValue;
22
23 /**
24 * Constructs a new {@code RelationMemberConflictDecisionEditor}.
25 */
26 public RelationMemberConflictDecisionEditor() {
27 super(RelationMemberConflictDecisionType.values());
28 setOpaque(true);
29 setRenderer(new RelationMemberConflictDecisionRenderer());
30 tableCellEditorSupport = new CellEditorSupport(this);
31 }
32
33 /* --------------------------------------------------------------------------------- */
34 /* TableCellEditor */
35 /* --------------------------------------------------------------------------------- */
36 @Override
37 public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
38 addActionListener(e -> stopCellEditing());
39 setSelectedItem(value);
40 this.originalValue = (RelationMemberConflictDecisionType) value;
41 return this;
42 }
43
44 @Override
45 public void addCellEditorListener(CellEditorListener l) {
46 tableCellEditorSupport.addCellEditorListener(l);
47 }
48
49 @Override
50 public void cancelCellEditing() {
51 setSelectedItem(originalValue);
52 tableCellEditorSupport.fireEditingCanceled();
53 }
54
55 @Override
56 public Object getCellEditorValue() {
57 return getSelectedItem();
58 }
59
60 @Override
61 public boolean isCellEditable(EventObject anEvent) {
62 return true;
63 }
64
65 @Override
66 public void removeCellEditorListener(CellEditorListener l) {
67 tableCellEditorSupport.removeCellEditorListener(l);
68 }
69
70 @Override
71 public boolean shouldSelectCell(EventObject anEvent) {
72 return true;
73 }
74
75 @Override
76 public boolean stopCellEditing() {
77 tableCellEditorSupport.fireEditingStopped();
78 return true;
79 }
80}
Note: See TracBrowser for help on using the repository browser.