KickJava   Java API By Example, From Geeks To Geeks.

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


1 package de.webman.content.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 import de.webman.acl.LoginFactory;
13 import de.webman.acl.Login;
14 import de.webman.acl.Event;
15 import de.webman.acl.EventFactory;
16
17 /**
18     * Baut die Liste der Knoten im linken Frame auf
19     *
20  * @author $Author: sebastian $
21  * @version $Revision: 1.9 $
22 */

23 public class CENodeListMultHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants
24 {
25     /** @see CEBrowseHandler */
26     private CENodeListMultHandler()
27     {}
28
29     /** Singleton Instanz */
30     private static CENodeListMultHandler instance = new CENodeListMultHandler();
31
32     public static CENodeListMultHandler getInstance()
33     {
34         return instance;
35     }
36
37     public void handleEvent(TKEvent evt) throws TKException
38     {
39         try
40         {
41             CEUtils.checkEvent(evt);
42             TKHTMLTemplate left = evt.getPrepHTMLTemplate( "ce_nodeList.tmpl" );
43             String JavaDoc dest = evt.getNotNullParameter( PARAMETER, "DESTINATION" );
44
45             // behalte sortier-Parameter
46
CEUtils.keepSortParameter(evt, left);
47
48             TKVector openNodes = new TKVector();
49             if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) {
50                 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" );
51             }
52             else {
53                 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) );
54             }
55
56             TKQuery q;
57             TKDBResult tree = null;
58             TKDBResult branch;
59             //int size = openNodes.size();
60
int size = (openNodes == null ? 0 : openNodes.size());
61             for( int i = 0; i<size ; i++ ) {
62                 String JavaDoc id = (String JavaDoc) openNodes.get( i );
63                 if( id!=null && !id.equals("")) {
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                     java.sql.ResultSet JavaDoc rs = q.fetchResultSet();
73                     branch = new TKDBResult( rs );
74
75                     // iterate to get events!!
76

77                     if( tree != null ) {
78                         tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" );
79                     }
80                     else {
81                         tree = branch;
82                     }
83                 }
84             }
85
86             // add local rights to each node
87
WebManEvent.fillInContentEvents(evt.getRemoteUser(), evt.getName(), CONTENT_EDIT, tree);
88
89             // die liste der offenen nodes kommt ins template
90
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "OPEN_NODES", "OPEN_NODES" );
91             left.setListIterator( iterator1 );
92
93             int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" );
94             TKOpenContentTreeIterator iterator;
95             if( !dest.equals( "" ) ) {
96                 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth );
97             }
98             else {
99                 left.set( "IS_TOP", "1" );
100                 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", maxDepth );
101             }
102             left.setListIterator( iterator );
103
104             left.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth + 1) );
105             left.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth + 2) );
106
107             left.set( "RTARGET", RIGHT_TARGET );
108             left.set( "LTARGET", LEFT_TARGET );
109
110             // dupliziertool
111
LoginFactory factory = LoginFactory.getInstance();
112             Login login = factory.getLogin(evt.getRemoteUser());
113             Event event = EventFactory.getInstance().getEvent("DU_START");
114             if (login.isAllowed(event.getID(), ContextConstants.DUPLICATION_TOOL))
115             {
116                 left.set("DU_START", "1");
117             }
118             
119             // neu ordnen
120
event = EventFactory.getInstance().getEvent("CE_ARRANGE_START");
121             if (login.isAllowed(event.getID(), ContextConstants.CONTENT_EDIT))
122             {
123                 left.set("CE_ARRANGE_START", "1");
124             }
125             /*
126                 überschreibt sonst die lokalen Rechte @see CEOpenMultDirHandler;
127                 die globalen Rechte werden sowieso mit den lokalen Rechten reingeschrieben
128                 
129                 mailto:sebastian@webman-ag.de
130             */

131             //WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), left, ContextConstants.CONTENT_EDIT);
132

133             evt.finishTemplate(left);
134         }
135         catch (Throwable JavaDoc e)
136         {
137             // TO DO : Analyze Exception !
138
throw WebmanExceptionHandler.getException(e);
139         }
140     }
141
142     public boolean isHandler(TKEvent evt)
143     {
144         return evt.getName().equalsIgnoreCase("CE_SHOWLIST");
145     }
146 }
147
Popular Tags