KickJava   Java API By Example, From Geeks To Geeks.

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


1 package de.webman.content.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 import com.teamkonzept.webman.mainint.db.queries.*;
9 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 * Anzeigen der Maske zum Neuordnen des Contenttree
21 *
22 *
23  * @author $Author: mischa $
24  * @version $Revision: 1.4 $
25 */

26 public class CEArrangeShowHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
27 {
28     private CEArrangeShowHandler()
29     {}
30     
31     private static CEArrangeShowHandler instance = new CEArrangeShowHandler();
32     
33     public static CEArrangeShowHandler getInstance()
34     {
35         return instance;
36     }
37     
38     public void handleEvent(TKEvent evt) throws TKException
39     {
40         try
41         {
42             CEUtils.checkEvent(evt);
43
44             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "ce_arrange.tmpl" );
45
46             TKVector openNodes = new TKVector();
47             if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) {
48                 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" );
49             }
50             else {
51                 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) );
52             }
53
54             TKQuery q;
55             TKDBResult tree = null;
56             TKDBResult branch;
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 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", maxDepth );
85             t.set( "IS_TOP", "1" );
86
87             t.setListIterator( iterator );
88
89             t.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+2));
90             t.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
91             evt.finishTemplate(t);
92         }
93         catch (Throwable JavaDoc e)
94         {
95             // TO DO : Analyze Exception !
96
throw WebmanExceptionHandler.getException(e);
97         }
98     }
99     
100     public boolean isHandler(TKEvent evt)
101     {
102         return evt.getName().equalsIgnoreCase("CE_ARRANGE_SHOW");
103     }
104         
105 }
106
Popular Tags