/**
*
*/
package org.korsakow.ide.ui.components.code;
import java.awt.Color;
import java.awt.Component;
import javax.swing.DefaultCellEditor;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.JTextField;
import org.korsakow.ide.ui.resources.SnuResourceView;
public class MaxLinksCellEditor extends DefaultCellEditor
{
private final JComboBox editor;
public MaxLinksCellEditor()
{
super(new JComboBox());
editor = (JComboBox)editorComponent;
editor.setEditable(true);
editor.setRenderer(new MaxLinksCellRenderer());
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected,
int row, int column)
{
if (value == null)
value = SnuResourceView.INFINITE;
super.getTableCellEditorComponent(table, value, isSelected, row, column);
// editor.setModel(new KComboboxModel(SnuResourceView.MAXLINKS_CHOICES, value));
editor.setModel(new DefaultComboBoxModel(SnuResourceView.MAXLINKS_CHOICES));
editor.setSelectedItem(value);
editor.setForeground(Color.white);
editor.setBackground(CodeCellEditor.SELECTION_BACKGROUND);
editor.putClientProperty("ui.background2", null);
((JTextField)editor.getEditor().getEditorComponent()).setCaretColor(Color.white);
return editor;
}
@Override
public Object getCellEditorValue()
{
try {
Object value = super.getCellEditorValue();
if (value != null && value.toString().length() > 0 && !SnuResourceView.INFINITE.equals(value.toString()))
return (long)(Long.parseLong(super.getCellEditorValue().toString()));
else
return null;
} catch (NumberFormatException e) {
return null;
}
}
}