use of com.centurylink.mdw.model.value.task.TaskInstanceVO 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.model.value.task.TaskInstanceVO in project mdw-designer by CenturyLinkCloud.
the class WorkflowProcess method getSubTaskInstances.
public List<TaskInstanceVO> getSubTaskInstances(Long activityId) {
List<TaskInstanceVO> subTaskInsts = new ArrayList<>();
List<TaskInstanceVO> allTaskInsts = getTaskInstances(activityId);
if (allTaskInsts != null) {
for (TaskInstanceVO taskInstance : allTaskInsts) {
if (taskInstance.isSubTask())
subTaskInsts.add(taskInstance);
}
}
return subTaskInsts;
}
use of com.centurylink.mdw.model.value.task.TaskInstanceVO in project mdw-designer by CenturyLinkCloud.
the class WorkflowProcess method getMainTaskInstances.
public List<TaskInstanceVO> getMainTaskInstances(Long activityId) {
List<TaskInstanceVO> mainTaskInsts = new ArrayList<>();
List<TaskInstanceVO> allTaskInsts = getTaskInstances(activityId);
if (allTaskInsts != null) {
for (TaskInstanceVO taskInstance : allTaskInsts) {
if (!taskInstance.isSubTask())
mainTaskInsts.add(taskInstance);
}
}
return mainTaskInsts;
}
use of com.centurylink.mdw.model.value.task.TaskInstanceVO in project mdw-designer by CenturyLinkCloud.
the class DesignerProxy method getSubProcessInstances.
public List<ProcessInstanceVO> getSubProcessInstances(WorkflowProcess parentProcess, Activity activity) {
try {
Long parentProcessInstanceId = parentProcess.getProcessInstance().getId();
if (activity.isHeterogeneousSubProcInvoke()) {
List<ProcessInstanceVO> insts = new ArrayList<>();
String procMapStr = activity.getAttribute(WorkAttributeConstant.PROCESS_MAP);
if (procMapStr != null && !procMapStr.isEmpty()) {
List<String[]> procMap = StringHelper.parseTable(procMapStr, ',', ';', 3);
for (String[] row : procMap) {
ProcessVO subProcessVO = new ProcessVO();
AssetVersionSpec spec = new AssetVersionSpec(row[1], row[2] == null ? "0" : row[2]);
AssetLocator locator = new AssetLocator(activity, AssetLocator.Type.PROCESS);
WorkflowProcess found = locator.getProcessVersion(spec);
if (found != null) {
subProcessVO.setProcessId(found.getId());
subProcessVO.setProcessName(found.getName());
insts.addAll(dataAccess.getDesignerDataAccess().getChildProcessInstance(parentProcessInstanceId, subProcessVO, parentProcess.getProcessVO()));
} else {
PluginMessages.log(new Exception("SubProcess not found: " + row[1] + " v" + row[2]));
}
}
}
return insts;
} else if (activity.isManualTask()) {
List<ProcessInstanceVO> insts = new ArrayList<>();
String procMapStr = activity.getAttribute(TaskAttributeConstant.SERVICE_PROCESSES);
if (procMapStr != null && !procMapStr.isEmpty()) {
Map<String, String> pMap = new HashMap<>();
pMap.put("owner", OwnerType.TASK_INSTANCE);
StringBuilder sb = new StringBuilder();
sb.append("(");
if (activity.getTaskInstances() != null) {
for (TaskInstanceVO taskInst : activity.getTaskInstances()) {
if (sb.length() > 1)
sb.append(",");
sb.append(taskInst.getTaskInstanceId().toString());
}
}
sb.append(")");
pMap.put("ownerIdList", sb.toString());
insts = dataAccess.getDesignerDataAccess().getProcessInstanceList(pMap, 0, QueryRequest.ALL_ROWS, parentProcess.getProcessVO(), null).getItems();
}
return insts;
} else {
ProcessVO subProcessVO = new ProcessVO();
String subProcName = activity.getAttribute(WorkAttributeConstant.PROCESS_NAME);
String subProcVer = activity.getAttribute(WorkAttributeConstant.PROCESS_VERSION);
AssetVersionSpec spec = new AssetVersionSpec(subProcName, subProcVer == null ? "0" : subProcVer);
AssetLocator locator = new AssetLocator(activity, AssetLocator.Type.PROCESS);
WorkflowProcess subProc = locator.getProcessVersion(spec);
subProcessVO.setProcessId((subProc == null || subProc.getId() == null) ? 0L : subProc.getId());
subProcessVO.setProcessName(activity.getAttribute(WorkAttributeConstant.PROCESS_NAME));
// handle alias subprocs
String subprocAliasProcessId = activity.getAttribute(WorkAttributeConstant.ALIAS_PROCESS_ID);
if (subprocAliasProcessId != null)
subProcessVO = this.getProcessVO(new Long(subprocAliasProcessId));
return dataAccess.getDesignerDataAccess().getChildProcessInstance(parentProcessInstanceId, subProcessVO, parentProcess.getProcessVO());
}
} catch (Exception ex) {
PluginMessages.uiError(ex, "Load SubProcess Instances (P=" + parentProcess.getId() + ",A=" + activity.getId() + ")", project);
return Collections.emptyList();
}
}
use of com.centurylink.mdw.model.value.task.TaskInstanceVO in project mdw-designer by CenturyLinkCloud.
the class TaskInstancesSection method drawWidgets.
public void drawWidgets(Composite composite, WorkflowElement selection) {
activity = (Activity) selection;
tableEditor = new TableEditor(activity, TableEditor.TYPE_TABLE);
tableEditor.setReadOnly(true);
tableEditor.setColumnSpecs(getColumnSpecs());
if (contentProvider == null)
contentProvider = getContentProvider();
tableEditor.setContentProvider(contentProvider);
if (labelProvider == null)
labelProvider = getLabelProvider();
tableEditor.setLabelProvider(labelProvider);
tableEditor.render(composite);
// double-click
tableEditor.addValueChangeListener(new ValueChangeListener() {
public void propertyValueChanged(Object newValue) {
openTaskInstance((TaskInstanceVO) newValue);
}
});
// right-click menu
tableEditor.getTable().addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event event) {
tableEditor.getTable().setMenu(createContextMenu(getShell()));
}
});
}
Aggregations