1 package de.webman.content.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 import com.teamkonzept.webman.mainint.db.queries.*; 9 import com.teamkonzept.webman.mainint.events.*; 10 import com.teamkonzept.lib.*; 11 import com.teamkonzept.field.*; 12 import com.teamkonzept.field.db.*; 13 import com.teamkonzept.db.*; 14 import de.webman.content.workflow.*; 15 import de.webman.util.legacy.Legacy; 16 import java.sql.*; 17 18 19 28 public class CESaveNewNodeHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 29 { 30 31 private CESaveNewNodeHandler() 32 {} 33 34 35 private static CESaveNewNodeHandler instance = new CESaveNewNodeHandler(); 36 37 public static CESaveNewNodeHandler getInstance() 38 { 39 return instance; 40 } 41 42 public void handleEvent(TKEvent evt) throws TKException 43 { 44 try 45 { 46 CEUtils.checkEvent(evt); 47 50 String sNodeType = evt.getParameter( PARAMETER, "NEW_NODE_TYPE" ); 51 String sConForm = (evt.getParameter( PARAMETER, "NEW_CONTENT_NODE_FORM" ))==null?"":evt.getParameter( PARAMETER, "NEW_CONTENT_NODE_FORM" ); 52 if (!sNodeType.equals(DIRECTORY_NODE) && sConForm.equals("")) 53 { 54 throw new TKUserException("Kein Formular definiert", NO_FORM_DEFINED, USER_SEVERITY, false, null); 55 } 56 if (sNodeType.equals(SINGLE)) 57 { 58 evt.getParams().put(PARAMETER, "CONTENT_FORM", sConForm); 59 CEEditHandler.getInstance().handleEvent(evt); 60 return; 61 } 62 String sParId = evt.getParameter( PARAMETER, "CONTENT_NODE_ID" ); 63 String sNodeName = evt.getParameter( PARAMETER, "NEW_CONTENT_NODE_NAME" ); 64 String sNodeShortName = evt.getParameter( PARAMETER, "CONTENT_NODE_SHORTNAME" ); 65 if( !sNodeType.equals(SINGLE) && !CEUtils.isValidPathname( sNodeShortName ) ) 67 throw new TKUserException("Kein gültiger Pfadname", NO_VALID_PATHNAME, USER_SEVERITY, true, null); 68 69 TKQuery q = TKDBManager.newQuery(TKDBContentTreeInsertNode.class); 70 q.setQueryParams( "NODE_ID", new Integer (sParId) ); 71 q.setQueryParams( "CONTENT_NODE_NAME", sNodeName ); 72 q.setQueryParams( "CONTENT_NODE_SHORTNAME", sNodeShortName ); 73 q.setQueryParams( "CONTENT_NODE_TYPE", new Integer (sNodeType) ); 74 q.setQueryParams( "TREE_ID", new Integer (0) ); 75 q.setQueryParams( "PROTOTYPE_ID", TKNull.NULL ); 76 77 if( sNodeType.equals( DIRECTORY_NODE ) ) { 78 q.setQueryParams( "CONTENT_FORM", TKNull.NULL ); 79 } 80 else { 81 q.setQueryParams( "CONTENT_FORM", new Integer (sConForm) ); 82 } 83 q.execute(); 84 ResultSet rs = q.fetchResultSet(); 85 TKHTMLTemplate frame = null; 86 if( sNodeType.equals( DIRECTORY_NODE ) ) { 87 frame = evt.getPrepHTMLTemplate( "f_ce.tmpl" ); 89 HTMLUtils.fillFrameSet( frame, LEFT_FRAME_WIDTH, "CE_SHOWLIST", "CE_EMPTY" ); 90 } 91 else if( sNodeType.equals( GROUP ) ) { 92 frame = evt.getPrepHTMLTemplate( "f_ce.tmpl" ); 94 HTMLUtils.fillFrameSet( frame, LEFT_FRAME_WIDTH, "CE_SHOWLIST", "CE_GROUP_LIST" ); 95 } 96 else { 97 frame = evt.getPrepHTMLTemplate( "ce_fields.tmpl" ); } 102 String newDestination = ""; 104 int newNodeId = 0; 105 if( rs.next() ) { 107 108 newNodeId = rs.getInt("CONTENT_NODE_ID"); newDestination = Integer.toString( newNodeId ); 110 frame.set( "CONTENT_NODE_ID", Integer.toString( newNodeId ) ); 111 112 if( sNodeType.equals( SINGLE ) ) 113 { 114 131 } else if( sNodeType.equals( GROUP ) ) { 133 frame.set( "GROUP_CONTENT_NODE_ID", Integer.toString( newNodeId ) ); 134 frame.set( "GROUP_CONTENT_NODE_NAME", sNodeName ); 135 frame.set( "GROUP_CONTENT_NODE_SHORTNAME", sNodeShortName ); 136 } 137 } 138 if( sNodeType.equals( SINGLE ) ) 139 { 140 evt.getParams().put(PARAMETER, "CONTENT_NODE_NAME", sNodeName); 142 evt.getParams().put(PARAMETER, "CONTENT_NODE_SHORTNAME", sNodeShortName); 143 evt.getParams().put(PARAMETER, "CONTENT_NODE_TYPE", sNodeType); 144 evt.getParams().put(PARAMETER, "CONTENT_FORM", sConForm); 145 evt.getParams().put(PARAMETER, "INSTANCE_ID", new Integer (-1)); 146 evt.getParams().put(PARAMETER, "CONTENT_NODE_ID", Integer.toString( newNodeId )); 147 CEEditHandler.getInstance().handleEvent(evt); 148 return; 149 } 150 frame.set( "CONTENT_NODE_NAME", sNodeName ); 151 frame.set( "CONTENT_NODE_SHORTNAME", sNodeShortName ); 152 frame.set( "CONTENT_NODE_TYPE", sNodeType ); 153 frame.set( "CONTENT_FORM", sConForm ); 154 TKVector openNodes = new TKVector(); 155 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 156 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 157 } 158 else { 159 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 161 } 162 if ( sNodeType.equals( DIRECTORY_NODE )) { 163 openNodes.addElement(Integer.toString( newNodeId )); 164 } 165 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, frame.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 166 frame.setListIterator( iterator1 ); 167 168 frame.set( "DESTINATION", newDestination ); 169 evt.finishTemplate(frame); 170 } 171 catch (Throwable e) 172 { 173 throw WebmanExceptionHandler.getException(e); 175 } 176 } 177 178 public boolean isHandler(TKEvent evt) 179 { 180 return evt.getName().equalsIgnoreCase("CE_SAVE_NEW_NODE"); 181 } 182 } 183 | Popular Tags |