package org.reldb.dbrowser.ui.content.rel.var.grids;
import org.eclipse.jface.window.Window;
import org.eclipse.nebula.widgets.nattable.edit.gui.AbstractDialogCellEditor;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum;
public class RvaCellEditor extends AbstractDialogCellEditor {
private boolean dialogIsClosed = false;
private Editor parentEditor;
private String defaultValue;
public RvaCellEditor(Editor editor, String defaultValue) {
this.parentEditor = editor;
this.defaultValue = defaultValue;
}
@Override
public int open() {
if (Window.OK == getDialogInstance().open()) {
commit(MoveDirectionEnum.NONE);
this.dialogIsClosed = true;
return Window.OK;
} else {
this.dialogIsClosed = true;
return Window.CANCEL;
}
}
@Override
public RvaEditorDialog createDialogInstance() {
dialogIsClosed = false;
return new RvaEditorDialog(parent.getShell(), parentEditor.connection);
}
@Override
public RvaEditorDialog getDialogInstance() {
return (RvaEditorDialog) dialog;
}
@Override
public Object getEditorValue() {
return getDialogInstance().getRVAValue();
}
@Override
public void setEditorValue(Object value) {
String editorValue;
if (value.toString().trim().length() == 0)
editorValue = defaultValue;
else
editorValue = value.toString();
getDialogInstance().setRVAValue(editorValue);
}
@Override
public void close() {
getDialogInstance().close();
}
@Override
public boolean isClosed() {
return this.dialogIsClosed;
}
}