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 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 dest = params.get( "PAR", "SITE_NODE_ID" ); 53 String openNodeId = params.get( "PAR", "ST_NODE_ID" ); 54 String closeNodeId = params.get( "PAR", "SITE_NODE_PARENT" ); 55 56 String siteTreeFlag = (params.get("PAR", "SITE_TREE_FLAG")) == null? "OFF":params.get("PAR", "SITE_TREE_FLAG") ; 57 String 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 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 id = (String ) 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 (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 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "ST_OPEN_NODES", "ST_OPEN_NODES" ); 108 t.setListIterator( iterator1 ); 109 110 111 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 Integer number; 125 TKVector aVector = new TKVector(Utils.MAX_DUPLICATION); 126 for (int i = 1; i<= Utils.MAX_DUPLICATION; i++){ 127 number = new Integer (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 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 154 public boolean doCTNodeListMult(TKHTMLTemplate left,TKVector openSCNodes, TKParams params) throws Throwable 155 { 156 String 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 id = (String ) openNodes.get( i ); 172 if( id!=null ) { 173 q = TKDBManager.newQuery( TKDBContentTreeGetOpen.class); 174 if( id.equals( "-1" ) ) { 176 q.setQueryParams( "NODE_ID", TKNull.NULL ); 177 } 179 else { 180 q.setQueryParams( "NODE_ID", new Integer (id) ); 181 } 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 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "CT_OPEN_NODES", "CT_OPEN_NODES" ); 196 left.setListIterator( iterator1 ); 197 198 199 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 |