KickJava   Java API By Example, From Geeks To Geeks.

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


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.db.*;
14
15 import java.sql.*;
16 import java.io.*;
17
18 import com.teamkonzept.webman.mainint.*;
19
20
21 /**
22  * Anzeigen der Maske zum Neuordnen des Contenttree
23  *
24  *
25  * @author $Author: mischa $
26  * @version $Revision: 1.4 $
27 */

28 public class DUChooseStartHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
29 {
30     private DUChooseStartHandler()
31     {}
32     
33     private static DUChooseStartHandler instance = new DUChooseStartHandler();
34     
35     public static DUChooseStartHandler getInstance()
36     {
37         return instance;
38     }
39     
40     public void handleEvent(TKEvent evt) throws TKException
41     {
42         try{
43         TKParams params = evt.getParams();
44         
45         
46         TKHTMLTemplate t = evt.getPrepHTMLTemplate( "du_choose.tmpl" );
47         if(params.getClass("PAR") != null){
48             t.set(params.getClass("PAR"));
49         }
50         
51         
52         String JavaDoc siteTreeFlag = (params.get("PAR", "SITE_TREE_FLAG")) == null? "OFF":params.get("PAR", "SITE_TREE_FLAG") ;
53         String JavaDoc contentTreeFlag = (params.get( "PAR", "CONTENT_FLAG" ))==null?"OFF":params.get( "PAR", "CONTENT_FLAG" );
54         
55         if(!contentTreeFlag.equals("ON") && !siteTreeFlag.equals("ON"))
56         {
57             Utils.doErrorSide(evt);
58             return;
59         }
60         
61         t.set("SITE_TREE_FLAG", siteTreeFlag);
62         t.set("CONTENT_FLAG", contentTreeFlag);
63         
64         TKVector openCTNodes = new TKVector();
65         openCTNodes.put( 0, "-1" ); // initial bei Root den Baum oeffnen
66
TKStandardIterator iteratorCT1 = new TKStandardIterator( openCTNodes, t.getListIterator(), "CT_OPEN_NODES", "CT_OPEN_NODES" );
67         t.setListIterator( iteratorCT1 );
68         
69         TKStandardIterator iteratorSC1 = new TKStandardIterator( openCTNodes, t.getListIterator(), "SC_OPEN_NODES", "SC_OPEN_NODES" );
70         t.setListIterator( iteratorSC1 );
71         
72
73         TKQuery qCT = TKDBManager.newQuery( TKDBContentTreeGetOpen.class );
74         qCT.setQueryParams( "NODE_ID", TKNull.NULL );
75         qCT.execute();
76         TKDBResult CTtree = new TKDBResult( qCT.fetchResultSet() );
77         
78         int maxDepth = TreeUtils.getMaxDepth( CTtree, "CONTENT" );
79         TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator( CTtree, t.getListIterator(), "CE_NODE_LIST", maxDepth );
80         t.set( "CT_IS_TOP", "1" );
81         t.setListIterator( iterator );
82         
83         //Site Tree aufbauen:
84

85         doSTChooseStart(t);
86         t.set( "CT_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
87         
88         //Optionsliste fuer Anzahl der Kopien
89
Integer JavaDoc number;
90         TKVector aVector = new TKVector(Utils.MAX_DUPLICATION);
91         for (int i = 1; i<= Utils.MAX_DUPLICATION; i++){
92             number = new Integer JavaDoc(i);
93             aVector.addElement(number);
94         }
95              
96         TKStandardIterator iteratorNum = new TKStandardIterator( aVector, t.getListIterator(), "NUMBERS_LIST", "NUMBER" );
97         t.setListIterator( iteratorNum );
98
99         evt.finishTemplate(t);
100         }
101         catch (Throwable JavaDoc e)
102         {
103             // TO DO : Analyze Exception !
104
throw WebmanExceptionHandler.getException(e);
105         }
106     }
107     
108     public boolean isHandler(TKEvent evt)
109     {
110         return evt.getName().equalsIgnoreCase("DU_SECOND");
111     }
112
113     
114     /************************************************************************
115     /**
116      * Startevent: Anzeigen der Maske zum Neuordnen des Sitetree
117      *
118      *
119      * @param
120      */

121     public void doSTChooseStart(TKHTMLTemplate t ) throws Throwable JavaDoc
122     {
123         
124         TKVector openNodes = new TKVector();
125         openNodes.put( 0, "-1" ); // initial bei Root den Baum oeffnen
126
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "ST_OPEN_NODES", "ST_OPEN_NODES" );
127         t.setListIterator( iterator1 );
128         
129         TKVector openCSNodes = new TKVector();
130         openCSNodes.put( 0, "-1" );
131         // die Liste der jetzt offenen SiteTree nodes kommt in die ContentTree links
132
TKStandardIterator iteratorSC1 = new TKStandardIterator( openCSNodes, t.getListIterator(), "CS_OPEN_NODES", "CS_OPEN_NODES" );
133         t.setListIterator( iteratorSC1 );
134
135         TKQuery q = TKDBManager.newQuery( TKDBSiteTreeGetOpen.class );
136         q.setQueryParams( "NODE_ID", TKNull.NULL );
137         q.execute();
138         TKDBResult tree = new TKDBResult( q.fetchResultSet() );
139         
140         int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" );
141         TKOpenSiteTreeIterator iterator = new TKOpenSiteTreeIterator( tree, t.getListIterator(), "ST_NODE_LIST", maxDepth );
142         t.setListIterator( iterator );
143
144         t.set( "ST_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
145         
146     }
147     
148         
149 }
150
Popular Tags