1 package de.webman.acl.eventhandler; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.webman.*; 5 import de.webman.acl.*; 6 import com.teamkonzept.webman.mainint.*; 7 import com.teamkonzept.webman.mainint.db.queries.*; 8 import com.teamkonzept.webman.mainint.events.*; 9 import com.teamkonzept.lib.*; 10 import com.teamkonzept.db.*; 11 12 13 18 public class ACCENodeListEventHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants 19 { 20 private ACCENodeListEventHandler() 21 {} 22 23 private static ACCENodeListEventHandler instance = new ACCENodeListEventHandler(); 24 25 public static ACCENodeListEventHandler getInstance() 26 { 27 return instance; 28 } 29 30 public void handleEvent(TKEvent evt) throws TKException 31 { 32 try 33 { 34 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.ACCESS_CONTROL); 35 String uId = evt.getParameter( PARAMETER, "LOGIN_ID"); 36 TKHTMLTemplate left = evt.getPrepHTMLTemplate( "ac_ce_nodeList.tmpl" ); 37 String dest = evt.getNotNullParameter( PARAMETER, "DESTINATION" ); 38 39 if (uId != null && uId.length() > 0) 40 { 41 left.set("LOGIN_ID", uId); 42 Login login=LoginFactory.getInstance().getLogin(new Integer (uId)); 43 if (login != null) 44 { 45 left.set("LOGIN_NAME", login.getName()); 46 } 47 } 48 49 TKVector openNodes = new TKVector(); 50 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 51 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 52 } 53 else { 54 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 55 } 56 57 TKQuery q; 58 TKDBResult tree = null; 59 TKDBResult branch; 60 int size = openNodes.size(); 61 for( int i = 0; i<size ; i++ ) { 62 String id = (String ) openNodes.get( i ); 63 if( id!=null ) { 64 q = TKDBManager.newQuery(TKDBContentTreeGetOpen.class); 65 if( id.equals( "-1" ) ) { 66 q.setQueryParams( "NODE_ID", TKNull.NULL ); 67 } 68 else { 69 q.setQueryParams( "NODE_ID", new Integer (id) ); 70 } 71 q.execute(); 72 branch = new TKDBResult( q.fetchResultSet() ); 73 if( tree != null ) { 74 tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" ); 75 } 76 else { 77 tree = branch; 78 } 79 } 80 } 81 82 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 84 left.setListIterator( iterator1 ); 85 86 int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" ); 87 TKOpenContentTreeIterator iterator; 88 if( !dest.equals( "" ) ) { 89 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 90 } 91 else { 92 left.set( "IS_TOP", "1" ); 93 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", maxDepth ); 94 } 95 left.setListIterator( iterator ); 96 97 left.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+1)); 98 left.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2)); 99 100 left.set( "RTARGET", RIGHT_TARGET ); 101 left.set( "LTARGET", LEFT_TARGET ); 102 103 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), left, ACCESS_CONTROL); 104 evt.finishTemplate(left); 105 } 106 catch (Throwable e) 107 { 108 throw WebmanExceptionHandler.getException(e); 110 } 111 } 112 113 public boolean isHandler(TKEvent evt) 114 { 115 return evt.getName().equalsIgnoreCase("AC_CE_NODE_LIST"); 116 } 117 } 118 | Popular Tags |