1 package de.webman.sitetree.eventhandler; 2 3 4 import java.util.*; 5 import java.sql.*; 6 import java.io.*; 7 8 import com.teamkonzept.web.*; 9 import com.teamkonzept.lib.*; 10 import com.teamkonzept.field.*; 11 import com.teamkonzept.field.db.*; 12 import com.teamkonzept.db.*; 13 14 import com.teamkonzept.webman.mainint.*; 15 import de.webman.generator.*; 16 import de.webman.content.eventhandler.CEUtils; 17 import com.teamkonzept.international.LanguageManager; 18 19 20 import com.teamkonzept.webman.*; 21 import com.teamkonzept.webman.db.*; 22 import com.teamkonzept.webman.mainint.db.*; 23 import com.teamkonzept.webman.mainint.db.queries.*; 24 import com.teamkonzept.webman.mainint.db.queries.sitetree.CheckDocumentDependency; 25 import com.teamkonzept.webman.mainint.db.queries.DocDependency; 26 import com.teamkonzept.webman.mainint.events.*; 27 28 import com.oroinc.text.regex.*; 29 30 36 public class SiteTreeUtils implements ParameterTypes, DatabaseDefaults, UserCodes 37 { 38 39 44 public static boolean checkReferences(Integer siteNodeId, String shortName, TKVector back) throws SQLException 45 { 46 TKQuery q; 47 if (shortName != null) 48 { 49 q= TKDBManager.newQuery(CheckDocumentDependency.class); 50 q.setQueryParams( "DOCUMENT_SHORTNAME", shortName); 51 } 52 else 53 { 54 q = TKDBManager.newQuery(DocDependency.class); 55 } 56 q.setQueryParams( "SITE_NODE_ID", siteNodeId); 57 q.execute(); 58 ResultSet rs = q.fetchResultSet(); 59 while (rs.next()) 60 { 61 TKHashtable tmp = new TKHashtable(); 62 Integer sID = new Integer (rs.getInt("SITE_NODE_ID")); 63 String path = getCurrentPath(sID); 64 String sName = rs.getString("DOCUMENT_SHORTNAME"); 65 tmp.put("REF2", path + sName); 66 back.addElement(tmp); 67 } 68 if (back.size() == 0) 69 { 70 TKHashtable tmp = new TKHashtable(); 71 tmp.put("REF2", LanguageManager.getText("sitestructure", "NOT_REFERENCED")); 72 back.addElement(tmp); 73 return false; 74 } 75 return true; 76 } 77 78 86 public static void keepSTContext( TKEvent evt, TemplateBasic t ) throws Throwable 87 { 88 t.set( "THE_SELECTION_TYPE", evt.getNotNullParameter( PARAMETER, "THE_SELECTION_TYPE" ) ); 89 t.set( "THE_CONTENT_NODE_ID", evt.getNotNullParameter( PARAMETER, "THE_CONTENT_NODE_ID" )); 90 t.set( "SITE_NODE_ID", evt.getParameter( PARAMETER, "SITE_NODE_ID" ) ); 91 t.set( "SITE_NODE_TYPE", evt.getParameter( PARAMETER, "SITE_NODE_TYPE" ) ); 92 t.set( "FORM_ID", evt.getParameter( PARAMETER, "FORM_ID" ) ); 93 t.set( "CONTENT_ID", evt.getNotNullParameter( PARAMETER, "CONTENT_ID" )); 94 t.set( "SITE_NODE_NAME", evt.getNotNullParameter( PARAMETER, "SITE_NODE_NAME" ) ); 95 t.set( "SITE_NODE_SHORTNAME", evt.getNotNullParameter( PARAMETER, "SITE_NODE_SHORTNAME" ) ); 96 } 97 98 110 public static void saveContentComponent( TKEvent evt, String selData, String nodeName ) throws Throwable 111 { 112 String sNodeId = evt.getParameter( PARAMETER, "SITE_NODE_ID" ); 113 String sDocIdx = evt.getParameter( PARAMETER, "SITE_NODE_DOC_IDX" ); 114 String sPresIdx = evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ); 115 String sNodeType = evt.getParameter( PARAMETER, "SITE_NODE_TYPE" ); 116 String sIntType = evt.getParameter( PARAMETER, "INTEGRATION_TYPE" ); 117 118 TKQuery q = TKDBManager.newQuery(TKDBDocContentPut.class); 119 q.setQueryParams( "SITE_NODE_ID", new Integer (sNodeId) ); 120 q.setQueryParams( "SITE_NODE_DOC_IDX", new Integer (sDocIdx) ); 121 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer (sPresIdx) ); 122 123 String sContNodeId; 124 String sSelType; 125 if( sNodeType.equals( SINGLE ) && sIntType.equals( SINGLE ) ) { if( evt.getParameter( PARAMETER, "ATTACH_SEL" ).equals( "SC" ) ) { sContNodeId = evt.getParameter( PARAMETER, nodeName ); 128 sSelType = null; 129 } 130 else { sContNodeId = selData==null?evt.getParameter( PARAMETER, "THE_CONTENT_NODE_ID" ):evt.getParameter( PARAMETER, "NODE_ID" ); 132 sSelType = selData==null?null:evt.getParameter( PARAMETER, "SEL_TYPE" ); 133 } 134 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 135 q.setQueryParams( "SELECTION_TYPE", sSelType ); 136 } 137 else if( sNodeType.equals( GROUP ) && sIntType.equals( SINGLE ) ) { if( evt.getParameter( PARAMETER, "ATTACH_SEL" ).equals( "PGC" ) ) { q.setQueryParams( "CONTENT_NODE_ID", null ); 140 q.setQueryParams( "SELECTION_TYPE", null ); 141 } 142 else { 143 sContNodeId = evt.getParameter( PARAMETER, nodeName ); 144 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 145 q.setQueryParams( "SELECTION_TYPE", null ); 146 } 147 } 148 else { sContNodeId = selData==null?evt.getParameter( PARAMETER, "THE_CONTENT_NODE_ID" ):evt.getParameter( PARAMETER, "NODE_ID" ); 150 sSelType = selData==null?null:evt.getParameter( PARAMETER, "SEL_TYPE" ); 151 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 152 q.setQueryParams( "SELECTION_TYPE", sSelType ); 153 } 154 q.setQueryParams( "SELECTION_DATA", selData ); 155 q.execute(); 156 q.fetchResultSet(); 157 } 158 159 171 public static void updateContentComponent(TKEvent evt, String selData, String nodeName ) throws Throwable 172 { 173 String sNodeId = evt.getParameter( PARAMETER, "SITE_NODE_ID" ); 174 String sDocIdx = evt.getParameter( PARAMETER, "SITE_NODE_DOC_IDX" ); 175 String sPresIdx = evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ); 176 String sNodeType = evt.getParameter( PARAMETER, "SITE_NODE_TYPE" ); 177 String sIntType = evt.getParameter( PARAMETER, "INTEGRATION_TYPE" ); 178 179 TKQuery q = TKDBManager.newQuery(TKDBDocContentUpdate.class); 180 q.setQueryParams( "SITE_NODE_ID", new Integer (sNodeId) ); 181 q.setQueryParams( "SITE_NODE_DOC_IDX", new Integer (sDocIdx) ); 182 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer (sPresIdx) ); 183 184 String sContNodeId; 185 String sSelType; 186 if( sNodeType.equals( SINGLE ) && sIntType.equals( SINGLE ) ) { if( evt.getParameter( PARAMETER, "ATTACH_SEL" ).equals( "SC" ) ) { sContNodeId = evt.getParameter( PARAMETER, nodeName ); 189 sSelType = null; 190 } 191 else { sContNodeId = selData==null?evt.getParameter( PARAMETER, "THE_CONTENT_NODE_ID" ):evt.getParameter( PARAMETER, "NODE_ID" ); 193 sSelType = selData==null?null:evt.getParameter( PARAMETER, "SEL_TYPE" ); 194 } 195 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 196 q.setQueryParams( "SELECTION_TYPE", sSelType ); 197 } 198 else if( sNodeType.equals( GROUP ) && sIntType.equals( SINGLE ) ) { if( evt.getParameter( PARAMETER, "ATTACH_SEL" ).equals( "PGC" ) ) { q.setQueryParams( "CONTENT_NODE_ID", null ); 201 q.setQueryParams( "SELECTION_TYPE", null ); 202 } 203 else if( evt.getParameter( PARAMETER, "ATTACH_SEL" ).equals( "GC" ) ) { sContNodeId = evt.getParameter( PARAMETER, nodeName ); 205 sSelType = selData==null?null:evt.getParameter( PARAMETER, "SEL_TYPE" ); 206 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 207 q.setQueryParams( "SELECTION_TYPE", sSelType ); 208 } 209 else { sContNodeId = evt.getParameter( PARAMETER, nodeName ); 211 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 212 q.setQueryParams( "SELECTION_TYPE", null ); 213 } 214 } 215 else { sContNodeId = selData==null?evt.getParameter( PARAMETER, "THE_CONTENT_NODE_ID" ):evt.getParameter( PARAMETER, "NODE_ID" ); 217 sSelType = selData==null?null:evt.getParameter( PARAMETER, "SEL_TYPE" ); 218 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sContNodeId ) ); 219 q.setQueryParams( "SELECTION_TYPE", sSelType ); 220 } 221 q.setQueryParams( "SELECTION_DATA", selData ); 222 q.execute(); 223 q.fetchResultSet(); 224 } 225 226 237 public static String saveSiteTreeNode( TKEvent evt, String selData, String selType, int pGCNode ) throws Throwable 238 { 239 String sNodeName = evt.getParameter( PARAMETER, "SITE_NODE_NAME" ); 240 String sNodeShortName = evt.getParameter( PARAMETER, "SITE_NODE_SHORTNAME" ); 241 sNodeShortName = CEUtils.checkFileName(sNodeShortName); 242 String nodeType = evt.getParameter( PARAMETER, "SITE_NODE_TYPE" ); 243 String parId = evt.getParameter( PARAMETER, "SITE_NODE_ID" ); 244 245 TKQuery q = TKDBManager.newQuery(TKDBSiteTreeInsertNode.class); 246 q.setQueryParams( "NODE_ID", new Integer (parId) ); 247 q.setQueryParams( "SITE_NODE_TYPE", new Integer (nodeType) ); 248 q.setQueryParams( "SITE_NODE_NAME", sNodeName ); 249 q.setQueryParams( "SITE_NODE_SHORTNAME", sNodeShortName ); 250 q.setQueryParams( "PG_CONTENT_NODE", pGCNode==-1?null:new Integer (pGCNode) ); 251 q.setQueryParams( "SELECTION_TYPE", selType ); 252 q.setQueryParams( "SELECTION_DATA", selData ); 253 q.execute(); 254 ResultSet rs = q.fetchResultSet(); 255 String nodeID = null; 256 if( rs.next() ) { 257 nodeID = Integer.toString( rs.getInt("SITE_NODE_ID") ); 258 } 259 return nodeID; 260 } 261 262 273 public static void updateSiteTreeNode( TKEvent evt, String selData, String selType, int pGCNode ) throws Throwable 274 { 275 String sNodeName = evt.getParameter( PARAMETER, "SITE_NODE_NAME" ); 276 String sNodeShortName = evt.getParameter( PARAMETER, "SITE_NODE_SHORTNAME" ); 277 String nodeType = evt.getParameter( PARAMETER, "SITE_NODE_TYPE" ); 278 String nodeId = evt.getParameter( PARAMETER, "SITE_NODE_ID" ); 279 sNodeShortName = CEUtils.checkFileName(sNodeShortName); 280 281 TKQuery q = TKDBManager.newQuery(TKDBSiteTreeUpdateNode.class); 282 q.setQueryParams( "SITE_NODE_ID", new Integer (nodeId) ); 283 q.setQueryParams( "SITE_NODE_TYPE", new Integer (nodeType) ); 284 q.setQueryParams( "SITE_NODE_NAME", sNodeName ); 285 q.setQueryParams( "SITE_NODE_SHORTNAME", sNodeShortName ); 286 q.setQueryParams( "PG_CONTENT_NODE", pGCNode==-1?null:new Integer (pGCNode) ); 287 q.setQueryParams( "SELECTION_TYPE", selType ); 288 q.setQueryParams( "SELECTION_DATA", selData ); 289 q.execute(); 290 q.fetchResultSet(); 291 } 292 293 298 public static boolean isNotInRs( TKDBResult rs, String destName ) throws Throwable 299 { 300 int curr = 0; 301 TKDBResultRow row; 302 boolean res = true; 303 String checkName; 304 while( (row = (TKDBResultRow) rs.get( curr++ ))!=null ) { 305 checkName = (String ) row.getColumn( "DOCUMENT_SHORTNAME" ); 306 res = checkName.equals( destName )==true?false:true; 307 if( !res ) return res; 308 } 309 return res; 310 } 311 312 317 public static boolean isGroupNode( String checkId, TKDBResult rs ) throws Throwable 318 { 319 int curr = 0; 320 TKDBResultRow row; 321 boolean res = false; 322 String rsId; 323 while( (row = (TKDBResultRow) rs.get( curr++ ))!=null ) { 324 rsId = (String ) row.getColumn( "CONTENT_NODE_ID" ); 325 res = rsId.equals( checkId ); 326 if( res ) return res; 327 } 328 return res; 329 } 330 331 339 public static void prepareNodeParams( TKHTMLTemplate t, String nodeType ) throws Throwable 340 { 341 if( nodeType.equals( GROUP ) ) { 342 TKQuery q = TKWebmanDBManager.newQuery(TKDBContentTreeGetTypeOrderByName.class); 343 q.setQueryParams( "CONTENT_NODE_TYPE", GROUP_INTEGER ); q.execute(); 345 ResultSet rs = q.fetchResultSet(); 346 347 TKDBTemplate.prepareListTemplate( rs, t, "ST_PGC_LIST" ); 348 349 q = TKWebmanDBManager.newQuery(TKDBContentSelClassGet.class); 350 q.setQueryParams( "RESULT_TYPE", GROUP_INTEGER ); 351 q.execute(); 352 rs = q.fetchResultSet(); 353 354 TKDBTemplate.prepareListTemplate( rs, t, "ST_PGCST_LIST" ); 355 } 356 } 357 358 367 public static String getCurrentPath (Integer siteNodeId) 368 throws SQLException 369 { 370 TKQuery q = TKDBManager.newQuery(TKDBSiteTreeGetParents.class); 371 q.setQueryParams( "SITE_NODE_ID", siteNodeId ); 372 q.execute(); 373 ResultSet rs = q.fetchResultSet(); 374 String res = "/"; 375 if (!rs.next()) return res; 377 while( rs.next() ) { 378 res += rs.getString( "SITE_NODE_SHORTNAME" )+"/"; 379 } 380 return res; 381 } 382 383 391 public static String getParentPath (Integer id) 392 throws TKException 393 { 394 try 395 { 396 TKQuery query = TKDBManager.newQuery(TKDBSiteTreeGetParents.class); 397 query.setQueryParams("SITE_NODE_ID", id); 398 query.execute(); 399 400 ResultSet result = query.fetchResultSet(); 401 StringBuffer path = new StringBuffer (); 402 403 if (result.next()) 404 { 405 while (result.next()) 406 { 407 path.append("/") 408 .append(result.getString("SITE_NODE_NAME")); 409 } 410 } 411 412 if (path.length() == 0) 413 { 414 path.append("/"); 415 } 416 417 return path.toString(); 418 } 419 catch (Exception e) 420 { 421 throw WebmanExceptionHandler.getException(e); 422 } 423 } 424 425 432 public static void prepareRefineSelection(TKEvent evt, TKHTMLTemplate t ) throws Throwable 433 { 434 String selId = evt.getNotNullParameter(PARAMETER,"SELECTION_ID"); 435 String selData = ""; 436 if( !selId.equals( "" ) ) { 437 TKQuery q = TKDBManager.newQuery(TKDBContentSelectionGet.class); 438 q.setQueryParams( "SELECTION_ID", new Integer ( selId ) ); 439 q.execute(); 440 ResultSet rs = q.fetchResultSet(); 441 if( rs.next() ) { 442 selData = rs.getString( "SELECTION_DATA" ); 443 } 444 } 445 String selectedContent = evt.getParameter(PARAMETER,"THE_CONTENT_NODE_ID"); 446 if (selectedContent == null) 447 throw new TKUserException("Kein Objekt gewählt", NO_OBJECT, USER_SEVERITY, true, null); 448 if(selData!=null && !selData.equals( "" ) ) { 449 TKWMContentSelectorReg.edit(t,evt.getParameter(PARAMETER,"THE_SELECTION_TYPE"),Integer.parseInt(selectedContent),selData); 450 } 451 else { 452 TKWMContentSelectorReg.edit(t,evt.getParameter(PARAMETER,"THE_SELECTION_TYPE"),Integer.parseInt(selectedContent)); 453 } 454 } 455 456 457 } 458 | Popular Tags |