01: package de.webman.acl.eventhandler;
02:
03: import java.util.*;
04:
05: import com.teamkonzept.web.*;
06: import com.teamkonzept.lib.*;
07: import com.teamkonzept.webman.*;
08: import com.teamkonzept.webman.mainint.*;
09: import com.teamkonzept.webman.mainint.events.*;
10: import de.webman.acl.*;
11:
12: /**
13: Updates a group definiton in the database
14: * @author $Author: alex $
15: * @version $Revision: 1.3 $
16: */
17: public class ACTaskDeleteActionEventHandler extends DefaultEventHandler
18: implements ParameterTypes, DatabaseDefaults, FrameConstants {
19: private ACTaskDeleteActionEventHandler() {
20: }
21:
22: private static ACTaskDeleteActionEventHandler instance = new ACTaskDeleteActionEventHandler();
23:
24: public static ACTaskDeleteActionEventHandler getInstance() {
25: return instance;
26: }
27:
28: public void handleEvent(TKEvent evt) throws TKException {
29: try {
30: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
31: ContextConstants.ACCESS_CONTROL);
32: String taskId = evt.getParameter(PARAMETER, "TASK_ID");
33: TKParams params = evt.getParams();
34: if (taskId != null) {
35: Task theTask = null;
36: theTask = TaskFactory.getInstance().getTask(
37: new Integer(taskId));
38: if (theTask != null) {
39: removeAction(theTask, params, "DEL_ACTION_ID");
40: }
41: }
42: TKHTMLTemplate t = evt
43: .getPrepHTMLTemplate("f_ac_task.tmpl");
44: HTMLUtils.fillFrameSet(t, LEFT_FRAME_WIDTH, "AC_TASK_LIST",
45: "AC_TASK_EDIT");
46: t.set("TASK_ID", new Integer(taskId));
47: String editPage = evt.getParameter(PARAMETER, "EDIT_PAGE");
48: t.set("EDIT_PAGE", (editPage == null ? "1" : editPage));
49: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
50: ACCESS_CONTROL);
51: evt.finishTemplate(t);
52: } catch (Throwable e) {
53: throw WebmanExceptionHandler.getException(e);
54: }
55: }
56:
57: public boolean isHandler(TKEvent evt) {
58: return evt.getName().equalsIgnoreCase("AC_TASK_DELETE_ACTION");
59: }
60:
61: /**
62: convenience method for adding either users or groups to a profile
63: */
64: private void removeAction(Task task, TKParams params,
65: String parameter) throws Exception {
66: TKVector vec = new TKVector();
67: if (params.hasMultiple(PARAMETER, parameter))
68: vec = params.getVector(PARAMETER, parameter);
69: else if (params.get(PARAMETER, parameter) != null)
70: vec.addElement(params.get(PARAMETER, parameter));
71: Enumeration vecEnum = vec.elements();
72: while (vecEnum.hasMoreElements()) {
73: String lId = (String) vecEnum.nextElement();
74: Action action = ActionFactory.getInstance().getAction(
75: new Integer(lId));
76: if (action != null) {
77: task.removeAction(action);
78: TaskFactory.getInstance().modifyTask(task);
79: }
80: }
81: }
82:
83: }
|