KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > sitetree > eventhandler > STEditStructureDocHandler


1 package de.webman.sitetree.eventhandler;
2
3 import java.sql.ResultSet JavaDoc;
4 import com.teamkonzept.web.*;
5 import com.teamkonzept.webman.*;
6 import com.teamkonzept.webman.db.TKWebmanDBManager;
7 import com.teamkonzept.webman.mainint.*;
8 import com.teamkonzept.webman.mainint.db.*;
9 import com.teamkonzept.webman.mainint.db.queries.*;
10 import com.teamkonzept.webman.mainint.events.*;
11 import com.teamkonzept.lib.*;
12 import com.teamkonzept.field.*;
13 import com.teamkonzept.field.db.*;
14 import com.teamkonzept.db.*;
15 import de.webman.sitetree.eventhandler.SiteTreeUtils;
16
17 /**
18  * Prepares an existing site structure document for editing.
19  *
20  * @author $Author: uli $
21  * @version $Revision: 1.9 $
22  */

23 public class STEditStructureDocHandler
24     extends DefaultEventHandler
25     implements ParameterTypes,
26                FrameConstants,
27                DatabaseDefaults
28 {
29
30     /**
31      * The singleton instance.
32      */

33     private static final STEditStructureDocHandler INSTANCE = new STEditStructureDocHandler();
34
35     /**
36      * Avoids outside intstantiation.
37      */

38     private STEditStructureDocHandler ()
39     {
40         // NOP
41
}
42
43     /**
44      * Returns the singleton instance.
45      *
46      * @return the singleton instance.
47      */

48     public static STEditStructureDocHandler getInstance ()
49     {
50         return INSTANCE;
51     }
52
53     /**
54      * Handles the specified event.
55      *
56      * @param event the event to be handled.
57      * @throws TKException if any error occurred during event handling.
58      */

59     public void handleEvent (TKEvent event)
60         throws TKException
61     {
62         try
63         {
64             WebManEvent.checkEvent(event.getRemoteUser(), event.getName(), ContextConstants.SITE_TREE);
65
66             Integer JavaDoc siteId = new Integer JavaDoc(event.getParameter(PARAMETER, "SITE_NODE_ID"));
67             Integer JavaDoc formId = new Integer JavaDoc(event.getParameter(PARAMETER, "FORM_ID"));
68             Integer JavaDoc contentId = null;
69
70             String JavaDoc content = event.getParameter(PARAMETER, "CONTENT_ID");
71
72             if (content == null || content.length() == 0)
73             {
74                 TKQuery query = TKDBManager.newQuery(TKDBStructContentGetContentID.class);
75                 query.setQueryParams("SITE_NODE_ID", siteId);
76                 query.setQueryParams("FORM_ID", formId);
77                 query.execute();
78
79                 ResultSet JavaDoc result = query.fetchResultSet();
80
81                 if (result.next())
82                 {
83                     contentId = new Integer JavaDoc(result.getInt("CONTENT_ID"));
84                 }
85             }
86             else
87             {
88                 contentId = new Integer JavaDoc(content);
89             }
90
91             TKHTMLTemplate t = event.getPrepHTMLTemplate("st_fields.tmpl");
92             TKFormDBData data = new TKFormDBData(formId.intValue(), STRUCTURE_FORM_TYPE);
93             TKFormDBInterface.Get(data);
94             TKBaseField field = TKFieldRegistry.getFieldFromDB(data);
95             TKContentDBData conDB = new TKContentDBData();
96             conDB.content_id = contentId.intValue();
97             TKContentDBInterface.Get(conDB);
98             Object JavaDoc contentData = field.getDataFromDB(conDB);
99             field.fillIntoTemplate(t, contentData, "");
100             t.set("FORM_ID", formId);
101             t.set("CONTENT_ID", contentId);
102             t.set("UPBASE", SiteTreeUtils.getCurrentPath(siteId));
103             SiteTreeUtils.keepSTContext(event, t);
104             WebManEvent.fillEventsIntoTemplate(event.getRemoteUser(), t, SITE_TREE);
105             event.finishTemplate(t);
106         }
107         catch (Throwable JavaDoc e)
108         {
109             // TO DO : Analyze Exception !
110
throw WebmanExceptionHandler.getException(e);
111         }
112     }
113
114     /**
115      * Checks wether this handler is capable to handle the specified event.
116      *
117      * @param event the event to be handled.
118      * @return <CODE>true</CODE> if this handler is capable to handle the
119      * specified event, otherwise <CODE>false</CODE>.
120      */

121     public boolean isHandler (TKEvent event)
122     {
123         return event.getName().equalsIgnoreCase("ST_EDIT_STRUC_DOC");
124     }
125
126 }
127
Popular Tags