KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > form > eventhandler > CTEditHandler


1 package de.webman.form.eventhandler;
2
3 import com.teamkonzept.web.*;
4 import com.teamkonzept.webman.*;
5 import com.teamkonzept.webman.db.TKWebmanDBManager;
6 import com.teamkonzept.webman.mainint.*;
7 import com.teamkonzept.webman.mainint.db.*;
8 import com.teamkonzept.webman.mainint.db.queries.*;
9 import com.teamkonzept.webman.mainint.events.*;
10 import com.teamkonzept.lib.*;
11 import com.teamkonzept.field.*;
12 import com.teamkonzept.field.db.*;
13 import com.teamkonzept.db.*;
14 import com.teamkonzept.publishing.markups.*;
15 import de.webman.form.Form;
16
17 /**
18  * Prepares an existing form for editing.
19  *
20  * @author $Author: uli $
21  * @version $Revision: 1.4 $
22  */

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

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

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

48     public static CTEditHandler 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             // Check event.
65
WebManEvent.checkEvent(event.getRemoteUser(), event.getName(), ContextConstants.CONTENT_TREE);
66
67             // Get form.
68
Form form = new Form(Integer.valueOf(event.getParameter(PARAMETER, "FORM_ID")));
69
70             // Load legacy form data.
71
TKFormDBData formData = new TKFormDBData(form.getIdentifierAsInt(), form.getTypeAsInt());
72             TKFormDBInterface.Get(formData);
73             String JavaDoc classId = ((TKFieldTableData) formData.field.firstElement()).field_type;
74             Object JavaDoc editData = TKFieldRegistry.getFieldFromDB(formData).toData();
75
76             if (form.isFormFragment())
77             {
78                 TKFieldSwitchData switchFieldData = new TKFieldSwitchData(classId, classId, editData);
79                 TKHashtable groupData = new TKHashtable(1);
80                 groupData.put(TKBaseField.SUB_TYPE_KEY, switchFieldData);
81                 editData = groupData;
82             }
83
84             // Create and fill template.
85
TKHTMLTemplate template = event.getPrepHTMLTemplate("ct_fields.tmpl");
86
87             CTUtils.getStructure(form.getTypeAsInt()).fillIntoTemplate(template, editData, "");
88             CTUtils.keepCTContext(event, template);
89
90             template.set("FORM_TYPE", form.getType());
91             template.set("MODIFY_CONTEXT", "CT");
92             template.set("UPBASE", "/testupload/");
93
94             // Finish event.
95
WebManEvent.fillEventsIntoTemplate(event.getRemoteUser(), template, CONTENT_TREE);
96             event.finishTemplate(template);
97         }
98         catch (Throwable JavaDoc e)
99         {
100             // TO DO : Analyze Exception !
101
throw WebmanExceptionHandler.getException(e);
102         }
103     }
104
105     /**
106      * Checks wether this handler is capable to handle the specified event.
107      *
108      * @param event the event to be handled.
109      * @return <CODE>true</CODE> if this handler is capable to handle the
110      * specified event, otherwise <CODE>false</CODE>.
111      */

112     public boolean isHandler (TKEvent event)
113     {
114         return event.getName().equalsIgnoreCase("CT_EDIT") || event.getName().equalsIgnoreCase("CT_REVERT");
115     }
116
117 }
118
Popular Tags