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: /**
023: * Edit der node-params (name, shortname, pg_content_node, pg_content_selection)
024: * zu einem SITE_TREE_NODE
025: *
026: * Reihenfolge der params im string
027: * <TK_SITE_NODE_ID>,<TK_SITE_NODE_TYPE>,<TK_PG_CONTENT_NODE>,
028: * <TK_SELECTION_TYPE>,<TK_SITE_NODE_SHORTNAME>,<TK_SITE_NODE_NAME>
029: *
030: */
031: public class STEditNodeHandler extends DefaultEventHandler implements
032: ParameterTypes, FrameConstants, DatabaseDefaults {
033: private STEditNodeHandler() {
034: }
035:
036: private static STEditNodeHandler instance = new STEditNodeHandler();
037:
038: public static STEditNodeHandler 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 str = evt.getParameter(PARAMETER, "ST_EDIT_NODE");
047: int lastPos = 0;
048: int nextPos;
049:
050: nextPos = str.indexOf(',', lastPos);
051: String sNodeId = str.substring(lastPos, nextPos);
052: lastPos = nextPos + 1;
053:
054: nextPos = str.indexOf(',', lastPos);
055: String sNodeType = str.substring(lastPos, nextPos);
056: lastPos = nextPos + 1;
057:
058: nextPos = str.indexOf(',', lastPos);
059: String pgcNode = str.substring(lastPos, nextPos);
060: lastPos = nextPos + 1;
061:
062: nextPos = str.indexOf(',', lastPos);
063: String pgSelType = str.substring(lastPos, nextPos);
064: lastPos = nextPos + 1;
065:
066: nextPos = str.indexOf(',', lastPos);
067: String pgSelId = str.substring(lastPos, nextPos);
068: lastPos = nextPos + 1;
069:
070: nextPos = str.indexOf(',', lastPos);
071: String sNodeShortName = str.substring(lastPos, nextPos);
072: lastPos = nextPos + 1;
073:
074: String sName = str.substring(lastPos);
075:
076: TKHTMLTemplate t = evt
077: .getPrepHTMLTemplate("st_editNode.tmpl");
078: SiteTreeUtils.prepareNodeParams(t, sNodeType);
079:
080: if (!pgSelId.equals("")) {
081: TKQuery q = TKDBManager
082: .newQuery(TKDBContentSelectionGet.class);
083: q.setQueryParams("SELECTION_ID", new Integer(pgSelId));
084: q.execute();
085: ResultSet rs = q.fetchResultSet();
086: if (rs.next()) {
087: pgSelType = rs.getString("SELECTION_TYPE");
088: }
089: }
090: TreeUtils.keepOpenNodes(evt, t);
091: t.set("SITE_NODE_ID", sNodeId);
092: t.set("SITE_NODE_TYPE", sNodeType);
093: t.set("SITE_NODE_SHORTNAME", sNodeShortName);
094: t.set("SITE_NODE_NAME", sName);
095: t.set("SELECTION_ID", pgSelId);
096: t.set("THE_CONTENT_NODE_ID", pgcNode);
097: t.set("THE_SELECTION_TYPE", pgSelType);
098:
099: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
100: SITE_TREE);
101: evt.finishTemplate(t);
102: } catch (Throwable e) {
103: // TO DO : Analyze Exception !
104: throw WebmanExceptionHandler.getException(e);
105: }
106: }
107:
108: public boolean isHandler(TKEvent evt) {
109: return evt.getName().equalsIgnoreCase("ST_EDIT_NODE");
110: }
111: }
|