KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > sitetree > eventhandler > STArrangeOpenDirHandler


1 package de.webman.sitetree.eventhandler;
2
3 import com.teamkonzept.web.*;
4 import com.teamkonzept.webman.*;
5 import com.teamkonzept.webman.db.TKWebmanDBManager;
6 import com.teamkonzept.webman.mainint.*;
7 import com.teamkonzept.webman.mainint.db.*;
8
9
10 import com.teamkonzept.webman.mainint.db.queries.*;
11 import com.teamkonzept.webman.mainint.events.*;
12 import com.teamkonzept.lib.*;
13 import com.teamkonzept.field.*;
14 import com.teamkonzept.field.db.*;
15 import com.teamkonzept.db.*;
16 import com.teamkonzept.publishing.markups.*;
17
18 import java.sql.*;
19 import java.io.*;
20 import java.util.*;
21
22 /**
23 * Oeffnen eines Dirs im Sitetree
24 *
25  * @author $Author: mischa $
26  * @version $Revision: 1.4 $
27 */

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