// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.conflict.pair.relation; import java.awt.Component; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import javax.swing.AbstractCellEditor; import javax.swing.JTable; import javax.swing.table.TableCellEditor; import org.openstreetmap.josm.data.osm.RelationMember; import org.openstreetmap.josm.gui.widgets.JosmTextField; /** * {@link TableCellEditor} for the role column in a table for {@link RelationMember}s. * @since 1631 */ public class RelationMemberTableCellEditor extends AbstractCellEditor implements TableCellEditor { private final JosmTextField editor; /** * Constructs a new {@code RelationMemberTableCellEditor}. */ public RelationMemberTableCellEditor() { editor = new JosmTextField(); editor.addFocusListener( new FocusAdapter() { @Override public void focusGained(FocusEvent arg0) { editor.selectAll(); } } ); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { // Do not edit empty or incomplete members ! (fix #5374 and #6315) if (value == null) return null; RelationMember member = (RelationMember) value; editor.setText(member.getRole()); editor.selectAll(); return editor; } @Override public Object getCellEditorValue() { return editor.getText(); } }