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: /**
20: * Startevent: Anzeigen der Maske zum Neuordnen des Contenttree
21: *
22: *
23: * @author $Author: mischa $
24: * @version $Revision: 1.4 $
25: */
26: public class CEArrangeStartHandler extends DefaultEventHandler
27: implements ParameterTypes, FrameConstants, DatabaseDefaults {
28: private CEArrangeStartHandler() {
29: }
30:
31: private static CEArrangeStartHandler instance = new CEArrangeStartHandler();
32:
33: public static CEArrangeStartHandler getInstance() {
34: return instance;
35: }
36:
37: public void handleEvent(TKEvent evt) throws TKException {
38: try {
39: CEUtils.checkEvent(evt);
40:
41: TKHTMLTemplate t = evt
42: .getPrepHTMLTemplate("ce_arrange.tmpl");
43:
44: TKVector openNodes = new TKVector();
45: openNodes.put(0, "-1"); // initial bei Root den Baum oeffnen
46: TKStandardIterator iterator1 = new TKStandardIterator(
47: openNodes, t.getListIterator(), "OPEN_NODES",
48: "OPEN_NODES");
49: t.setListIterator(iterator1);
50:
51: TKQuery q = TKDBManager
52: .newQuery(TKDBContentTreeGetOpen.class);
53: q.setQueryParams("NODE_ID", TKNull.NULL);
54: q.execute();
55: TKDBResult tree = new TKDBResult(q.fetchResultSet());
56:
57: int maxDepth = TreeUtils.getMaxDepth(tree, "CONTENT");
58: TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator(
59: tree, t.getListIterator(), "CE_NODE_LIST", maxDepth);
60: t.set("IS_TOP", "1");
61: t.setListIterator(iterator);
62:
63: t.set("MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth + 1));
64: t.set("MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth + 2));
65: evt.finishTemplate(t);
66: } catch (Throwable e) {
67: // TO DO : Analyze Exception !
68: throw WebmanExceptionHandler.getException(e);
69: }
70: }
71:
72: public boolean isHandler(TKEvent evt) {
73: return evt.getName().equalsIgnoreCase("CE_ARRANGE_START");
74: }
75: }
|