1 package de.webman.content.eventhandler; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.webman.*; 5 import com.teamkonzept.webman.mainint.*; 6 import com.teamkonzept.webman.mainint.db.*; 7 import com.teamkonzept.webman.mainint.db.queries.*; 8 import com.teamkonzept.webman.mainint.events.*; 9 import com.teamkonzept.lib.*; 10 import com.teamkonzept.field.*; 11 import com.teamkonzept.field.db.*; 12 import com.teamkonzept.db.*; 13 14 import java.sql.*; 15 16 22 public class CEArrangeOpenDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 23 { 24 private CEArrangeOpenDirHandler() 25 {} 26 27 private static CEArrangeOpenDirHandler instance = new CEArrangeOpenDirHandler(); 28 29 public static CEArrangeOpenDirHandler getInstance() 30 { 31 return instance; 32 } 33 34 public void handleEvent(TKEvent evt) throws TKException 35 { 36 try 37 { 38 CEUtils.checkEvent(evt); 39 40 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "ce_arrange.tmpl" ); 41 String dest = evt.getParameter( PARAMETER, "CONTENT_NODE_ID" ); 42 String openNodeId = evt.getParameter( PARAMETER, "NODE_ID" ); 43 String closeNodeId = evt.getParameter( PARAMETER, "CONTENT_NODE_PARENT" ); 44 45 TKVector openNodes = new TKVector(); 46 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 47 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 48 } 49 else { 50 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 51 } 52 openNodes = TreeUtils.updateOpenNodes( openNodes, openNodeId, closeNodeId, dest, TKDBContentTreeIsChild.class ); 53 54 TKDBResult tree = null; 55 TKDBResult branch; 56 TKQuery q; 57 int size = openNodes.size(); 58 for( int i = 0; i<size ; i++ ) { 59 String id = (String ) openNodes.get( i ); 60 if( id!=null ) { 61 q = TKDBManager.newQuery(TKDBContentTreeGetOpen.class); 62 if( id.equals( "-1" ) ) { 63 q.setQueryParams( "NODE_ID", TKNull.NULL ); 64 } 65 else { 66 q.setQueryParams( "NODE_ID", new Integer (id) ); 67 } 68 q.execute(); 69 branch = new TKDBResult( q.fetchResultSet() ); 70 if( tree != null ) { 71 tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" ); 72 } 73 else { 74 tree = branch; 75 } 76 } 77 } 78 79 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 81 t.setListIterator( iterator1 ); 82 83 int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" ); 84 TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator( tree, t.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 85 t.setListIterator( iterator ); 86 t.set( "MAXDEPTH_PLUS_ONE", Integer.toString( maxDepth+1 )); 87 t.set( "MAXDEPTH_PLUS_TWO", Integer.toString( maxDepth+2 )); 88 evt.finishTemplate(t); 89 } 90 catch (Throwable e) 91 { 92 throw WebmanExceptionHandler.getException(e); 94 } 95 } 96 97 public boolean isHandler(TKEvent evt) 98 { 99 return evt.getName().equalsIgnoreCase("CE_ARRANGE_OPENDIR"); 100 } 101 102 } 103 | Popular Tags |