1 package de.webman.content.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 import de.webman.acl.LoginFactory; 13 import de.webman.acl.Login; 14 import de.webman.acl.Event; 15 import de.webman.acl.EventFactory; 16 17 23 public class CENodeListMultHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants 24 { 25 26 private CENodeListMultHandler() 27 {} 28 29 30 private static CENodeListMultHandler instance = new CENodeListMultHandler(); 31 32 public static CENodeListMultHandler getInstance() 33 { 34 return instance; 35 } 36 37 public void handleEvent(TKEvent evt) throws TKException 38 { 39 try 40 { 41 CEUtils.checkEvent(evt); 42 TKHTMLTemplate left = evt.getPrepHTMLTemplate( "ce_nodeList.tmpl" ); 43 String dest = evt.getNotNullParameter( PARAMETER, "DESTINATION" ); 44 45 CEUtils.keepSortParameter(evt, left); 47 48 TKVector openNodes = new TKVector(); 49 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 50 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 51 } 52 else { 53 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 54 } 55 56 TKQuery q; 57 TKDBResult tree = null; 58 TKDBResult branch; 59 int size = (openNodes == null ? 0 : openNodes.size()); 61 for( int i = 0; i<size ; i++ ) { 62 String id = (String ) openNodes.get( i ); 63 if( id!=null && !id.equals("")) { 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 java.sql.ResultSet rs = q.fetchResultSet(); 73 branch = new TKDBResult( rs ); 74 75 77 if( tree != null ) { 78 tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" ); 79 } 80 else { 81 tree = branch; 82 } 83 } 84 } 85 86 WebManEvent.fillInContentEvents(evt.getRemoteUser(), evt.getName(), CONTENT_EDIT, tree); 88 89 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 91 left.setListIterator( iterator1 ); 92 93 int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" ); 94 TKOpenContentTreeIterator iterator; 95 if( !dest.equals( "" ) ) { 96 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 97 } 98 else { 99 left.set( "IS_TOP", "1" ); 100 iterator = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", maxDepth ); 101 } 102 left.setListIterator( iterator ); 103 104 left.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth + 1) ); 105 left.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth + 2) ); 106 107 left.set( "RTARGET", RIGHT_TARGET ); 108 left.set( "LTARGET", LEFT_TARGET ); 109 110 LoginFactory factory = LoginFactory.getInstance(); 112 Login login = factory.getLogin(evt.getRemoteUser()); 113 Event event = EventFactory.getInstance().getEvent("DU_START"); 114 if (login.isAllowed(event.getID(), ContextConstants.DUPLICATION_TOOL)) 115 { 116 left.set("DU_START", "1"); 117 } 118 119 event = EventFactory.getInstance().getEvent("CE_ARRANGE_START"); 121 if (login.isAllowed(event.getID(), ContextConstants.CONTENT_EDIT)) 122 { 123 left.set("CE_ARRANGE_START", "1"); 124 } 125 131 133 evt.finishTemplate(left); 134 } 135 catch (Throwable e) 136 { 137 throw WebmanExceptionHandler.getException(e); 139 } 140 } 141 142 public boolean isHandler(TKEvent evt) 143 { 144 return evt.getName().equalsIgnoreCase("CE_SHOWLIST"); 145 } 146 } 147 | Popular Tags |