KickJava   Java API By Example, From Geeks To Geeks.

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


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 /**
24 * Anzeigen der Maske zum Neuordnen des Sitetree
25 *
26 *
27 */

28 public class STArrangeShowHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
29 {
30     private STArrangeShowHandler()
31     {}
32     
33     private static STArrangeShowHandler instance = new STArrangeShowHandler();
34     
35     public static STArrangeShowHandler 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
47             TKVector openNodes = new TKVector();
48             if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) {
49                 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" );
50             }
51             else {
52                 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) );
53             }
54
55             TKQuery q;
56             TKDBResult tree = null;
57             TKDBResult branch;
58             int size = openNodes.size();
59             for( int i = 0; i<size ; i++ ) {
60                 String JavaDoc id = (String JavaDoc) openNodes.get( i );
61                 if( id!=null ) {
62                     q = TKDBManager.newQuery(TKDBSiteTreeGetOpen.class);
63                     if( id.equals( "-1" ) ) {
64                         q.setQueryParams( "NODE_ID", TKNull.NULL );
65                     }
66                     else {
67                         q.setQueryParams( "NODE_ID", new Integer JavaDoc(id) );
68                     }
69                     q.execute();
70                     branch = new TKDBResult( q.fetchResultSet() );
71                     if( tree != null ) {
72                         tree = TreeUtils.mergeIntoTree( tree, branch, "SITE_NODE_ID" );
73                     }
74                     else {
75                         tree = branch;
76                     }
77                 }
78             }
79
80             // die liste der offenen nodes kommt ins template
81
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "OPEN_NODES", "OPEN_NODES" );
82             t.setListIterator( iterator1 );
83
84             int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" );
85             TKOpenSiteTreeIterator iterator = new TKOpenSiteTreeIterator( tree, t.getListIterator(), "ST_NODE_LIST", maxDepth );
86             t.set( "IS_TOP", "1" );
87
88             t.setListIterator( iterator );
89
90             t.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+1));
91             t.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
92             evt.finishTemplate(t);
93         }
94         catch (Throwable JavaDoc e)
95         {
96             // TO DO : Analyze Exception !
97
throw WebmanExceptionHandler.getException(e);
98         }
99     }
100     
101     public boolean isHandler(TKEvent evt)
102     {
103         return evt.getName().equalsIgnoreCase("ST_ARRANGE_SHOW");
104     }
105 }
106
Popular Tags