001: package de.webman.sitetree.eventhandler;
002:
003: import com.teamkonzept.web.*;
004: import com.teamkonzept.webman.*;
005: import com.teamkonzept.webman.db.TKWebmanDBManager;
006: import com.teamkonzept.webman.mainint.*;
007: import com.teamkonzept.webman.mainint.db.*;
008:
009: import com.teamkonzept.webman.mainint.db.queries.*;
010: import com.teamkonzept.webman.mainint.events.*;
011: import com.teamkonzept.lib.*;
012: import com.teamkonzept.field.*;
013: import com.teamkonzept.field.db.*;
014: import com.teamkonzept.db.*;
015: import com.teamkonzept.publishing.markups.*;
016:
017: import java.sql.*;
018: import java.io.*;
019: import java.util.*;
020:
021: /**
022: * neue Seite mit einer Presentations-Komponente eines Documents und einer
023: * Auswahlliste (pulldown) mit allen moeglichen zuzuordnenden Contents aus dem
024: * ContentTree
025: *
026: * @author $Author: sebastian $
027: * @version $Revision: 1.4 $
028: */
029: public class STEditPresentationComponentHandler extends
030: DefaultEventHandler implements ParameterTypes, FrameConstants,
031: DatabaseDefaults {
032:
033: private STEditPresentationComponentHandler() {
034: }
035:
036: private static STEditPresentationComponentHandler instance = new STEditPresentationComponentHandler();
037:
038: public static STEditPresentationComponentHandler getInstance() {
039: return instance;
040: }
041:
042: public void handleEvent(TKEvent evt) throws TKException {
043: try {
044: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
045: ContextConstants.SITE_TREE);
046: String sFormId = evt.getParameter(PARAMETER, "FORM_ID");
047: String sIntType = evt.getParameter(PARAMETER,
048: "INTEGRATION_TYPE");
049: String sConNodeId = evt.getNotNullParameter(PARAMETER,
050: "CONTENT_NODE_ID");
051: String sSelType = evt.getNotNullParameter(PARAMETER,
052: "SELECTION_TYPE");
053:
054: TKHTMLTemplate t = evt
055: .getPrepHTMLTemplate("st_editComp.tmpl");
056:
057: // Hier den vollen Pfad rein
058: TKQuery q = TKDBManager
059: .newQuery(TKDBContentTreeGetFormSingle.class);
060: q.setQueryParams("CONTENT_FORM", new Integer(sFormId));
061:
062: q.execute();
063: //ResultSet rs = q.fetchResultSet();
064: //TKDBTemplate.prepareListTemplate( rs, t, "ST_SCON_LIST" ); // single content liste
065: TKDBResult srs = new TKDBResult(q.fetchResultSet());
066:
067: TKContentSelectionIterator iterator = new TKContentSelectionIterator(
068: srs, t.getListIterator(), "ST_SCON_LIST");
069: t.setListIterator(iterator);
070: q.close();
071:
072: // hier auch den vollen Pfad !!
073: q = TKDBManager.newQuery(TKDBContentTreeGetFormType.class);
074: q.setQueryParams("CONTENT_NODE_TYPE", GROUP_INTEGER);
075: q.setQueryParams("CONTENT_FORM", new Integer(sFormId));
076: q.execute();
077: TKDBResult grs = new TKDBResult(q.fetchResultSet());
078: iterator = new TKContentSelectionIterator(grs, t
079: .getListIterator(), "ST_GCON_LIST");
080: t.setListIterator(iterator);
081:
082: //TKDBTemplate.prepareListTemplate( grs, t, "ST_GCON_LIST" ); // group content liste
083:
084: q = TKDBManager.newQuery(TKDBContentSelClassGet.class);
085: q.setQueryParams("RESULT_TYPE", new Integer(sIntType));
086: q.execute();
087: ResultSet rs = q.fetchResultSet();
088: TKDBTemplate.prepareListTemplate(rs, t, "ST_SELTYPE_LIST");
089:
090: String siteNodeType = evt.getParameter(PARAMETER,
091: "SITE_NODE_TYPE");
092: String sAttachSel = "";
093: t.set(evt.getParams().getClass(PARAMETER));
094: if (sIntType.equals(SINGLE)) {
095: if (sSelType.equals("") && sConNodeId.equals("")) { // beide null, -> primary group content initial
096: if (siteNodeType.equals(GROUP)) { // bei groupknoten (sitetree)
097: sAttachSel = "PGC";
098: } else { // bei single knoten (sitetree)
099: sAttachSel = "SC";
100: }
101: } else if (sSelType.equals("")
102: && !sConNodeId.equals("")) {
103: if (SiteTreeUtils.isGroupNode(sConNodeId, grs)) {
104: sAttachSel = "GC";
105: t.set("THE_CONTENT_NODE_ID", sConNodeId);
106: } else {
107: sAttachSel = "SC"; // content node != null und seltype null, -> single content initial
108: t.set("SINGLE_CONTENT_NODE_ID", sConNodeId);
109: }
110: } else {
111: sAttachSel = "GC"; // content node != null und seltype != null, -> group content initial
112: t.set("THE_CONTENT_NODE_ID", sConNodeId);
113: }
114: }
115: t.set("ATTACH_SEL", sAttachSel);
116: t
117: .set("UPDATE", (evt.getParameter(PARAMETER,
118: "FILLED")) == null ? "" : "Yes");
119: t.set("THE_SELECTION_TYPE", sSelType);
120: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
121: SITE_TREE);
122: evt.finishTemplate(t);
123: } catch (Throwable e) {
124: // TO DO : Analyze Exception !
125: throw WebmanExceptionHandler.getException(e);
126: }
127: }
128:
129: public boolean isHandler(TKEvent evt) {
130: return evt.getName().equalsIgnoreCase("ST_EDIT_PRES_COMPONENT");
131: }
132: }
|