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.queries.*; 7 import com.teamkonzept.webman.mainint.events.*; 8 import com.teamkonzept.lib.*; 9 import com.teamkonzept.db.*; 10 import de.webman.acl.*; 11 13 24 public class CEOpenMultDirHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants 25 { 26 27 private CEOpenMultDirHandler() 28 {} 29 30 private static CEOpenMultDirHandler instance = new CEOpenMultDirHandler(); 31 32 public static CEOpenMultDirHandler getInstance() 33 { 34 return instance; 35 } 36 37 public void handleEvent(TKEvent evt) throws TKException 38 { 39 try 40 { 41 CEUtils.checkEvent(evt); 42 43 TKHTMLTemplate left = evt.getPrepHTMLTemplate( "ce_nodeList.tmpl" ); 48 CEUtils.keepSortParameter(evt, left); 50 51 String dest = evt.getParameter( PARAMETER, "CONTENT_NODE_ID" ); 52 String openNodeId = evt.getParameter( PARAMETER, "NODE_ID" ); 53 String closeNodeId = evt.getParameter( PARAMETER, "CONTENT_NODE_PARENT" ); 54 55 TKVector openNodes = new TKVector(); 56 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 57 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 58 } 59 else { 60 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 61 } 62 openNodes = TreeUtils.updateOpenNodes( openNodes, openNodeId, closeNodeId, dest, TKDBContentTreeIsChild.class ); 63 64 TKDBResult tree = null; 68 TKDBResult branch; 69 TKQuery q; 70 int size = openNodes.size(); 71 for( int i = 0; i<size ; i++ ) { 72 String id = (String ) openNodes.get( i ); 73 if( id!=null ) { 74 q = TKDBManager.newQuery(TKDBContentTreeGetOpen.class); 75 if( id.equals( "-1" ) ) { 77 q.setQueryParams( "NODE_ID", TKNull.NULL ); 78 } 80 else { 81 q.setQueryParams( "NODE_ID", new Integer (id) ); 82 } 84 q.execute(); 85 branch = new TKDBResult( q.fetchResultSet() ); 86 if( tree != null ) { 87 tree = TreeUtils.mergeIntoTree( tree, branch, "CONTENT_NODE_ID" ); 88 } 89 else { 90 tree = branch; 91 } 92 } 93 } 94 95 WebManEvent.fillInContentEvents(evt.getRemoteUser(), evt.getName(), CONTENT_EDIT, tree); 97 98 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, left.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 100 left.setListIterator( iterator1 ); 101 102 int maxDepth = TreeUtils.getMaxDepth( tree, "CONTENT" ); 103 TKOpenContentTreeIterator iterator2 = new TKOpenContentTreeIterator( tree, left.getListIterator(), "CE_NODE_LIST", Integer.parseInt( dest ), maxDepth ); 104 left.setListIterator( iterator2 ); 105 106 left.set( "MAXDEPTH_PLUS_ONE", Integer.toString(maxDepth+1)); 107 left.set( "MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2)); 108 109 left.set( "RTARGET", RIGHT_TARGET ); 110 left.set( "LTARGET", LEFT_TARGET ); 111 LoginFactory factory = LoginFactory.getInstance(); 113 Login login = factory.getLogin(evt.getRemoteUser()); 114 Event event = EventFactory.getInstance().getEvent("DU_START"); 115 if (login.isAllowed(event.getID(), ContextConstants.DUPLICATION_TOOL)) 116 { 117 left.set("DU_START", "1"); 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 126 evt.finishTemplate(left); 127 } 129 catch (Throwable e) 130 { 131 throw WebmanExceptionHandler.getException(e); 133 } 134 } 135 136 public boolean isHandler(TKEvent evt) 137 { 138 return evt.getName().equalsIgnoreCase("CE_OPEN_MULTDIR"); 139 } 140 } 141 | Popular Tags |