01: package de.webman.content.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: import com.teamkonzept.webman.mainint.db.queries.*;
09: 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:
16: import java.sql.*;
17: import java.io.*;
18:
19: import de.webman.acl.Policy;
20:
21: /**
22: * @author $Author: alex $
23: * @version $Revision: 1.6 $
24: */
25: public class CEExtModifyDoneHandler extends DefaultEventHandler
26: implements ParameterTypes, FrameConstants, DatabaseDefaults {
27:
28: private CEExtModifyDoneHandler() {
29: }
30:
31: private static CEExtModifyDoneHandler instance = new CEExtModifyDoneHandler();
32:
33: public static CEExtModifyDoneHandler getInstance() {
34: return instance;
35: }
36:
37: public void handleEvent(TKEvent evt) throws TKException {
38: try {
39: CEUtils.checkEvent(evt);
40: TKHTMLTemplate t = evt
41: .getPrepHTMLTemplate("ce_fields.tmpl");
42: ContentContext ceContext = CEUtils.keepCEContext(evt, t);
43:
44: TKFormDBData data = new TKFormDBData(ceContext.formId
45: .intValue());
46: TKFormDBInterface.Get(data);
47: TKBaseField field = TKFieldRegistry.getFieldFromDB(data);
48: TKHashtable fieldContext = new TKHashtable();
49:
50: String action = evt.getParameter(ACTION, "EXT_MODIFY_DONE");
51: String target = evt.getParameter(PARAMETER, "TARGET");
52: TKBaseField extField = field.getTarget(target, "");
53:
54: TKHashtable newParams = extField.finishExtModify(action,
55: evt.getParams().getClass(PARAMETER));
56:
57: Object realData = field.compileData("", newParams,
58: fieldContext);
59:
60: field.fillIntoTemplate(t, realData, "");
61: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
62: ContextConstants.CONTENT_EDIT,
63: Policy.CONTENT_TREE_ID, ceContext.conNodeId);
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("CE_EXT_MODIFY_DONE");
73: }
74: }
|