KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > eventhandler > ACRoleDeleteTaskEventHandler


1 package de.webman.acl.eventhandler;
2
3 import java.util.*;
4
5 import com.teamkonzept.web.*;
6 import com.teamkonzept.lib.*;
7 import com.teamkonzept.webman.*;
8 import com.teamkonzept.webman.mainint.*;
9 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 ACRoleDeleteTaskEventHandler extends DefaultEventHandler implements ParameterTypes, DatabaseDefaults, FrameConstants
18 {
19     private ACRoleDeleteTaskEventHandler() {}
20
21     private static ACRoleDeleteTaskEventHandler instance = new ACRoleDeleteTaskEventHandler();
22
23     public static ACRoleDeleteTaskEventHandler getInstance()
24     {
25     return instance;
26     }
27
28     public void handleEvent(TKEvent evt) throws TKException
29     {
30     try {
31         WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.ACCESS_CONTROL);
32
33         String JavaDoc roleId = evt.getParameter( PARAMETER, "ROLE_ID");
34         TKParams params = evt.getParams();
35         if (roleId != null)
36         {
37             Role theRole = null;
38             theRole = RoleFactory.getInstance().getRole(new Integer JavaDoc(roleId));
39             if (theRole != null) {
40                 removeTask(theRole, params, "DEL_TASK_ID");
41             }
42         }
43         TKHTMLTemplate t = evt.getPrepHTMLTemplate( "f_ac_role.tmpl" );
44         HTMLUtils.fillFrameSet( t, LEFT_FRAME_WIDTH, "AC_ROLE_LIST", "AC_ROLE_EDIT" );
45         t.set("ROLE_ID", new Integer JavaDoc(roleId));
46         String JavaDoc editPage = evt.getParameter(PARAMETER, "EDIT_PAGE");
47         t.set("EDIT_PAGE", (editPage == null ? "1" : editPage));
48         evt.finishTemplate( t );
49     } catch (Throwable JavaDoc e) {
50         throw WebmanExceptionHandler.getException(e);
51     }
52     }
53
54     /**
55        returns true if this class handles the event
56     */

57     public boolean isHandler(TKEvent evt)
58     {
59     return evt.getName().equalsIgnoreCase( "AC_ROLE_DELETE_TASK" );
60     }
61
62     /**
63        Convenience Method for removing tasks from a role
64     */

65     private void removeTask(Role role, TKParams params, String JavaDoc parameter) throws Exception JavaDoc
66     {
67         TKVector vec = new TKVector();
68         if ( params.hasMultiple( PARAMETER, parameter ))
69         {
70             vec = params.getVector( PARAMETER, parameter );
71         }
72         else if ( params.get( PARAMETER, parameter ) != null )
73         {
74             vec.addElement( params.get( PARAMETER, parameter ));
75         }
76         Enumeration vecEnum = vec.elements();
77         while (vecEnum.hasMoreElements())
78         {
79             String JavaDoc tId = (String JavaDoc)vecEnum.nextElement();
80             Task task = TaskFactory.getInstance().getTask(new Integer JavaDoc(tId));
81             if (task != null)
82             {
83                 role.removeTask(task);
84                 RoleFactory.getInstance().modifyRole(role);
85             }
86         }
87     }
88
89 }
90
Popular Tags