KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > content > eventhandler > CESwitchGroupContentHandler


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 /**
19 * Ändern der Version eines Contents
20 *
21  * @author $Author: alex $
22  * @version $Revision: 1.7 $
23 */

24 public class CESwitchGroupContentHandler extends DefaultEventHandler implements DatabaseDefaults, ParameterTypes, FrameConstants
25 {
26     /** Konstruktor private - Singleton !*/
27     private CESwitchGroupContentHandler()
28     {}
29
30     /** Singleton Instanz */
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 JavaDoc 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 JavaDoc newStatusInt = new Integer JavaDoc(newStatus);
54             VersionStatus neuerStatus = (VersionStatus)statics.getStatusPool().get(newStatusInt);
55             
56             if (neuerStatus.newVersion)
57             {
58                 // neuer Content wird angelegt -> zum Bearbeiten springen
59
evt.getParams().put(PARAMETER, "TO_STATUS_ID", newStatus);
60                 CEEditHandler.getInstance().handleEvent(evt);
61                 return;
62             }
63             String JavaDoc contentNodeID = evt.getParameter(PARAMETER, "CONTENT_NODE_ID");
64             String JavaDoc parent_Type = evt.getParameter(PARAMETER, "PARENT_TYPE");
65             String JavaDoc subtree = evt.getParameter("SUBTREE",evt.getName());
66             String JavaDoc contentNodeType = evt.getParameter(PARAMETER, "CONTENT_NODE_TYPE");
67             
68             // hier jetzt testen, ob diese Transition erlaubt ist !
69
if (parent_Type != null && parent_Type.equals(GROUP))
70                 contentNodeType = parent_Type;
71             
72             Content content = ContentFactory.getInstance().getContent(new Integer JavaDoc(contentNodeID));
73             content.switchToStatus(newStatusInt, evt.getRemoteUser());
74             // muss dieser Content jetzt geloescht werden ???
75
if (neuerStatus.delete)
76             {
77                 // dieser Content wird jetzt aus der DB entfernt
78
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                 // Neuaufbau der Seite
88
CEBrowseHandler.getInstance().handleEvent(evt);
89             }
90         }
91         catch (Throwable JavaDoc e)
92         {
93             // TO DO : Analyze Exception !
94
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