package com.xrosstools.xunit.editor.actions;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.ui.actions.WorkbenchPartAction;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPart;
import com.xrosstools.xunit.editor.UnitDiagramGraphicalEditor;
import com.xrosstools.xunit.editor.model.UnitConfigure;
import com.xrosstools.xunit.editor.model.UnitNodeDiagram;
public abstract class BaseDialogAction extends WorkbenchPartAction implements UnitActionConstants {
private String dialogTitle;
private String dialogMessage;
private String initialValue;
public BaseDialogAction(
IWorkbenchPart part,
String dialogTitle,
String dialogMessage,
String initialValue){
super(part);
this.dialogTitle = dialogTitle;
this.dialogMessage = dialogMessage;
this.initialValue = initialValue;
setId(ID_PREFIX + dialogTitle + dialogMessage + initialValue);
setText(dialogTitle);
}
protected boolean calculateEnabled() {
return true;
}
abstract protected Command createCommand(String value);
public void run() {
InputDialog dlg = new InputDialog(
Display.getCurrent().getActiveShell(),
dialogTitle, dialogMessage, initialValue, null);
if (dlg.open() != Window.OK)
return;
execute(createCommand(dlg.getValue()));
}
}