01: package de.webman.sitetree.eventhandler;
02:
03: import com.teamkonzept.web.*;
04: import com.teamkonzept.webman.*;
05: import com.teamkonzept.webman.db.TKWebmanDBManager;
06: import com.teamkonzept.webman.mainint.*;
07: import com.teamkonzept.webman.mainint.db.*;
08:
09: 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 com.teamkonzept.publishing.markups.*;
16:
17: import java.sql.*;
18: import java.io.*;
19: import java.util.*;
20:
21: /************************************************************************
22: /**
23: * modify-event bei editieren des Formulars (ContentType)
24: *
25: *
26: */
27: public class STModifyHandler extends DefaultEventHandler implements
28: ParameterTypes, FrameConstants, DatabaseDefaults {
29: private STModifyHandler() {
30: }
31:
32: private static STModifyHandler instance = new STModifyHandler();
33:
34: public static STModifyHandler getInstance() {
35: return instance;
36: }
37:
38: public void handleEvent(TKEvent evt) throws TKException {
39: try {
40: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
41: ContextConstants.SITE_TREE);
42: TKHTMLTemplate t = evt
43: .getPrepHTMLTemplate("st_fields.tmpl");
44: int formId = Integer.parseInt(evt.getParameter(PARAMETER,
45: "FORM_ID"));
46: TKFormDBData data = new TKFormDBData(formId,
47: STRUCTURE_FORM_TYPE);
48: TKFormDBInterface.Get(data);
49: TKBaseField field = TKFieldRegistry.getFieldFromDB(data);
50: TKHashtable fieldContext = new TKHashtable();
51:
52: Object realData = field.compileData("", evt.getParams()
53: .getClass(PARAMETER), fieldContext);
54: String action = evt.getParameter(ACTION, "MODIFY");
55: String target = evt.getParameter(TARGET, "MODIFY");
56: t
57: .set("DESTINATION", field.modify(action, target,
58: realData));
59: field.fillIntoTemplate(t, realData, "");
60:
61: SiteTreeUtils.keepSTContext(evt, t);
62: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
63: SITE_TREE);
64: evt.finishTemplate(t);
65: } catch (Throwable e) {
66: // TO DO : Analyze Exception !
67: throw WebmanExceptionHandler.getException(e);
68: }
69: }
70:
71: public boolean isHandler(TKEvent evt) {
72: return evt.getName().equalsIgnoreCase("ST_MODIFY");
73: }
74: }
|