use of com.centurylink.mdw.plugin.designer.model.WorkflowPackage in project mdw-designer by CenturyLinkCloud.
the class NewProcessWizard method init.
public void init(IWorkbench workbench, IStructuredSelection selection) {
setDefaultPageImageDescriptor(MdwPlugin.getImageDescriptor("icons/mdw_wiz.png"));
setNeedsProgressMonitor(true);
newProcessPage = new NewProcessPage();
process = new WorkflowProcess();
if (selection != null && selection.getFirstElement() instanceof WorkflowPackage) {
WorkflowPackage processPackage = (WorkflowPackage) selection.getFirstElement();
process.setProject(processPackage.getProject());
process.setPackage(processPackage);
} else if (selection != null && selection.getFirstElement() instanceof WorkflowProject) {
WorkflowProject workflowProject = (WorkflowProject) selection.getFirstElement();
process.setProject(workflowProject);
if (workflowProject.isShowDefaultPackage())
process.setPackage(workflowProject.getDefaultPackage());
} else if (selection != null && selection.getFirstElement() instanceof WorkflowElement) {
WorkflowProject workflowProject = ((WorkflowElement) selection.getFirstElement()).getProject();
process.setProject(workflowProject);
} else {
WorkflowProject workflowProject = WorkflowProjectManager.getInstance().findWorkflowProject(selection);
if (workflowProject != null)
process.setProject(workflowProject);
}
}
use of com.centurylink.mdw.plugin.designer.model.WorkflowPackage in project mdw-designer by CenturyLinkCloud.
the class ProcessCanvasWrapper method buildPopupMenu.
/**
* Needs to run on the SWT UI thread.
*/
private Menu buildPopupMenu(final int x, final int y) {
if (popupMenu != null)
popupMenu.dispose();
popupMenu = new Menu(getParent().getShell(), SWT.POP_UP);
if (!isInstance()) {
if (designerCanvasSelection instanceof WorkflowProcess) {
if (process.getPackage() != null && process.isUserAuthorized(UserRoleVO.ASSET_DESIGN)) {
// save as
MenuItem saveAsItem = new MenuItem(popupMenu, SWT.PUSH);
saveAsItem.setText("Save as...");
ImageDescriptor propsImageDescForSave = MdwPlugin.getImageDescriptor("icons/save.gif");
saveAsItem.setImage(propsImageDescForSave.createImage());
saveAsItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
saveProcessAs();
}
});
}
MenuItem exportAsItem = new MenuItem(popupMenu, SWT.PUSH);
exportAsItem.setText("Export as...");
ImageDescriptor exportAsDesc = MdwPlugin.getImageDescriptor("icons/export_as.gif");
exportAsItem.setImage(exportAsDesc.createImage());
exportAsItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
exportAs(ProcessCanvasWrapper.this.getDisplay().getActiveShell());
}
});
}
if (!process.isReadOnly()) {
if (designerCanvasSelection instanceof WorkflowProcess) {
if (process.isInRuleSet()) {
// notes
MenuItem noteItem = new MenuItem(popupMenu, SWT.PUSH);
noteItem.setText("Add Note");
ImageDescriptor noteImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
noteItem.setImage(noteImageDesc.createImage());
noteItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
addNote(x, y);
}
});
}
// paste
MenuItem pasteItem = new MenuItem(popupMenu, SWT.PUSH);
pasteItem.setText("Paste\tCtrl+V");
ImageDescriptor pasteImageDesc = MdwPlugin.getImageDescriptor("icons/paste.gif");
pasteItem.setImage(pasteImageDesc.createImage());
pasteItem.setEnabled(GraphClipboard.getInstance().get() != null);
pasteItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
pasteSelection();
}
});
} else {
// cut
MenuItem cutItem = new MenuItem(popupMenu, SWT.PUSH);
cutItem.setText("Cut\tCtrl+X");
ImageDescriptor cutImageDesc = MdwPlugin.getImageDescriptor("icons/cut.gif");
cutItem.setImage(cutImageDesc.createImage());
cutItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cutSelection();
}
});
}
}
if (!(designerCanvasSelection instanceof WorkflowProcess)) {
// copy
MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
copyItem.setText("Copy\tCtrl+C");
ImageDescriptor copyImageDesc = MdwPlugin.getImageDescriptor("icons/copy.gif");
copyItem.setImage(copyImageDesc.createImage());
copyItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
copySelection();
}
});
// delete
if (!process.isReadOnly()) {
MenuItem deleteItem = new MenuItem(popupMenu, SWT.PUSH);
deleteItem.setText("Delete\tDel");
ImageDescriptor deleteImageDesc = MdwPlugin.getImageDescriptor("icons/delete.gif");
deleteItem.setImage(deleteImageDesc.createImage());
deleteItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
deleteSelection();
}
});
}
}
}
// properties
MenuItem propsItem = new MenuItem(popupMenu, SWT.PUSH);
propsItem.setText("Show Properties");
ImageDescriptor propsImageDesc = MdwPlugin.getImageDescriptor("icons/properties.gif");
propsItem.setImage(propsImageDesc.createImage());
propsItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showPropertiesView();
}
});
// documentation
if (!isInstance()) {
MenuItem docsItem = new MenuItem(popupMenu, SWT.PUSH);
docsItem.setText("Documentation");
ImageDescriptor docsImageDesc = MdwPlugin.getImageDescriptor("icons/word.gif");
docsItem.setImage(docsImageDesc.createImage());
docsItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openDocumentation();
}
});
}
// process definition xml
if (!isInstance() && (designerCanvasSelection instanceof WorkflowProcess) && getProcess().isInRuleSet()) {
MenuItem defXmlItem = new MenuItem(popupMenu, SWT.PUSH);
defXmlItem.setText("Definition Doc");
ImageDescriptor docsImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
defXmlItem.setImage(docsImageDesc.createImage());
defXmlItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openDefinitionXml();
}
});
}
// open subprocess
boolean isSubProcessActivity = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isSubProcessInvoke();
if (!isInstance() && isSubProcessActivity) {
final Activity subProcessActivity = (Activity) designerCanvasSelection;
if (!subProcessActivity.isHeterogeneousSubProcInvoke()) {
MenuItem subProcItem = new MenuItem(popupMenu, SWT.PUSH);
subProcItem.setText(OPEN_SUBPROCESS);
ImageDescriptor subProcImageDesc = MdwPlugin.getImageDescriptor("icons/designer.gif");
subProcItem.setImage(subProcImageDesc.createImage());
subProcItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openSubProcess(subProcessActivity);
}
});
}
}
// edit script
boolean isScript = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isScript();
if (!isInstance() && isScript) {
final Activity scriptActivity = (Activity) designerCanvasSelection;
MenuItem editScriptItem = new MenuItem(popupMenu, SWT.PUSH);
String artifactTitle = "Script";
if (scriptActivity.isRule())
artifactTitle = "Rule";
else if (TransformEditorValueProvider.isTransformActivity(scriptActivity))
artifactTitle = "Transform";
else if (scriptActivity.getAttribute("Rule") != null)
artifactTitle += " *";
if (process.isReadOnly())
editScriptItem.setText("View " + artifactTitle);
else
editScriptItem.setText("Edit " + artifactTitle);
ImageDescriptor scriptImageDesc = MdwPlugin.getImageDescriptor("icons/script.gif");
editScriptItem.setImage(scriptImageDesc.createImage());
editScriptItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openScript(scriptActivity);
}
});
}
// edit java
boolean isJava = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isDynamicJava();
if (!isInstance() && isJava) {
final Activity javaActivity = (Activity) designerCanvasSelection;
MenuItem editJavaItem = new MenuItem(popupMenu, SWT.PUSH);
String artifactTitle = "Java";
if (process.isReadOnly())
editJavaItem.setText("View " + artifactTitle);
else
editJavaItem.setText("Edit " + artifactTitle);
ImageDescriptor javaImageDesc = MdwPlugin.getImageDescriptor("icons/java.gif");
editJavaItem.setImage(javaImageDesc.createImage());
editJavaItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openJava(javaActivity);
}
});
}
// open task instance or process instance
if (isInstance() && designerCanvasSelection instanceof Activity) {
final Activity activity = (Activity) designerCanvasSelection;
if (activity.isManualTask()) {
if (activity.getTaskInstances() != null && !activity.getTaskInstances().isEmpty()) {
MenuItem viewTaskItem = new MenuItem(popupMenu, SWT.PUSH);
viewTaskItem.setText("View Task");
viewTaskItem.setImage(MdwPlugin.getImageDescriptor("icons/taskmgr.gif").createImage());
viewTaskItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
TaskInstanceVO taskInstanceVO = null;
for (TaskInstanceVO taskInstance : activity.getTaskInstances()) {
if (taskInstanceVO == null || taskInstance.getTaskInstanceId() > taskInstanceVO.getTaskInstanceId())
taskInstanceVO = taskInstance;
}
if (taskInstanceVO != null) {
boolean assigned = activity.getProject().getUser().getUsername().equals(taskInstanceVO.getTaskClaimUserCuid());
String taskInstParams = activity.getProject().getTaskInstancePath(taskInstanceVO.getTaskInstanceId(), assigned);
WorkflowPackage packageVersion = activity.getPackage();
String packageParam = packageVersion.isDefaultPackage() ? "" : "&packageName=" + packageVersion.getName();
WebApp webapp = activity.getProject().checkRequiredVersion(5, 5) ? WebApp.MdwHub : WebApp.TaskManager;
WebLaunchActions.getLaunchAction(activity.getProject(), webapp).launch(activity.getProject(), taskInstParams + packageParam);
}
}
});
}
} else if (activity.isSubProcessInvoke() && activity.getSubProcessInstances() != null && !activity.getSubProcessInstances().isEmpty() && activity.getSubProcessInstances().size() < 50) {
MenuItem subMenuItem = new MenuItem(popupMenu, SWT.CASCADE);
subMenuItem.setText("SubProcesses");
subMenuItem.setImage(MdwPlugin.getImageDescriptor("icons/processfolder.gif").createImage());
Menu subMenu = new Menu(subMenuItem);
subMenuItem.setMenu(subMenu);
for (final ProcessInstanceVO subProcInst : activity.getSubProcessInstances()) {
MenuItem subProcItem = new MenuItem(subMenu, SWT.PUSH);
subProcItem.setText("Instance " + subProcInst.getId());
subProcItem.setImage(MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF).createImage());
subProcItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openProcessInstance(subProcInst);
}
});
}
}
}
// launch process, lock, show instances, find calling processes
if (!isInstance() && designerCanvasSelection instanceof WorkflowProcess) {
if (designerCanvasSelection.isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
MenuItem runItem = new MenuItem(popupMenu, SWT.PUSH);
runItem.setText("Run...");
ImageDescriptor runImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
runItem.setImage(runImageDesc.createImage());
runItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
launchProcess((WorkflowProcess) designerCanvasSelection, false);
}
});
MenuItem runPageItem = new MenuItem(popupMenu, SWT.PUSH);
runPageItem.setText("Run Start Page...");
ImageDescriptor runPageImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
runPageItem.setImage(runPageImageDesc.createImage());
runPageItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
launchProcessPage((WorkflowProcess) designerCanvasSelection);
}
});
if (!MdwPlugin.isRcp()) {
MenuItem debugItem = new MenuItem(popupMenu, SWT.PUSH);
debugItem.setText("Debug...");
ImageDescriptor debugImageDesc = MdwPlugin.getImageDescriptor("icons/debug.gif");
debugItem.setImage(debugImageDesc.createImage());
debugItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
launchProcess((WorkflowProcess) designerCanvasSelection, true);
}
});
}
}
if (isLockAllowed()) {
MenuItem lockItem = new MenuItem(popupMenu, SWT.PUSH);
lockItem.setText(getProcess().isLockedToUser() ? "Unlock Process" : "Lock Process");
ImageDescriptor lockImageDesc = MdwPlugin.getImageDescriptor("icons/lock.gif");
lockItem.setImage(lockImageDesc.createImage());
lockItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
toggleProcessLock(!((WorkflowProcess) designerCanvasSelection).isLockedToUser());
}
});
}
if (getProcess().getProject().isPureMdw52()) {
MenuItem callersItem = new MenuItem(popupMenu, SWT.PUSH);
callersItem.setText("Find Calling Processes");
ImageDescriptor callersImageDesc = MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF);
callersItem.setImage(callersImageDesc.createImage());
callersItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
actionHandler.findCallers(designerCanvasSelection);
}
});
if (getProject().isFilePersist()) {
MenuItem hierarchyItem = new MenuItem(popupMenu, SWT.PUSH);
hierarchyItem.setText("Process Hierarchy");
ImageDescriptor hierarchyImageDesc = MdwPlugin.getImageDescriptor("icons/hierarchy.gif");
hierarchyItem.setImage(hierarchyImageDesc.createImage());
hierarchyItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
actionHandler.showHierarchy(designerCanvasSelection);
}
});
}
}
MenuItem instancesItem = new MenuItem(popupMenu, SWT.PUSH);
instancesItem.setText("View Instances");
ImageDescriptor instancesImageDesc = MdwPlugin.getImageDescriptor("icons/list.gif");
instancesItem.setImage(instancesImageDesc.createImage());
instancesItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showProcessInstances((WorkflowProcess) designerCanvasSelection);
}
});
}
// launch activity
if (!isInstance() && designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).getProcess().isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
MenuItem runItem = new MenuItem(popupMenu, SWT.PUSH);
runItem.setText("Run from Here...");
ImageDescriptor runImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
runItem.setImage(runImageDesc.createImage());
runItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
launchProcess((Activity) designerCanvasSelection, false);
}
});
if (!MdwPlugin.isRcp()) {
MenuItem debugItem = new MenuItem(popupMenu, SWT.PUSH);
debugItem.setText("Debug from Here...");
ImageDescriptor debugImageDesc = MdwPlugin.getImageDescriptor("icons/debug.gif");
debugItem.setImage(debugImageDesc.createImage());
debugItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
launchProcess((Activity) designerCanvasSelection, true);
}
});
}
}
// refresh
if (designerCanvasSelection instanceof WorkflowProcess) {
MenuItem refreshItem = new MenuItem(popupMenu, SWT.PUSH);
refreshItem.setText("Refresh");
ImageDescriptor refreshImageDesc = MdwPlugin.getImageDescriptor("icons/refresh.gif");
refreshItem.setImage(refreshImageDesc.createImage());
refreshItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
refresh();
}
});
// open in hub
if (getProject().checkRequiredVersion(6)) {
MenuItem hubItem = new MenuItem(popupMenu, SWT.PUSH);
hubItem.setText("Open in MDWHub");
ImageDescriptor hubImageDesc = MdwPlugin.getImageDescriptor("icons/webtools.gif");
hubItem.setImage(hubImageDesc.createImage());
hubItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
String resourcePath;
if (isInstance())
resourcePath = "#/workflow/processes/" + getProcess().getProcessInstance().getId();
else
resourcePath = "#/workflow/definitions/" + getProcess().getPackage().getName() + "/" + getProcess().getName();
WebLaunchActions.getLaunchAction(getProject(), WebApp.MdwHub).launch(getProject(), resourcePath);
}
});
}
}
// process definition and open calling process instance
if (isInstance() && designerCanvasSelection instanceof WorkflowProcess) {
final WorkflowProcess processInstVersion = (WorkflowProcess) designerCanvasSelection;
MenuItem procDefItem = new MenuItem(popupMenu, SWT.PUSH);
procDefItem.setText("Process Definition");
ImageDescriptor procDefImageDesc = MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF);
procDefItem.setImage(procDefImageDesc.createImage());
procDefItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openProcessDefinition(new WorkflowProcess(processInstVersion));
}
});
if (OwnerType.PROCESS_INSTANCE.equals(processInstVersion.getProcessInstance().getOwner())) {
MenuItem callingInstanceItem = new MenuItem(popupMenu, SWT.PUSH);
callingInstanceItem.setText("Calling Process Instance");
ImageDescriptor callerImageDesc = MdwPlugin.getImageDescriptor("icons/launch.gif");
callingInstanceItem.setImage(callerImageDesc.createImage());
callingInstanceItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openCallingInstance();
}
});
}
MenuItem instanceHierarchyItem = new MenuItem(popupMenu, SWT.PUSH);
instanceHierarchyItem.setText("Instance Hierarchy");
ImageDescriptor hierarchyImageDesc = MdwPlugin.getImageDescriptor("icons/hierarchy.gif");
instanceHierarchyItem.setImage(hierarchyImageDesc.createImage());
instanceHierarchyItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
actionHandler.showHierarchy(designerCanvasSelection);
}
});
if (OwnerType.ERROR.equals(processInstVersion.getProcessInstance().getOwner())) {
MenuItem errorTriggerItem = new MenuItem(popupMenu, SWT.PUSH);
errorTriggerItem.setText("Triggering Process");
ImageDescriptor errorImageDesc = MdwPlugin.getImageDescriptor("icons/error.gif");
errorTriggerItem.setImage(errorImageDesc.createImage());
errorTriggerItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
openTriggeringInstance();
}
});
}
}
// retry and skip
if (isInstance() && designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).hasInstanceInfo() && ((Activity) designerCanvasSelection).getProcess().isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
MenuItem retryItem = new MenuItem(popupMenu, SWT.PUSH);
retryItem.setText("Retry");
ImageDescriptor retryImageDesc = MdwPlugin.getImageDescriptor("icons/retry.gif");
retryItem.setImage(retryImageDesc.createImage());
retryItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
try {
pbi.busyWhile(new Runnable() {
public void run() {
Activity activity = (Activity) designerCanvasSelection;
Shell shell = MdwPlugin.getActiveWorkbenchWindow().getShell();
ActivityInstanceVO actInstVO = activity.getInstances().get(activity.getInstances().size() - 1);
ActivityInstanceDialog actInstDlg = new ActivityInstanceDialog(shell, activity, actInstVO, Mode.RETRY);
actInstDlg.open();
}
});
} catch (InvocationTargetException ex) {
PluginMessages.uiError(ex, "Retry Activity", getProject());
}
}
});
MenuItem skipItem = new MenuItem(popupMenu, SWT.PUSH);
skipItem.setText("Proceed");
ImageDescriptor skipImageDesc = MdwPlugin.getImageDescriptor("icons/skip.gif");
skipItem.setImage(skipImageDesc.createImage());
skipItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
try {
pbi.busyWhile(new Runnable() {
public void run() {
Activity activity = (Activity) designerCanvasSelection;
Shell shell = MdwPlugin.getActiveWorkbenchWindow().getShell();
ActivityInstanceVO actInstVO = activity.getInstances().get(activity.getInstances().size() - 1);
ActivityInstanceDialog actInstDlg = new ActivityInstanceDialog(shell, activity, actInstVO, Mode.SKIP);
actInstDlg.open();
}
});
} catch (InvocationTargetException ex) {
PluginMessages.uiError(ex, "Skip Activity", getProject());
}
}
});
}
// view owning document
if (isInstance() && designerCanvasSelection instanceof WorkflowProcess && (OwnerType.DOCUMENT.equals(getProcess().getProcessInstance().getOwner()) || OwnerType.TESTER.equals(getProcess().getProcessInstance().getOwner()))) {
MenuItem docItem = new MenuItem(popupMenu, SWT.PUSH);
docItem.setText("View Owning Document");
ImageDescriptor docImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
docItem.setImage(docImageDesc.createImage());
docItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
try {
pbi.busyWhile(new Runnable() {
public void run() {
IStorage storage = new DocumentStorage(getProject(), new DocumentReference(getProcess().getProcessInstance().getOwnerId(), null));
final IStorageEditorInput input = new StorageEditorInput(storage);
final IWorkbenchPage page = MdwPlugin.getActivePage();
if (page != null) {
try {
page.openEditor(input, "org.eclipse.ui.DefaultTextEditor");
} catch (PartInitException ex) {
PluginMessages.uiError(ex, "View Document", getProject());
}
}
}
});
} catch (InvocationTargetException ex) {
PluginMessages.uiError(ex, "View Document", getProject());
}
}
});
}
return popupMenu;
}
use of com.centurylink.mdw.plugin.designer.model.WorkflowPackage in project mdw-designer by CenturyLinkCloud.
the class ProcessCanvasWrapper method saveProcessAs.
public void saveProcessAs() {
ProcessSaveAsDialog newProcessDialog = new ProcessSaveAsDialog(getParent().getShell(), getProcess());
if (newProcessDialog.open() != Dialog.OK)
// cancelled
return;
String newName = newProcessDialog.getNewName();
WorkflowPackage newPkg = getProject().getDefaultPackage();
if (!StringHelper.isEmpty(newProcessDialog.getPackageName()))
newPkg = getProject().getPackage(newProcessDialog.getPackageName());
flowchartPage.getProcess().blankOutTaskLogicalId();
flowchartPage.getProcess().save_temp_vars();
getDesignerProxy().saveProcessAs(getProcess(), newPkg, newName);
WorkflowProcess newProc = getProject().getProcess(newName);
if (newProc != null) {
// update the process explorer tree
newProc.sync();
newProc.addElementChangeListener(getProject());
newProc.fireElementChangeEvent(ChangeType.ELEMENT_CREATE, newProc);
// update the canvas editor
openProcessDefinition(newProc);
IWorkbenchPage page = MdwPlugin.getActivePage();
if (page != null) {
ProcessEditor processEditor = (ProcessEditor) page.findEditor(getProcess());
if (processEditor != null)
page.closeEditor(processEditor, false);
}
}
}
use of com.centurylink.mdw.plugin.designer.model.WorkflowPackage in project mdw-designer by CenturyLinkCloud.
the class WorkflowAssetEditor method fillTreeCombo.
private void fillTreeCombo() {
treeCombo.removeAll();
Comparator<WorkflowElement> comparator = new Comparator<WorkflowElement>() {
public int compare(WorkflowElement we1, WorkflowElement we2) {
return we1.getLabel().compareTo(we2.getLabel());
}
};
if (isProcess()) {
List<WorkflowPackage> packages = getProject().getTopLevelUserVisiblePackages();
for (WorkflowPackage pkg : packages) {
CTreeComboItem packageItem = new CTreeComboItem(treeCombo, SWT.NONE);
packageItem.setText(pkg.getName());
packageItem.setImage(pkg.getIconImage());
for (WorkflowProcess process : pkg.getProcesses()) {
CTreeComboItem processItem = new CTreeComboItem(packageItem, SWT.NONE);
processItem.setText(process.getLabel());
processItem.setImage(process.getIconImage());
}
}
} else if (isTaskTemplate()) {
List<WorkflowPackage> packages = getProject().getTopLevelUserVisiblePackages();
for (WorkflowPackage pkg : packages) {
List<TaskTemplate> templatesForPkg = pkg.getTaskTemplates();
if (templatesForPkg != null && !templatesForPkg.isEmpty()) {
CTreeComboItem packageItem = new CTreeComboItem(treeCombo, SWT.NONE);
packageItem.setText(pkg.getName());
packageItem.setImage(pkg.getIconImage());
for (TaskTemplate template : templatesForPkg) {
CTreeComboItem templateItem = new CTreeComboItem(packageItem, SWT.NONE);
templateItem.setText(template.getLabel());
templateItem.setImage(template.getIconImage());
}
}
}
} else {
List<WorkflowAsset> assets = getProject().getAssetList(assetTypes);
Map<WorkflowPackage, List<WorkflowAsset>> packageAssets = new TreeMap<>();
for (WorkflowAsset asset : assets) {
List<WorkflowAsset> assetsForPkg = packageAssets.get(asset.getPackage());
if (assetsForPkg == null) {
assetsForPkg = new ArrayList<>();
packageAssets.put(asset.getPackage(), assetsForPkg);
}
assetsForPkg.add(asset);
}
for (Map.Entry<WorkflowPackage, List<WorkflowAsset>> pkgAssets : packageAssets.entrySet()) {
CTreeComboItem packageItem = new CTreeComboItem(treeCombo, SWT.NONE);
packageItem.setText(pkgAssets.getKey().getName());
packageItem.setImage(pkgAssets.getKey().getIconImage());
List<WorkflowAsset> assetsForPkg = pkgAssets.getValue();
Collections.sort(assetsForPkg, comparator);
for (WorkflowAsset assetForPkg : assetsForPkg) {
CTreeComboItem assetItem = new CTreeComboItem(packageItem, SWT.NONE);
assetItem.setText(assetForPkg.getLabel());
assetItem.setImage(assetForPkg.getIconImage());
}
}
}
}
use of com.centurylink.mdw.plugin.designer.model.WorkflowPackage in project mdw-designer by CenturyLinkCloud.
the class WorkflowAssetEditor method render.
@Override
public void render(Composite parent) {
label = new Label(parent, SWT.NONE);
label.setText(attributeLabel + ":");
treeCombo = new CTreeCombo(parent, SWT.BORDER | SWT.FULL_SELECTION);
GridData gd = new GridData(GridData.BEGINNING);
gd.widthHint = comboWidth;
gd.heightHint = 16;
treeCombo.setLayoutData(gd);
fillTreeCombo();
treeCombo.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
CTreeComboItem[] selItems = treeCombo.getSelection();
if (selItems.length == 1) {
CTreeComboItem selItem = selItems[0];
if (selItem.getParentItem() == null) {
// ignore package selection
treeCombo.setSelection(new CTreeComboItem[0]);
} else {
try {
Thread.sleep(200);
} catch (InterruptedException ex) {
}
// ** set asset
WorkflowPackage pkg = getProject().getPackage(selItem.getParentItem().getText());
if (pkg == null) {
workflowAsset = null;
} else {
AssetLocator assetLocator = new AssetLocator(getElement(), getLocatorType());
workflowAsset = assetLocator.getAssetVersion(selItem.getText(), pkg);
}
link.setText(getLinkLabel());
fireValueChanged(new AssetLocator(getElement(), getLocatorType()).attrFromAsset(workflowAsset));
// selecting the asset also selects the version
updateVersionAttribute(workflowAsset);
treeCombo.dropDown(false);
}
}
}
});
treeCombo.addListener(SWT.Modify, new Listener() {
public void handleEvent(Event event) {
if (treeCombo.getSelection().length == 0 && !suppressFire) {
// triggered when something was typed in the combo
// instead of selecting -- use it verbatim
// note: also triggered on selection, but immediately
// followed by SWT.Selection event, so no harm done
// ** set asset
workflowAsset = null;
link.setText("");
AssetVersionSpec versionSpec = AssetVersionSpec.parse(treeCombo.getText().trim());
String oldName = getElement().getAttribute(attributeName);
String newName = versionSpec.getName();
boolean nameChanged = oldName == null ? newName != null && newName.length() > 0 : !oldName.equals(newName);
if (nameChanged)
fireValueChanged(newName);
String oldVer = readVersionAttribute();
String newVer = "".equals(newName) ? "" : versionSpec.getVersion();
boolean verChanged = oldVer == null ? newVer != null && newVer.length() > 0 : !oldVer.equals(newVer);
if (verChanged)
updateVersionAttribute(newVer);
}
}
});
link = new Link(parent, SWT.SINGLE);
gd = new GridData(GridData.BEGINNING);
gd.widthHint = 75;
link.setLayoutData(gd);
link.setText(getLinkLabel());
link.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (workflowAsset == null) {
workflowAsset = createWorkflowAsset();
fillTreeCombo();
if (workflowAsset != null) {
treeCombo.setText(workflowAsset.getName());
fireValueChanged(new AssetLocator(getElement(), getLocatorType()).attrFromAsset(workflowAsset));
updateVersionAttribute(workflowAsset);
}
} else {
openWorkflowAsset();
}
}
});
spacer = new Label(parent, SWT.NONE);
}
Aggregations