1 package de.webman.documenttype.eventhandler; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.lib.*; 5 import com.teamkonzept.field.*; 6 import com.teamkonzept.field.db.*; 7 import com.teamkonzept.db.*; 8 9 import com.teamkonzept.webman.mainint.*; 10 import com.teamkonzept.publishing.markups.*; 11 12 13 import com.teamkonzept.webman.*; 14 import com.teamkonzept.field.TKUploadField; 15 import com.teamkonzept.webman.db.*; 16 import com.teamkonzept.webman.mainint.db.*; 17 import com.teamkonzept.webman.mainint.events.*; 18 19 import com.teamkonzept.webman.mainint.db.queries.*; 20 import com.teamkonzept.webman.mainint.db.queries.presentation.CheckPresentationDependency; 21 import com.teamkonzept.international.LanguageManager; 22 23 import de.webman.sitetree.eventhandler.SiteTreeUtils; 24 import java.sql.*; 25 26 30 public class DTUtils implements ParameterTypes, DatabaseDefaults, UserCodes 31 { 32 33 37 public static TKVector getDependencies(Integer presId) throws SQLException 38 { 39 TKQuery q = TKDBManager.newQuery(CheckPresentationDependency.class); 41 q.setQueryParams( "PRESENTATION_ID", presId); 42 q.execute(); 43 ResultSet rs = q.fetchResultSet(); 44 TKVector references = new TKVector(); 45 if (rs.next()) 46 { 47 do 48 { 49 TKHashtable temp = new TKHashtable(); 50 String docName = rs.getString("DOCUMENT_NAME"); 51 Integer siteNodeId = new Integer (rs.getInt("SITE_NODE_ID")); 52 String path = SiteTreeUtils.getCurrentPath(siteNodeId); 53 54 temp.put("REF2", path + docName); 55 references.addElement(temp); 56 } 57 while (rs.next()); 58 } 59 return references; 60 } 61 62 68 public static String changeShortName(String shortName) throws TKException 69 { 70 if (shortName == null || shortName.equals("")) 71 throw new TKUserException("Non valid name", INPUT_CANNOT_BE_EMPTY, USER_SEVERITY, false, null); 72 String name = TKUploadField.toFilename(shortName); 73 return name.toUpperCase(); 74 } 75 76 83 public static void insertPresCont( TKEvent evt, String id ) throws Throwable 84 { 85 TKQuery q = TKDBManager.newQuery(TKDBPresContIns.class); 86 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 87 q.setQueryParams( "FORM_ID", new Integer ( id ) ); 88 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 89 q.execute(); 90 q.fetchResultSet(); 91 } 92 93 100 public static void updatePresComp(TKEvent evt) throws SQLException, TKException 101 { 102 TKQuery q = TKDBManager.newQuery(TKDBPresCompUpdate.class); 103 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 104 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 105 q.setQueryParams( "COMPONENT_TYPE", new Integer ( evt.getParameter( PARAMETER, "COMPONENT_TYPE" ) ) ); 106 q.setQueryParams( "INTEGRATION_TYPE", new Integer ( evt.getParameter( PARAMETER, "INTEGRATION_TYPE" ) ) ); 107 q.setQueryParams( "INTEGRATION_NAME", evt.getParameter( PARAMETER, "INTEGRATION_NAME" ) ); 108 q.setQueryParams( "INTEGRATION_SHORTNAME", changeShortName(evt.getParameter( PARAMETER, "INTEGRATION_SHORTNAME" )) ); 109 q.execute(); 110 q.fetchResultSet(); 111 } 112 113 120 public static void updatePresCont( TKEvent evt, String id ) throws Throwable 121 { 122 TKQuery q = TKDBManager.newQuery(TKDBPresContUpdate.class); 123 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 124 q.setQueryParams( "FORM_ID", new Integer ( id ) ); 125 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 126 q.execute(); 127 q.fetchResultSet(); 128 } 129 130 137 public static void updatePresRef(TKEvent evt) throws Throwable 138 { 139 String presId = evt.getParameter( PARAMETER, "PRESENTATION_ID" ); 140 String presCompIdx = evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ); 141 String id; 142 TKVector oldVec = new TKVector(); 143 144 if( evt.getParams().hasMultiple( PARAMETER, "OLD_SUB_PRESENTATION_ID" ) ) { 146 oldVec = evt.getParams().getVector( PARAMETER, "OLD_SUB_PRESENTATION_ID" ); 147 int size = oldVec.size(); 148 for( int i = 0; i<size ; i++ ) { 149 id = (String ) oldVec.get( i ); 150 if( id!=null && isNotInNewSelection( evt, id ) ) { 151 deleteThisOne( presId, presCompIdx, id ); 152 } 153 } 154 } 155 else { 156 id = evt.getParameter( PARAMETER, "OLD_SUB_PRESENTATION_ID" ); 157 if( id!=null && isNotInNewSelection(evt, id ) ) { 158 deleteThisOne( presId, presCompIdx, id ); 159 } 160 } 161 162 if( evt.getParams().hasMultiple( PARAMETER, "SUB_PRESENTATION_ID" ) ) { 164 TKVector newVec = evt.getParams().getVector( PARAMETER, "SUB_PRESENTATION_ID" ); 165 int size = newVec.size(); 166 for( int i = 0; i<size ; i++ ) { 167 id = (String ) newVec.get( i ); 168 if( id!=null && isNotInOldSelection( evt, id, oldVec ) ) { 169 insertThisOne( presId, presCompIdx, id ); 170 } 171 } 172 } 173 else { 174 id = evt.getParameter( PARAMETER, "SUB_PRESENTATION_ID" ); 175 if( id!=null && isNotInOldSelection( evt, id, oldVec ) ) { 176 insertThisOne( presId, presCompIdx, id ); 177 } 178 } 179 } 180 181 188 public static void savePresRef(TKEvent evt) throws Throwable 189 { 190 String presId = evt.getParameter( PARAMETER, "PRESENTATION_ID" ); 191 String compType = evt.getParameter( PARAMETER, "COMPONENT_TYPE" ); 192 String intType = evt.getParameter( PARAMETER, "INTEGRATION_TYPE" ); 193 String intName = evt.getNotNullParameter( PARAMETER, "INTEGRATION_NAME" ).trim(); 194 String intSName = changeShortName(evt.getNotNullParameter( PARAMETER, "INTEGRATION_SHORTNAME" )); 195 196 TKQuery q; 197 ResultSet rs; 198 if( evt.getParams().hasMultiple( PARAMETER, "SUB_PRESENTATION_ID" ) ) { 199 TKVector newVec = evt.getParams().getVector( PARAMETER, "SUB_PRESENTATION_ID" ); 200 int size = newVec.size(); 201 q = TKDBManager.newQuery(TKDBPresRefInsert.class); 203 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 204 q.setQueryParams( "SUB_PRESENTATION_ID", new Integer ( evt.getParams().get( PARAMETER, "SUB_PRESENTATION_ID", 0 ) ) ); 205 q.setQueryParams( "COMPONENT_TYPE", new Integer ( compType ) ); 206 q.setQueryParams( "INTEGRATION_TYPE", new Integer ( intType ) ); 207 q.setQueryParams( "INTEGRATION_NAME", intName ); 208 q.setQueryParams( "INTEGRATION_SHORTNAME", intSName ); 209 q.execute(); 210 rs = q.fetchResultSet(); 211 if( rs.next() ) { String presCompIdx = Integer.toString( rs.getInt( "PRESENTATION_COMPONENT_IDX" ) ); 213 String id; 214 for( int i = 1; i<size ; i++ ) { id = (String ) newVec.get( i ); 216 insertThisOne( presId, presCompIdx, id ); 217 } 218 } 219 } 220 else { 221 q = TKDBManager.newQuery(TKDBPresRefInsert.class); 222 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 223 q.setQueryParams( "SUB_PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "SUB_PRESENTATION_ID" ) ) ); 224 q.setQueryParams( "COMPONENT_TYPE", new Integer ( compType ) ); 225 q.setQueryParams( "INTEGRATION_TYPE", new Integer ( intType ) ); 226 q.setQueryParams( "INTEGRATION_NAME", intName ); 227 q.setQueryParams( "INTEGRATION_SHORTNAME", intSName ); 228 q.execute(); 229 rs = q.fetchResultSet(); 230 } 231 } 232 233 240 public static boolean isNotInNewSelection(TKEvent evt, String id ) throws Throwable 241 { 242 boolean res = true; 243 String newId; 244 if( evt.getParams().hasMultiple( PARAMETER, "SUB_PRESENTATION_ID" ) ) { 245 TKVector vec = evt.getParams().getVector( PARAMETER, "SUB_PRESENTATION_ID" ); 246 if( vec.contains( id ) ) { 247 return false; 248 } 249 } 250 else { 251 newId = evt.getNotNullParameter( PARAMETER, "SUB_PRESENTATION_ID" ); 252 if( newId.equals( id ) ) { 253 return false; 254 } 255 } 256 return res; 257 } 258 259 266 public static boolean isNotInOldSelection( TKEvent evt, String id, TKVector victor ) throws Throwable 267 { 268 boolean res = true; 269 if( (victor != null) && (victor.size() > 0) ) { 270 if( victor.contains( id ) ) { 271 return false; 272 } 273 } 274 else { 275 String oldId = evt.getNotNullParameter( PARAMETER, "OLD_SUB_PRESENTATION_ID" ); 276 if( oldId.equals( id ) ) { 277 return false; 278 } 279 } 280 return res; 281 } 282 283 290 public static void deleteThisOne( String presId, String presCompIdx, String id ) throws Throwable 291 { 292 TKQuery q = TKDBManager.newQuery(TKDBPresRefDelete.class); 294 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 295 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( presCompIdx ) ); 296 q.setQueryParams( "SUB_PRESENTATION_ID", new Integer ( id ) ); 297 q.execute(); 298 q.fetchResultSet(); 299 } 300 301 308 public static void insertThisOne( String presId, String presCompIdx, String id ) throws Throwable 309 { 310 TKQuery q = TKDBManager.newQuery(TKDBPresRefIns.class); 312 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 313 q.setQueryParams( "SUB_PRESENTATION_ID", new Integer ( id ) ); 314 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( presCompIdx ) ); 315 q.execute(); 316 q.fetchResultSet(); 317 } 318 319 326 public static void setTemplateList( TKHTMLTemplate t ) throws Throwable 327 { 328 TKQuery q = TKDBManager.newQuery(TKDBTmplGetAll.class); 329 q.execute(); 330 ResultSet rs = q.fetchResultSet(); 331 TKDBTemplate.prepareListTemplate( rs, t, "PR_TEMPLATE_LIST" ); 332 } 333 334 341 public static String getPresName( String id ) throws Throwable 342 { 343 String name = ""; 344 if( !id.equals( "" ) ) { 345 TKQuery q = TKDBManager.newQuery(TKDBPresentationGet.class); 346 q.execute(); 347 ResultSet rs = q.fetchResultSet(); 348 int iid = Integer.parseInt( id ); 349 while( rs.next() ) { 350 if( rs.getInt( "PRESENTATION_ID" ) == iid ) { 351 return rs.getString( "PRESENTATION_NAME" ); 352 } 353 } 354 } 355 return name; 356 } 357 358 365 public static ResultSet prepareSubPresSelection(TKEvent evt) throws Throwable 366 { 367 TKQuery q = TKDBManager.newQuery(TKDBPresRefSubGet.class); 368 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 369 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 370 q.execute(); 371 ResultSet rs = q.fetchResultSet(); 372 return rs; 373 } 374 375 382 public static void savePresComp( String presId, String compType, String intType, String intName, String intSName ) throws Throwable 383 { 384 TKQuery q = TKDBManager.newQuery(TKDBPresCompInsert.class); 385 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 386 q.setQueryParams( "COMPONENT_TYPE", new Integer ( compType ) ); 387 q.setQueryParams( "INTEGRATION_TYPE", new Integer ( intType ) ); 388 q.setQueryParams( "INTEGRATION_NAME", intName ); 389 String shortName = changeShortName(intSName); 390 q.setQueryParams( "INTEGRATION_SHORTNAME", shortName ); 391 q.execute(); 392 q.fetchResultSet(); 393 } 394 395 402 public static void savePresComp( Class query, String presId, String id, String whichId, String compType, String intType, String intName, String intSName ) throws Throwable 403 { 404 TKQuery q = TKDBManager.newQuery( query ); 405 q.setQueryParams( "PRESENTATION_ID", new Integer ( presId ) ); 406 q.setQueryParams( whichId, new Integer ( id ) ); 407 q.setQueryParams( "COMPONENT_TYPE", new Integer ( compType ) ); 408 q.setQueryParams( "INTEGRATION_TYPE", new Integer ( intType ) ); 409 q.setQueryParams( "INTEGRATION_NAME", intName ); 410 String shortName = changeShortName(intSName); 411 q.setQueryParams( "INTEGRATION_SHORTNAME", shortName ); 412 q.execute(); 413 q.fetchResultSet(); 414 } 415 416 424 public static void subSelection(TKEvent evt, Class query, boolean hint ) throws Throwable 425 { 426 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "pr_compSelect.tmpl" ); 427 TKQuery q = TKDBManager.newQuery( query); 428 q.execute(); 429 ResultSet rs = q.fetchResultSet(); 430 TKDBTemplate.prepareListTemplate( rs, t, "PR_SELECTION_LIST" ); 431 t.set( evt.getParams().getClass( PARAMETER ) ); 432 t.set( "THE_FORM_ID", evt.getNotNullParameter( PARAMETER, "FORM_ID" ) ); 433 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, ContextConstants.PRESENTATIONS); 434 if (hint) 435 { 436 String messageText = LanguageManager.getText("documenttype","GROUP_HINT") ; 437 t.set("GROUP_HINT", messageText); 438 } 439 evt.finishTemplate(t); 440 } 441 442 450 public static TKVector getSelectedPres(TKEvent evt) throws Throwable 451 { 452 ResultSet rs = prepareSubPresSelection(evt); 453 TKVector vec = new TKVector(); 454 String id; 455 int i = 0; 456 while( rs.next() ) { 457 id = Integer.toString( rs.getInt( "PRESENTATION_ID" ) ); 458 vec.put( i++, new String ( id ) ); 459 } 460 return vec; 461 } 462 463 479 public static void removeOldContext( TKEvent evt, String oldComp ) throws Throwable 480 { 481 if( oldComp.equals( REFERENCE_TYPED ) ) { 482 TKQuery q = TKDBManager.newQuery(TKDBPresRefDelAll.class); 483 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 484 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 485 q.execute(); 486 q.fetchResultSet(); 487 } 488 else if( oldComp.equals( CONTENT ) || oldComp.equals( STRUCTURE ) ) { 489 TKQuery q = TKDBManager.newQuery(TKDBPresContDelete.class); 490 q.setQueryParams( "PRESENTATION_ID", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_ID" ) ) ); 491 q.setQueryParams( "PRESENTATION_COMPONENT_IDX", new Integer ( evt.getParameter( PARAMETER, "PRESENTATION_COMPONENT_IDX" ) ) ); 492 q.execute(); 493 q.fetchResultSet(); 494 } 495 } 496 497 } 498 | Popular Tags |