// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.dialogs.relation;
import java.awt.Component;
import java.util.logging.Logger;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.gui.tagging.AutoCompletingTextField;
import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionCache;
import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionList;
public class MemberRoleCellEditor extends AbstractCellEditor implements TableCellEditor {
@SuppressWarnings("unused")
static private Logger logger = Logger.getLogger(MemberRoleCellEditor.class.getName());
private AutoCompletingTextField editor = null;
/** user input is matched against this list of auto completion items */
private AutoCompletionList autoCompletionList = null;
/**
* constructor
*/
public MemberRoleCellEditor() {
editor = new AutoCompletingTextField();
autoCompletionList = new AutoCompletionList();
editor.setAutoCompletionList(autoCompletionList);
}
/**
* replies the table cell editor
*/
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
String role = (String)value;
editor.setText(role);
AutoCompletionCache.getCacheForLayer(Main.main.getEditLayer()).populateWithMemberRoles(autoCompletionList);
return editor;
}
public Object getCellEditorValue() {
return editor.getText();
}
@Override
public void cancelCellEditing() {
super.cancelCellEditing();
}
@Override
public boolean stopCellEditing() {
return super.stopCellEditing();
}
}