/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.editors;
import Sirius.server.middleware.types.MetaClass;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.util.EventObject;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
/**
* A table cell editor that shows a bindable combobox.
*
* @author therter
* @version $Revision$, $Date$
*/
public class DefaultBindableComboboxCellEditor extends AbstractCellEditor implements TableCellEditor {
//~ Instance fields --------------------------------------------------------
private DefaultBindableReferenceCombo comboBox;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new DefaultBindableComboboxCellEditor object.
*
* @param metaClass DOCUMENT ME!
*/
public DefaultBindableComboboxCellEditor(final MetaClass metaClass) {
comboBox = new DefaultBindableScrollableComboBox(metaClass);
}
//~ Methods ----------------------------------------------------------------
@Override
public boolean isCellEditable(final EventObject anEvent) {
if (anEvent instanceof MouseEvent) {
return ((MouseEvent)anEvent).getClickCount() >= 2;
}
return true;
}
@Override
public Object getCellEditorValue() {
return comboBox.getSelectedItem();
}
@Override
public Component getTableCellEditorComponent(final JTable table,
final Object value,
final boolean isSelected,
final int row,
final int column) {
comboBox.setSelectedItem(value);
return comboBox;
}
}