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 25 public class DUChooseOpenDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 26 { 27 28 private DUChooseOpenDirHandler() 29 {} 30 31 private static DUChooseOpenDirHandler instance = new DUChooseOpenDirHandler(); 32 33 public static DUChooseOpenDirHandler getInstance() 34 { 35 return instance; 36 } 37 38 public void handleEvent(TKEvent evt) throws TKException 39 { 40 try 41 { 42 TKParams params = evt.getParams(); 43 44 45 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "du_choose.tmpl" ); 46 if(params.getClass("PAR") != null){ 47 t.set(params.getClass("PAR")); 48 } 49 String CTdest = params.get( "PAR", "CONTENT_NODE_ID" ); 50 String CTopenNodeId = params.get( "PAR", "CT_NODE_ID" ); 51 String CTcloseNodeId = params.get( "PAR", "CONTENT_NODE_PARENT" ); 52 53 String tmplRootId = params.get( "PAR", "TEMPLATE_ROOT_ID" ); 54 String targetRootId = params.get( "PAR", "TARGET_ROOT_ID" ); 55 if(tmplRootId != null){ 56 t.set("TEMPLATE_ROOT_ID", tmplRootId); 57 } 58 if(targetRootId != null){ 59 t.set("TARGET_ROOT_ID", targetRootId); 60 } 61 62 String siteTreeFlag = (params.get("PAR", "SITE_TREE_FLAG")) == null? "OFF":params.get("PAR", "SITE_TREE_FLAG") ; 63 String contentFlag = (params.get( "PAR", "CONTENT_FLAG" ))==null?"OFF":params.get( "PAR", "CONTENT_FLAG" ); 64 t.set("SITE_TREE_FLAG", siteTreeFlag); 65 t.set("CONTENT_FLAG", contentFlag); 66 67 TKVector CTopenNodes = new TKVector(); 68 if( params.hasMultiple( "PAR", "CT_OPEN_NODES" ) ) { 69 CTopenNodes = params.getVector( "PAR", "CT_OPEN_NODES" ); 70 } 71 else { 72 CTopenNodes.put( 0, params.get( "PAR", "CT_OPEN_NODES" ) ); 73 } 74 CTopenNodes = TreeUtils.updateOpenNodes( CTopenNodes, CTopenNodeId, CTcloseNodeId, CTdest, TKDBContentTreeIsChild.class ); 75 76 77 TKVector openSCNodes = new TKVector(); 78 if( params.hasMultiple( "PAR", "SC_OPEN_NODES" ) ) { 79 openSCNodes = params.getVector( "PAR", "SC_OPEN_NODES" ); 80 } 81 else { 82 openSCNodes.put( 0, params.get( "PAR", "SC_OPEN_NODES" ) ); 83 } 84 85 86 TKDBResult CTtree = null; 87 TKDBResult CTbranch; 88 TKQuery qCT; 89 int sizeCT = CTopenNodes.size(); 90 for( int i = 0; i<sizeCT ; i++ ) { 91 String id = (String ) CTopenNodes.get( i ); 92 if( id!=null ) { 93 qCT = TKDBManager.newQuery( TKDBContentTreeGetOpen.class ); 94 if( id.equals( "-1" ) ) { 95 qCT.setQueryParams( "NODE_ID", TKNull.NULL ); 96 } 97 else { 98 qCT.setQueryParams( "NODE_ID", new Integer (id) ); 99 } 100 qCT.execute(); 101 CTbranch = new TKDBResult( qCT.fetchResultSet() ); 102 if( CTtree != null ) { 103 CTtree = TreeUtils.mergeIntoTree( CTtree, CTbranch, "CONTENT_NODE_ID" ); 104 } 105 else { 106 CTtree = CTbranch; 107 } 108 } 109 } 110 111 TKStandardIterator iterator1CT = new TKStandardIterator( CTopenNodes, t.getListIterator(), "CT_OPEN_NODES", "CT_OPEN_NODES" ); 113 t.setListIterator( iterator1CT ); 114 115 TKStandardIterator iteratorSC1 = new TKStandardIterator( openSCNodes, t.getListIterator(), "SC_OPEN_NODES", "SC_OPEN_NODES" ); 117 t.setListIterator( iteratorSC1 ); 118 119 int maxDepth = TreeUtils.getMaxDepth( CTtree, "CONTENT" ); 120 TKOpenContentTreeIterator iteratorCT = new TKOpenContentTreeIterator( CTtree, t.getListIterator(), "CE_NODE_LIST", Integer.parseInt( CTdest ), maxDepth ); 121 t.setListIterator( iteratorCT ); 122 t.set( "CT_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2) ); 123 t.set( "ROLE", (params.get( "PAR", "ROLE" )==null)?"":params.get( "PAR", "ROLE" ) ); 124 doSTNodeListMult(t,CTopenNodes, evt); 125 126 127 Integer number; 129 TKVector aVector = new TKVector(Utils.MAX_DUPLICATION); 130 for (int i = 1; i<= Utils.MAX_DUPLICATION; i++){ 131 number = new Integer (i); 132 aVector.addElement(number); 133 } 134 TKStandardIterator iteratorNum = new TKStandardIterator( aVector, t.getListIterator(), "NUMBERS_LIST", "NUMBER" ); 135 t.setListIterator( iteratorNum ); 136 137 evt.finishTemplate(t); 138 } 139 catch (Throwable e) 140 { 141 throw WebmanExceptionHandler.getException(e); 143 } 144 } 145 146 public boolean isHandler(TKEvent evt) 147 { 148 return evt.getName().equalsIgnoreCase("DU_CE_CHOOSE_OPENDIR"); 149 } 150 151 152 158 public void doSTNodeListMult(TKHTMLTemplate left, TKVector CTopenNodes, TKEvent evt) throws Throwable 159 { 160 TKParams params = evt.getParams(); 161 162 String dest = (params.get( "PAR", "DESTINATION" ))==null?"":params.get( "PAR", "DESTINATION" ); 163 165 TKVector openNodes = new TKVector(); 166 if( params.hasMultiple( "PAR", "SC_OPEN_NODES" ) ) { 167 openNodes = params.getVector( "PAR", "SC_OPEN_NODES" ); 168 } 169 else { 170 openNodes.put( 0, params.get( "PAR", "SC_OPEN_NODES" ) ); 171 } 172 173 TKQuery q; 174 TKDBResult tree = null; 175 TKDBResult branch; 176 int size = openNodes.size(); 177 for( int i = 0; i<size ; i++ ) { 178 String id = (String ) openNodes.get( i ); 179 if( id!=null ) { 180 q = TKDBManager.newQuery( TKDBSiteTreeGetOpen.class ); 181 if( id.equals( "-1" ) ) { 182 q.setQueryParams( "NODE_ID", TKNull.NULL ); 183 } 184 else { 185 q.setQueryParams( "NODE_ID", new Integer (id) ); 186 } 187 q.execute(); 188 branch = new TKDBResult( q.fetchResultSet() ); 189 if( tree != null ) { 190 tree = TreeUtils.mergeIntoTree( tree, branch, "SITE_NODE_ID" ); 191 } 192 else { 193 tree = branch; 194 } 195 } 196 } 197 198 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "ST_OPEN_NODES", "ST_OPEN_NODES" ); 200 left.setListIterator( iterator1 ); 201 202 TKStandardIterator iteratorCS1 = new TKStandardIterator( CTopenNodes, left.getListIterator(), "CS_OPEN_NODES", "CS_OPEN_NODES" ); 204 left.setListIterator( iteratorCS1 ); 205 206 int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" ); 207 DUOpenSiteTreeIterator iterator; 208 if( !dest.equals( "" ) ) { 209 iterator = new DUOpenSiteTreeIterator( tree, left.getListIterator(), "ST_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 210 } 211 else { 212 iterator = new DUOpenSiteTreeIterator( tree, left.getListIterator(), "ST_NODE_LIST", maxDepth ); 214 } 215 left.setListIterator( iterator ); 216 217 left.set( "ST_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2)); 218 219 } 220 221 222 } 223 | Popular Tags |