001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.conflict.pair.relation;
003
004 import java.awt.Component;
005 import java.awt.event.FocusAdapter;
006 import java.awt.event.FocusEvent;
007
008 import javax.swing.AbstractCellEditor;
009 import javax.swing.JTable;
010 import javax.swing.JTextField;
011 import javax.swing.table.TableCellEditor;
012
013 import org.openstreetmap.josm.data.osm.RelationMember;
014
015 /**
016 * {@link TableCellEditor} for the role column in a table for {@link RelationMember}s.
017 *
018 */
019 public class RelationMemberTableCellEditor extends AbstractCellEditor implements TableCellEditor{
020
021 private final JTextField editor;
022
023 public RelationMemberTableCellEditor() {
024 editor = new JTextField();
025 editor.addFocusListener(
026 new FocusAdapter() {
027 @Override
028 public void focusGained(FocusEvent arg0) {
029 editor.selectAll();
030 }
031 }
032 );
033 }
034
035 public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
036 // Do not edit empty or incomplete members ! (fix #5374 and #6315)
037 if (value == null)
038 return null;
039
040 RelationMember member = (RelationMember)value;
041
042 editor.setText(member.getRole());
043 editor.selectAll();
044 return editor;
045 }
046
047 public Object getCellEditorValue() {
048 return editor.getText();
049 }
050
051 }