01: package org.enhydra.shark.swingclient.workflowadmin.monitoring.actions;
02:
03: import java.awt.event.ActionEvent;
04: import java.util.ArrayList;
05: import java.util.Arrays;
06: import java.util.List;
07:
08: import javax.swing.JOptionPane;
09: import javax.transaction.Status;
10: import javax.transaction.UserTransaction;
11:
12: import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle;
13: import org.enhydra.shark.api.client.wfservice.WMEntity;
14: import org.enhydra.shark.client.utilities.SharkInterfaceWrapper;
15: import org.enhydra.shark.swingclient.ActionBase;
16: import org.enhydra.shark.swingclient.SharkClient;
17: import org.enhydra.shark.swingclient.workflowadmin.EngineTreeNode;
18: import org.enhydra.shark.swingclient.workflowadmin.monitoring.ManageActivities;
19: import org.enhydra.shark.swingclient.workflowadmin.monitoring.ProcessMonitor;
20: import org.enhydra.shark.utilities.WMEntityUtilities;
21:
22: /**
23: * Enters dialog for activity management for selected process.
24: *
25: * @author Sasa Bojanic
26: * @version 1.0
27: */
28: public class ActivityManagement extends ActionBase {
29:
30: public ActivityManagement(ProcessMonitor pm) {
31: super (pm);
32: }
33:
34: public void actionPerformed(ActionEvent e) {
35: ProcessMonitor pm = (ProcessMonitor) actionPanel;
36:
37: EngineTreeNode dmtn = pm.getSelectedNode();
38: String procId = null;
39: if (dmtn != null
40: && dmtn.getType() == EngineTreeNode.TYPE_PROCESSINSTANCE) {
41: procId = pm.getSelectedNode().getId();
42: }
43: if (procId != null) {
44: List allActs = new ArrayList();
45:
46: UserTransaction ut = null;
47:
48: try {
49: ut = SharkInterfaceWrapper.getUserTransaction();
50: ut.begin();
51:
52: WMSessionHandle shandle = SharkClient
53: .getSessionHandle();
54: WMEntity ent = SharkInterfaceWrapper.getShark()
55: .getAdminMisc().getProcessDefinitionInfo(
56: shandle, procId);
57:
58: allActs.addAll(Arrays.asList(WMEntityUtilities
59: .getOverallActivities(shandle,
60: SharkInterfaceWrapper.getShark()
61: .getXPDLBrowser(), ent)));
62:
63: ManageActivities mad = new ManageActivities(pm, procId,
64: allActs);
65: ut.commit();
66: mad.showDialog();
67:
68: } catch (Exception ex) {
69: ex.printStackTrace();
70: try {
71: if (ut.getStatus() != Status.STATUS_NO_TRANSACTION) {
72: ut.rollback();
73: }
74: } catch (Exception _) {
75: }
76: JOptionPane.showMessageDialog(pm.getWindow(), ex
77: .getMessage(), SharkClient.getAppTitle(),
78: JOptionPane.ERROR_MESSAGE);
79: }
80: } else {
81: System.err.println("Process is not selected");
82: }
83: }
84:
85: }
|