001: package de.webman.content.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: import com.teamkonzept.webman.mainint.db.queries.*;
009: import com.teamkonzept.webman.mainint.events.*;
010: import com.teamkonzept.lib.*;
011: import com.teamkonzept.field.*;
012: import com.teamkonzept.field.db.*;
013: import com.teamkonzept.db.*;
014: import com.teamkonzept.publishing.markups.*;
015:
016: import java.sql.*;
017: import java.io.*;
018:
019: /**
020: * Anzeigen der Maske zum Neuordnen des Contenttree
021: *
022: *
023: * @author $Author: mischa $
024: * @version $Revision: 1.4 $
025: */
026: public class CEArrangeShowHandler extends DefaultEventHandler implements
027: ParameterTypes, FrameConstants, DatabaseDefaults {
028: private CEArrangeShowHandler() {
029: }
030:
031: private static CEArrangeShowHandler instance = new CEArrangeShowHandler();
032:
033: public static CEArrangeShowHandler getInstance() {
034: return instance;
035: }
036:
037: public void handleEvent(TKEvent evt) throws TKException {
038: try {
039: CEUtils.checkEvent(evt);
040:
041: TKHTMLTemplate t = evt
042: .getPrepHTMLTemplate("ce_arrange.tmpl");
043:
044: TKVector openNodes = new TKVector();
045: if (evt.getParams().hasMultiple(PARAMETER, "OPEN_NODES")) {
046: openNodes = evt.getParams().getVector(PARAMETER,
047: "OPEN_NODES");
048: } else {
049: openNodes.put(0, evt.getParameter(PARAMETER,
050: "OPEN_NODES"));
051: }
052:
053: TKQuery q;
054: TKDBResult tree = null;
055: TKDBResult branch;
056: int size = openNodes.size();
057: for (int i = 0; i < size; i++) {
058: String id = (String) openNodes.get(i);
059: if (id != null) {
060: q = TKDBManager
061: .newQuery(TKDBContentTreeGetOpen.class);
062: if (id.equals("-1")) {
063: q.setQueryParams("NODE_ID", TKNull.NULL);
064: } else {
065: q.setQueryParams("NODE_ID", new Integer(id));
066: }
067: q.execute();
068: branch = new TKDBResult(q.fetchResultSet());
069: if (tree != null) {
070: tree = TreeUtils.mergeIntoTree(tree, branch,
071: "CONTENT_NODE_ID");
072: } else {
073: tree = branch;
074: }
075: }
076: }
077:
078: // die liste der offenen nodes kommt ins template
079: TKStandardIterator iterator1 = new TKStandardIterator(
080: openNodes, t.getListIterator(), "OPEN_NODES",
081: "OPEN_NODES");
082: t.setListIterator(iterator1);
083:
084: int maxDepth = TreeUtils.getMaxDepth(tree, "CONTENT");
085: TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator(
086: tree, t.getListIterator(), "CE_NODE_LIST", maxDepth);
087: t.set("IS_TOP", "1");
088:
089: t.setListIterator(iterator);
090:
091: t.set("MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth + 2));
092: t.set("MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth + 2));
093: evt.finishTemplate(t);
094: } catch (Throwable e) {
095: // TO DO : Analyze Exception !
096: throw WebmanExceptionHandler.getException(e);
097: }
098: }
099:
100: public boolean isHandler(TKEvent evt) {
101: return evt.getName().equalsIgnoreCase("CE_ARRANGE_SHOW");
102: }
103:
104: }
|