KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > eventhandler > ACCENodeListEventHandler


1 package de.webman.acl.eventhandler;
2
3 import com.teamkonzept.web.*;
4 import com.teamkonzept.webman.*;
5 import de.webman.acl.*;
6 import com.teamkonzept.webman.mainint.*;
7 import com.teamkonzept.webman.mainint.db.queries.*;
8 import com.teamkonzept.webman.mainint.events.*;
9 import com.teamkonzept.lib.*;
10 import com.teamkonzept.db.*;
11
12
13 /**
14  * Baut die Liste der Knoten im linken Frame auf
15  * @author $Author: mischa $
16  * @version $Revision: 1.5 $
17 */

18 public class ACCENodeListEventHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants
19 {
20     private ACCENodeListEventHandler()
21     {}
22     
23     private static ACCENodeListEventHandler instance = new ACCENodeListEventHandler();
24     
25     public static ACCENodeListEventHandler getInstance()
26     {
27         return instance;
28     }
29     
30     public void handleEvent(TKEvent evt) throws TKException
31     {
32         try
33         {
34             WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.ACCESS_CONTROL);
35             String JavaDoc uId = evt.getParameter( PARAMETER, "LOGIN_ID");
36             TKHTMLTemplate left = evt.getPrepHTMLTemplate( "ac_ce_nodeList.tmpl" );
37             String JavaDoc dest = evt.getNotNullParameter( PARAMETER, "DESTINATION" );
38
39             if (uId != null && uId.length() > 0)
40             {
41                 left.set("LOGIN_ID", uId);
42                 Login login=LoginFactory.getInstance().getLogin(new Integer JavaDoc(uId));
43                 if (login != null)
44                 {
45                     left.set("LOGIN_NAME", login.getName());
46                 }
47             }
48             
49             TKVector openNodes = new TKVector();
50             if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) {
51                 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" );
52             }
53             else {
54                 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) );
55             }
56
57             TKQuery q;
58             TKDBResult tree = null;
59             TKDBResult branch;
60             int size = openNodes.size();
61             for( int i = 0; i<size ; i++ ) {
62                 String JavaDoc id = (String JavaDoc) openNodes.get( i );
63                 if( id!=null ) {
64                     q = TKDBManager.newQuery(TKDBContentTreeGetOpen.class);
65                     if( id.equals( "-1" ) ) {
66                         q.setQueryParams( "NODE_ID", TKNull.NULL );
67                     }
68                     else {
69                         q.setQueryParams( "NODE_ID", new Integer JavaDoc(id) );
70                     }
71                     q.execute();
72                     branch = new TKDBResult( q.fetchResultSet() );
73                     if( tree != null ) {
74                         tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" );
75                     }
76                     else {
77                         tree = branch;
78                     }
79                 }
80             }
81
82             // die liste der offenen nodes kommt ins template
83
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "OPEN_NODES", "OPEN_NODES" );
84             left.setListIterator( iterator1 );
85
86             int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" );
87             TKOpenContentTreeIterator iterator;
88             if( !dest.equals( "" ) ) {
89                 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth );
90             }
91             else {
92                 left.set( "IS_TOP", "1" );
93                 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", maxDepth );
94             }
95             left.setListIterator( iterator );
96
97             left.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+1));
98             left.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
99
100             left.set( "RTARGET", RIGHT_TARGET );
101             left.set( "LTARGET", LEFT_TARGET );
102
103             WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), left, ACCESS_CONTROL);
104             evt.finishTemplate(left);
105         }
106         catch (Throwable JavaDoc e)
107         {
108             // TO DO : Analyze Exception !
109
throw WebmanExceptionHandler.getException(e);
110         }
111     }
112     
113     public boolean isHandler(TKEvent evt)
114     {
115         return evt.getName().equalsIgnoreCase("AC_CE_NODE_LIST");
116     }
117 }
118
Popular Tags