1 package de.webman.content.eventhandler; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.webman.*; 5 import com.teamkonzept.webman.mainint.*; 6 import de.webman.content.workflow.db.VersionStatusTransitionDBData; 7 import com.teamkonzept.webman.mainint.db.queries.*; 8 import com.teamkonzept.webman.mainint.events.*; 9 import com.teamkonzept.lib.*; 10 import com.teamkonzept.field.*; 11 import com.teamkonzept.field.db.*; 12 import com.teamkonzept.db.*; 13 import de.webman.content.workflow.*; 14 import de.webman.content.*; 15 import java.sql.*; 16 import de.webman.util.legacy.Legacy; 17 18 24 public class CESwitchGroupContentHandler extends DefaultEventHandler implements DatabaseDefaults, ParameterTypes, FrameConstants 25 { 26 27 private CESwitchGroupContentHandler() 28 {} 29 30 31 private static CESwitchGroupContentHandler instance = new CESwitchGroupContentHandler(); 32 33 public static CESwitchGroupContentHandler getInstance() 34 { 35 return instance; 36 } 37 38 public void handleEvent(TKEvent evt) throws TKException 39 { 40 try 41 { 42 CEUtils.checkEvent(evt); 43 String newStatus = ""; 44 if (evt.getName().startsWith("CE_SWITCH_EVENT")) 45 { 46 int idx = evt.getName().lastIndexOf("_"); 47 newStatus= evt.getName().substring(idx+1, evt.getName().length()); 48 } 49 else 50 newStatus = evt.getParameter("NEW_STATUS",evt.getName()); 51 52 VersionStatics statics = VersionStatics.getStatics(); 53 Integer newStatusInt = new Integer (newStatus); 54 VersionStatus neuerStatus = (VersionStatus)statics.getStatusPool().get(newStatusInt); 55 56 if (neuerStatus.newVersion) 57 { 58 evt.getParams().put(PARAMETER, "TO_STATUS_ID", newStatus); 60 CEEditHandler.getInstance().handleEvent(evt); 61 return; 62 } 63 String contentNodeID = evt.getParameter(PARAMETER, "CONTENT_NODE_ID"); 64 String parent_Type = evt.getParameter(PARAMETER, "PARENT_TYPE"); 65 String subtree = evt.getParameter("SUBTREE",evt.getName()); 66 String contentNodeType = evt.getParameter(PARAMETER, "CONTENT_NODE_TYPE"); 67 68 if (parent_Type != null && parent_Type.equals(GROUP)) 70 contentNodeType = parent_Type; 71 72 Content content = ContentFactory.getInstance().getContent(new Integer (contentNodeID)); 73 content.switchToStatus(newStatusInt, evt.getRemoteUser()); 74 if (neuerStatus.delete) 76 { 77 evt.getParams().put(PARAMETER, "CHECKED", "a"); 79 evt.getParams().put(PARAMETER, "CONTENT_NODE_TYPE", "3"); 80 CENodeDeleteHandler.getInstance().handleEvent(evt); 81 } 82 else 83 { 84 if (subtree != null) 85 evt.getParams().put(PARAMETER, "EVT_SUBTREE", "a"); 86 evt.getParams().put(PARAMETER, "RECALCULATE", "a"); 87 CEBrowseHandler.getInstance().handleEvent(evt); 89 } 90 } 91 catch (Throwable e) 92 { 93 throw WebmanExceptionHandler.getException(e); 95 } 96 } 97 98 public boolean isHandler(TKEvent evt) 99 { 100 return 101 (evt.getName().equalsIgnoreCase("CE_SWITCH_GROUP_CONTENT_STATUS"))|| 102 (evt.getName().startsWith("CE_SWITCH_EVENT")); 103 } 104 } 105 | Popular Tags |