blob: 90c6049ba892dfcb470dc611056562d96de33d12 [file] [log] [blame]
package org.eclipse.ptp.debug.internal.ui.views;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
/**
* @author clement
*
*/
public class CTableComboCellEditor extends AbstractCTableCellEditor {
private CCombo m_Combo;
private String m_Items[];
public void open(CTable table, int row, int col, Rectangle rect) {
super.open(table, row, col, rect);
m_Combo.setFocus();
m_Combo.setText((String) m_Model.getContentAt(m_Col, m_Row));
}
public void close(boolean save) {
if (save)
m_Model.setContentAt(m_Col, m_Row, m_Combo.getText());
super.close(save);
m_Combo = null;
}
protected Control createControl() {
m_Combo = new CCombo(m_Table, SWT.READ_ONLY);
m_Combo.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
if (m_Items != null)
m_Combo.setItems(m_Items);
m_Combo.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
try {
onKeyPressed(e);
} catch (Exception ex) {}
}
});
return m_Combo;
}
public void setBounds(Rectangle rect) {
super.setBounds(new Rectangle(rect.x, rect.y + 1, rect.width, rect.height - 2));
}
public void setItems(String items[]) {
m_Items = items;
}
}