package org.jbpm.gd.jpdl.action;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.jbpm.gd.jpdl.deployment.ProcessArchiveBuilder;
import org.jbpm.gd.jpdl.deployment.ProcessArchiveDeployer;
import org.jbpm.gd.jpdl.editor.JpdlEditor;
public class DeployProcessAction extends Action {
private JpdlEditor jpdlEditor;
public DeployProcessAction(JpdlEditor jpdlEditor) {
this.jpdlEditor = jpdlEditor;
}
public void run() {
byte[] processArchive = new ProcessArchiveBuilder(jpdlEditor).build();
if (processArchive == null) return;
boolean success = new ProcessArchiveDeployer(jpdlEditor).deploy(processArchive);
if (success) {
showSuccessDialog();
} else {
showFailureDialog();
}
}
private void showSuccessDialog() {
MessageDialog dialog = new MessageDialog(
jpdlEditor.getSite().getShell(),
"Deployment Successful",
null,
"The process archive deployed successfully.",
SWT.ICON_INFORMATION,
new String[] { "OK" },
0);
dialog.open();
}
private void showFailureDialog() {
MessageDialog dialog = new MessageDialog(
jpdlEditor.getSite().getShell(),
"Deployment Failed",
null,
"The process archive could not be deployed.",
SWT.ICON_ERROR,
new String[] { "OK" },
0);
dialog.open();
}
}