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 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 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 (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 (roleId)); 46 String editPage = evt.getParameter(PARAMETER, "EDIT_PAGE"); 47 t.set("EDIT_PAGE", (editPage == null ? "1" : editPage)); 48 evt.finishTemplate( t ); 49 } catch (Throwable e) { 50 throw WebmanExceptionHandler.getException(e); 51 } 52 } 53 54 57 public boolean isHandler(TKEvent evt) 58 { 59 return evt.getName().equalsIgnoreCase( "AC_ROLE_DELETE_TASK" ); 60 } 61 62 65 private void removeTask(Role role, TKParams params, String parameter) throws Exception 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 tId = (String )vecEnum.nextElement(); 80 Task task = TaskFactory.getInstance().getTask(new Integer (tId)); 81 if (task != null) 82 { 83 role.removeTask(task); 84 RoleFactory.getInstance().modifyRole(role); 85 } 86 } 87 } 88 89 } 90 | Popular Tags |