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: * neue Seite mit einer Referenz-Presentations-Komponente eines Documents und einer
24: * Auswahlliste (pulldown) mit allen moeglichen zuzuordnenden Nodes aus dem
25: * SiteTree
26: *
27: */
28: public class STEditPresRefFreeComponentHandler extends
29: DefaultEventHandler implements ParameterTypes, FrameConstants,
30: DatabaseDefaults {
31: private STEditPresRefFreeComponentHandler() {
32: }
33:
34: private static STEditPresRefFreeComponentHandler instance = new STEditPresRefFreeComponentHandler();
35:
36: public static STEditPresRefFreeComponentHandler getInstance() {
37: return instance;
38: }
39:
40: public void handleEvent(TKEvent evt) throws TKException {
41: try {
42: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
43: ContextConstants.SITE_TREE);
44: String refType = evt.getParameter(PARAMETER,
45: "REFERENCE_TYPE");
46: String intType = evt.getParameter(PARAMETER,
47: "INTEGRATION_TYPE");
48: String siteNodeId = evt.getParameter(PARAMETER,
49: "SITE_NODE_ID");
50: TKHTMLTemplate t = evt
51: .getPrepHTMLTemplate("st_editRefComp.tmpl");
52: TKQuery q;
53: if (refType.equals("1")) { // absolute wodka referenz
54: q = TKDBManager.newQuery(TKDBSiteTreeGetAll.class);
55: q.execute();
56: } else { // relative referenz
57: q = TKDBManager.newQuery(TKDBSiteTreeGetParents.class);
58: q.setQueryParams("SITE_NODE_ID",
59: new Integer(siteNodeId));
60: q.execute();
61: }
62: ResultSet rs = q.fetchResultSet();
63: TKDBTemplate.prepareListTemplate(rs, t, "ST_SITENODE_LIST");
64:
65: q = TKDBManager.newQuery(TKDBReferenceSelClassGet.class);
66: q.setQueryParams("RESULT_TYPE",
67: intType.equals(GROUP) ? GROUP_INTEGER
68: : SINGLE_INTEGER);
69: q.execute();
70: rs = q.fetchResultSet();
71: TKDBTemplate
72: .prepareListTemplate(rs, t, "ST_SELECTION_LIST");
73:
74: t.set(evt.getParams().getClass(PARAMETER));
75: t.set("UPDATE", evt
76: .getNotNullParameter(PARAMETER, "FILLED"));
77: String selDestNode = (evt.getParameter(PARAMETER,
78: "DEST_SITE_NODE_ID")) == null ? evt.getParameter(
79: PARAMETER, "SITE_NODE_ID") : evt.getParameter(
80: PARAMETER, "DEST_SITE_NODE_ID");
81: t.set("THE_SITE_NODE_ID", selDestNode);
82: t.set("THE_SELECTION_TYPE", evt.getNotNullParameter(
83: PARAMETER, "SELECTION_TYPE"));
84: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
85: SITE_TREE);
86: evt.finishTemplate(t);
87: } catch (Throwable e) {
88: // TO DO : Analyze Exception !
89: throw WebmanExceptionHandler.getException(e);
90: }
91: }
92:
93: public boolean isHandler(TKEvent evt) {
94: return evt.getName().equalsIgnoreCase(
95: "ST_EDIT_PRES_REF_COMPONENT");
96: }
97: }
|