blob: 93dfce492b6a7f4d9a6886428455308a08857579 [file] [log] [blame]
package org.eclipse.ptp.internal.debug.ui.views;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text;
/**
* @author clement
*
*/
public class CTableTextCellEditor extends AbstractCTableCellEditor {
private Text m_Text;
private boolean editable;
public CTableTextCellEditor(boolean editable) {
this.editable = editable;
}
public void open(CTable table, int col, int row, Rectangle rect) {
super.open(table, col, row, rect);
m_Text.setText(m_Model.getContentAt(m_Col, m_Row).toString());
m_Text.selectAll();
m_Text.setVisible(true);
m_Text.setFocus();
}
public void close(boolean save) {
if (save)
m_Model.setContentAt(m_Col, m_Row, m_Text.getText());
super.close(save);
m_Text = null;
}
protected Control createControl() {
m_Text = new Text(m_Table, SWT.NONE);
m_Text.setEditable(editable);
m_Text.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
try {
onKeyPressed(e);
} catch (Exception ex) {}
}
});
m_Text.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent arg0) {
onTraverse(arg0);
}
});
return m_Text;
}
public void setBounds(Rectangle rect) {
super.setBounds(new Rectangle(rect.x, rect.y + (rect.height - 15) / 2 + 1, rect.width, 15));
}
}