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 }