1
2
3
4
5
6 package net.kwfgrid.gwui.applet;
7
8 import net.kwfgrid.gwui.graphview.*;
9 import net.kwfgrid.gwui.*;
10 import net.kwfgrid.gwui.workflow.*;
11 import net.kwfgrid.gwui.taskframework.*;
12 import net.kwfgrid.gworkflowdl.structure.*;
13
14 import org.glassbox.graphview.*;
15 import org.glassbox.gui.*;
16 import org.glassbox.SwingThread;
17 import org.glassbox.SwingFactory;
18 import org.glassbox.Theme;
19 import org.glassbox.executor.Executor;
20
21 import de.fzi.wim.guibase.graphview.graph.*;
22 import de.fzi.wim.guibase.graphview.lens.*;
23
24 import org.jdom.*;
25 import org.jdom.input.*;
26
27 import javax.swing.*;
28 import java.io.*;
29 import java.net.URL;
30 import java.awt.*;
31 import java.awt.event.MouseEvent;
32 import java.util.*;
33
34 import org.apache.log4j.Logger;
35
36 /***
37 The TaskList Applet.
38 */
39 public class TaskListApplet extends JApplet implements Browser, WorkflowApplet {
40 public static final String IDENTIFIER = "kwfgrid.TaskListApplet";
41
42 private static final Logger logger = Logger.getLogger(TaskListApplet.class);
43
44 private WorkflowAppletGroup _gui;
45 private JLayeredGroup _group;
46
47 public TaskListApplet() {
48 logger.debug("TaskListApplet instantiated.");
49 _gui = null;
50 _group = null;
51 }
52
53 public void init() {
54
55 GWUI.getInstance().setProperty(GWUI.GWES_URI_KEY, getParameter(GWUI.GWES_URI_KEY));
56 GWUI.getInstance().setProperty(GWUI.USER_ID_KEY, getParameter(GWUI.USER_ID_KEY));
57 GWUI.getInstance().setProperty(GWUI.UAA_FRAME_KEY, getParameter(GWUI.UAA_FRAME_KEY));
58 GWUI.getInstance().setProperty(GWUI.UAA_PORTLET_URL_KEY, getParameter(GWUI.UAA_PORTLET_URL_KEY));
59 GWUI.getInstance().setProperty(GWUI.FORM_SELECTION_SERVLET_URL_KEY, getParameter(GWUI.FORM_SELECTION_SERVLET_URL_KEY));
60 GWUI.getInstance().setProperty(GWUI.XSD_PATH, getParameter(GWUI.XSD_PATH));
61 if (getParameter(GWUI.XSD_PATH) != null) System.setProperty(GWUI.XSD_PATH, getParameter(GWUI.XSD_PATH));
62
63
64 _gui = WorkflowAppletGroup.getInstance(this);
65
66 SwingThread.invokeLater(new Runnable() {
67 public void run() {
68 doInit();
69 }
70 });
71 }
72
73 private void doInit() {
74 _group = new JLayeredGroup() {
75 public String getIdentifier() {
76 return TaskListApplet.this.IDENTIFIER;
77 }
78 };
79 _gui.addMember(_group);
80
81 Executor executor = _gui.getExecutor(this);
82 WorkflowStatusMonitor monitor = new WorkflowStatusMonitor();
83 UAA uaa = new UAA(this);
84
85 UserTaskList tasklist = new UserTaskList();
86 InputTaskProducer4WCTRefinementFailed wctinputproducer = new InputTaskProducer4WCTRefinementFailed(executor, uaa, this);
87 InputTaskProducer4Decision decisionproducer = new InputTaskProducer4Decision(executor, uaa, this);
88 tasklist.addUserTaskProducer(wctinputproducer);
89 tasklist.addUserTaskProducer(decisionproducer);
90
91 LayoutLayer bottompane = new LayoutLayer(new BorderLayout(),
92 "kwfgrid.GWUI.transparent-pane",
93 false);
94
95 _group.addLayer(10, bottompane);
96 _group.addMember(tasklist, 10, BorderLayout.CENTER);
97
98 _group.addMember(monitor);
99
100 _group.setProperty(VisibleGroup.VIEWPORT_SIZE_KEY, getContentPane().getSize());
101
102 getContentPane().setLayout(new BorderLayout());
103 getContentPane().add(_group.getView(), BorderLayout.CENTER);
104 getContentPane().validate();
105 getContentPane().repaint();
106
107
108 _gui.getExecutor(this).execute(new Runnable() {
109 public void run() {
110 _gui.setAppletStatus(TaskListApplet.this, Group.RUNNING);
111 _group.setProperty(Group.APPLICATION_STATUS_KEY, Group.RUNNING);
112 }
113 });
114
115 setWorkflowID(getParameter(GWUI.WORKFLOW_ID_KEY));
116 }
117
118
119 public void destroy() {
120 _gui.setAppletStatus(TaskListApplet.this, Group.EXITING);
121 _group.setProperty(Group.APPLICATION_STATUS_KEY, Group.EXITING);
122 }
123
124 public void showDocument(URL url) {
125 getAppletContext().showDocument(url);
126 }
127
128 public void showDocument(URL url, String target) {
129 getAppletContext().showDocument(url, target);
130 }
131
132 public void setWorkflowID(final String workflowid) {
133 _gui.getExecutor(this).execute(new Runnable() {
134 public void run() {
135 logger.debug("Setting workflow ID "+ workflowid);
136 _gui.setWorkflowID("".equals(workflowid) ? null : workflowid);
137 }
138 });
139 }
140 }