KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > content > eventhandler > CEArrangeOpenDirHandler


1 package de.webman.content.eventhandler;
2
3 import com.teamkonzept.web.*;
4 import com.teamkonzept.webman.*;
5 import com.teamkonzept.webman.mainint.*;
6 import com.teamkonzept.webman.mainint.db.*;
7 import com.teamkonzept.webman.mainint.db.queries.*;
8 import com.teamkonzept.webman.mainint.events.*;
9 import com.teamkonzept.lib.*;
10 import com.teamkonzept.field.*;
11 import com.teamkonzept.field.db.*;
12 import com.teamkonzept.db.*;
13
14 import java.sql.*;
15
16 /**
17 * Oeffnen eines Dirs im Contenttree
18 *
19  * @author $Author: mischa $
20  * @version $Revision: 1.4 $
21 */

22 public class CEArrangeOpenDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
23 {
24     private CEArrangeOpenDirHandler()
25     {}
26     
27     private static CEArrangeOpenDirHandler instance = new CEArrangeOpenDirHandler();
28     
29     public static CEArrangeOpenDirHandler getInstance()
30     {
31         return instance;
32     }
33     
34     public void handleEvent(TKEvent evt) throws TKException
35     {
36         try
37         {
38             CEUtils.checkEvent(evt);
39             
40             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "ce_arrange.tmpl" );
41             String JavaDoc dest = evt.getParameter( PARAMETER, "CONTENT_NODE_ID" );
42             String JavaDoc openNodeId = evt.getParameter( PARAMETER, "NODE_ID" );
43             String JavaDoc closeNodeId = evt.getParameter( PARAMETER, "CONTENT_NODE_PARENT" );
44
45             TKVector openNodes = new TKVector();
46             if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) {
47                 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" );
48             }
49             else {
50                 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) );
51             }
52             openNodes = TreeUtils.updateOpenNodes( openNodes, openNodeId, closeNodeId, dest, TKDBContentTreeIsChild.class );
53
54             TKDBResult tree = null;
55             TKDBResult branch;
56             TKQuery q;
57             int size = openNodes.size();
58             for( int i = 0; i<size ; i++ ) {
59                 String JavaDoc id = (String JavaDoc) openNodes.get( i );
60                 if( id!=null ) {
61                     q = TKDBManager.newQuery(TKDBContentTreeGetOpen.class);
62                     if( id.equals( "-1" ) ) {
63                         q.setQueryParams( "NODE_ID", TKNull.NULL );
64                     }
65                     else {
66                         q.setQueryParams( "NODE_ID", new Integer JavaDoc(id) );
67                     }
68                     q.execute();
69                     branch = new TKDBResult( q.fetchResultSet() );
70                     if( tree != null ) {
71                         tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" );
72                     }
73                     else {
74                         tree = branch;
75                     }
76                 }
77             }
78
79             // die liste der jetzt offenen nodes kommt ins template
80
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "OPEN_NODES", "OPEN_NODES" );
81             t.setListIterator( iterator1 );
82
83             int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" );
84             TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator( tree, t.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth );
85             t.setListIterator( iterator );
86             t.set( "MAXDEPTH_PLUS_ONE", Integer.toString( maxDepth+1 ));
87             t.set( "MAXDEPTH_PLUS_TWO", Integer.toString( maxDepth+2 ));
88             evt.finishTemplate(t);
89         }
90         catch (Throwable JavaDoc e)
91         {
92             // TO DO : Analyze Exception !
93
throw WebmanExceptionHandler.getException(e);
94         }
95     }
96     
97     public boolean isHandler(TKEvent evt)
98     {
99         return evt.getName().equalsIgnoreCase("CE_ARRANGE_OPENDIR");
100     }
101         
102 }
103
Popular Tags