1 package de.webman.sitetree.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 import java.util.*; 21 22 28 public class STArrangeOpenDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 29 { 30 private STArrangeOpenDirHandler() 31 {} 32 33 private static STArrangeOpenDirHandler instance = new STArrangeOpenDirHandler(); 34 35 public static STArrangeOpenDirHandler getInstance() 36 { 37 return instance; 38 } 39 40 public void handleEvent(TKEvent evt) throws TKException 41 { 42 try 43 { 44 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.SITE_TREE); 45 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "st_arrange.tmpl" ); 46 String dest = evt.getParameter( PARAMETER, "SITE_NODE_ID" ); 47 String openNodeId = evt.getParameter( PARAMETER, "NODE_ID" ); 48 String closeNodeId = evt.getParameter( PARAMETER, "SITE_NODE_PARENT" ); 49 50 TKVector openNodes = new TKVector(); 51 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 52 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 53 } 54 else { 55 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 56 } 57 openNodes = TreeUtils.updateOpenNodes( openNodes, openNodeId, closeNodeId, dest,TKDBSiteTreeIsChild.class ); 58 59 TKDBResult tree = null; 60 TKDBResult branch; 61 TKQuery q; 62 int size = openNodes.size(); 63 for( int i = 0; i<size ; i++ ) { 64 String id = (String ) openNodes.get( i ); 65 if( id!=null ) { 66 q = TKDBManager.newQuery(TKDBSiteTreeGetOpen.class); 67 if( id.equals( "-1" ) ) { 68 q.setQueryParams( "NODE_ID", TKNull.NULL ); 69 } 70 else { 71 q.setQueryParams( "NODE_ID", new Integer (id) ); 72 } 73 q.execute(); 74 branch = new TKDBResult( q.fetchResultSet() ); 75 if( tree != null ) { 76 tree = TreeUtils.mergeIntoTree( tree, branch, "SITE_NODE_ID" ); 77 } 78 else { 79 tree = branch; 80 } 81 } 82 } 83 84 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 86 t.setListIterator( iterator1 ); 87 88 int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" ); 89 TKOpenSiteTreeIterator iterator = new TKOpenSiteTreeIterator( tree, t.getListIterator(), "ST_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 90 t.setListIterator( iterator ); 91 t.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+1)); 92 t.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2)); 93 evt.finishTemplate(t); 94 } 95 catch (Throwable e) 96 { 97 throw WebmanExceptionHandler.getException(e); 99 } 100 } 101 102 public boolean isHandler(TKEvent evt) 103 { 104 return evt.getName().equalsIgnoreCase("ST_ARRANGE_OPENDIR"); 105 } 106 } 107 | Popular Tags |