KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > duplication > eventhandler > STChooseOpenDirHandler


1 package de.webman.duplication.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
21 import com.teamkonzept.webman.mainint.*;
22
23
24 /************************************************************************
25 /**
26 * Anzeigen der Maske zum Neuordnen des Contenttree
27 *
28 *
29 * @param
30 */

31 public class STChooseOpenDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
32 {
33     private STChooseOpenDirHandler()
34     {}
35     
36     private static STChooseOpenDirHandler instance = new STChooseOpenDirHandler();
37     
38     public static STChooseOpenDirHandler getInstance()
39     {
40         return instance;
41     }
42     
43     public void handleEvent(TKEvent evt) throws TKException
44     {
45         try
46         {
47             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "du_choose.tmpl" );
48             TKParams params = evt.getParams();
49             if(params.getClass("PAR") != null){
50                 t.set(params.getClass("PAR"));
51             }
52             String JavaDoc dest = params.get( "PAR", "SITE_NODE_ID" );
53             String JavaDoc openNodeId = params.get( "PAR", "ST_NODE_ID" );
54             String JavaDoc closeNodeId = params.get( "PAR", "SITE_NODE_PARENT" );
55             
56             String JavaDoc siteTreeFlag = (params.get("PAR", "SITE_TREE_FLAG")) == null? "OFF":params.get("PAR", "SITE_TREE_FLAG") ;
57             String JavaDoc contentFlag = (params.get( "PAR", "CONTENT_FLAG" ))==null?"OFF":params.get( "PAR", "CONTENT_FLAG" );
58             t.set("SITE_TREE_FLAG", siteTreeFlag);
59             t.set("CONTENT_FLAG", contentFlag);
60
61             TKVector openNodes = new TKVector();
62             if( params.hasMultiple( "PAR", "ST_OPEN_NODES" ) ) {
63                 openNodes = params.getVector( "PAR", "ST_OPEN_NODES" );
64             }
65             else {
66                 openNodes.put( 0, params.get( "PAR", "ST_OPEN_NODES" ) );
67             }
68             openNodes = TreeUtils.updateOpenNodes( openNodes, openNodeId, closeNodeId, dest, TKDBSiteTreeIsChild.class );
69             
70             /* Information über den ContentTree, aus dem link im SiteTree */
71             TKVector openCSNodes = new TKVector();
72             if( params.hasMultiple( "PAR", "CS_OPEN_NODES" ) ) {
73                 openCSNodes = params.getVector( "PAR", "CS_OPEN_NODES" );
74             }
75             else {
76                 openCSNodes.put( 0, params.get( "PAR", "CS_OPEN_NODES" ) );
77             }
78             
79             
80             
81             TKDBResult tree = null;
82             TKDBResult branch;
83             TKQuery q;
84             int size = openNodes.size();
85             for( int i = 0; i<size ; i++ ) {
86                 String JavaDoc id = (String JavaDoc) openNodes.get( i );
87                 if( id!=null ) {
88                     q = TKDBManager.newQuery( TKDBSiteTreeGetOpen.class );
89                     if( id.equals( "-1" ) ) {
90                         q.setQueryParams( "NODE_ID", TKNull.NULL );
91                     }
92                     else {
93                         q.setQueryParams( "NODE_ID", new Integer JavaDoc(id) );
94                     }
95                     q.execute();
96                     branch = new TKDBResult( q.fetchResultSet() );
97                     if( tree != null ) {
98                         tree =TreeUtils. mergeIntoTree( tree, branch, "SITE_NODE_ID" );
99                     }
100                     else {
101                         tree = branch;
102                     }
103                 }
104             }
105             
106             // die liste der jetzt offenen nodes kommt ins template
107
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "ST_OPEN_NODES", "ST_OPEN_NODES" );
108             t.setListIterator( iterator1 );
109             
110             
111             // die Liste der jetzt offenen ContentTree nodes kommt in die SiteTree links
112
TKStandardIterator iteratorCS1 = new TKStandardIterator( openCSNodes, t.getListIterator(), "CS_OPEN_NODES", "CS_OPEN_NODES" );
113             t.setListIterator( iteratorCS1 );
114             
115             
116             int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" );
117             DUOpenSiteTreeIterator iterator = new DUOpenSiteTreeIterator( tree, t.getListIterator(), "ST_NODE_LIST", Integer.parseInt( dest ), maxDepth );
118             t.setListIterator( iterator );
119             t.set( "ST_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
120             t.set( "ROLE", (params.get( "PAR", "ROLE" )==null)?"":params.get( "PAR", "ROLE" ) );
121             doCTNodeListMult(t,openNodes, params);
122             
123             //Optionsliste fuer Anzahl der Kopien
124
Integer JavaDoc number;
125             TKVector aVector = new TKVector(Utils.MAX_DUPLICATION);
126             for (int i = 1; i<= Utils.MAX_DUPLICATION; i++){
127                 number = new Integer JavaDoc(i);
128                 aVector.addElement(number);
129             }
130             TKStandardIterator iteratorNum = new TKStandardIterator( aVector, t.getListIterator(), "NUMBERS_LIST", "NUMBER" );
131             t.setListIterator( iteratorNum );
132
133             evt.finishTemplate(t);
134         }
135         catch(Throwable JavaDoc t)
136         {
137             throw WebmanExceptionHandler.getException(t);
138         }
139     }
140     
141     public boolean isHandler(TKEvent evt)
142     {
143         return evt.getName().equalsIgnoreCase("DU_ST_CHOOSE_OPENDIR");
144     }
145         
146     
147     /************************************************************************
148     /**
149      * Baut die Liste der Knoten im linken Frame auf
150      *
151      *
152      * @param
153      */

154     public boolean doCTNodeListMult(TKHTMLTemplate left,TKVector openSCNodes, TKParams params) throws Throwable JavaDoc
155     {
156         String JavaDoc dest = (params.get( "PAR", "DESTINATION" ))==null?"":params.get( "PAR", "DESTINATION" );
157         
158         TKVector openNodes = new TKVector();
159         if( params.hasMultiple( "PAR", "CS_OPEN_NODES" ) ) {
160             openNodes = params.getVector( "PAR", "CS_OPEN_NODES" );
161         }
162         else {
163             openNodes.put( 0, params.get( "PAR", "CS_OPEN_NODES" ) );
164         }
165
166         TKQuery q;
167         TKDBResult tree = null;
168         TKDBResult branch;
169         int size = openNodes.size();
170         for( int i = 0; i<size ; i++ ) {
171             String JavaDoc id = (String JavaDoc) openNodes.get( i );
172             if( id!=null ) {
173                 q = TKDBManager.newQuery( TKDBContentTreeGetOpen.class);
174                 //q = TKDBManager.newQuery( "TKDBContentTreeGetOpenUser" );
175
if( id.equals( "-1" ) ) {
176                     q.setQueryParams( "NODE_ID", TKNull.NULL );
177                     //q.setQueryParams( "USER_ID", new Integer(this.userId) );
178
}
179                 else {
180                     q.setQueryParams( "NODE_ID", new Integer JavaDoc(id) );
181                     //q.setQueryParams( "USER_ID", new Integer(this.userId) );
182
}
183                 q.execute();
184                 branch = new TKDBResult( q.fetchResultSet() );
185                 if( tree != null ) {
186                     tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" );
187                 }
188                 else {
189                     tree = branch;
190                 }
191             }
192         }
193         
194         // die liste der offenen nodes kommt ins template
195
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "CT_OPEN_NODES", "CT_OPEN_NODES" );
196         left.setListIterator( iterator1 );
197
198
199         // die Liste der jetzt offenen SiteTree nodes kommt in die ContentTree links
200
TKStandardIterator iteratorCS1 = new TKStandardIterator( openSCNodes, left.getListIterator(), "SC_OPEN_NODES", "SC_OPEN_NODES" );
201         left.setListIterator( iteratorCS1 );
202
203
204         int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" );
205         TKOpenContentTreeIterator iterator;
206         if( !dest.equals( "" ) ) {
207             iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth );
208         }
209         else {
210             left.set( "IS_TOP", "1" );
211             iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", maxDepth );
212         }
213         left.setListIterator( iterator );
214
215         left.set( "CT_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
216
217         return true;
218     }
219
220
221     
222 }
223
Popular Tags