1 package de.webman.sitetree.eventhandler; 2 3 4 import com.teamkonzept.web.*; 5 import com.teamkonzept.webman.*; 6 import com.teamkonzept.webman.db.TKWebmanDBManager; 7 import com.teamkonzept.webman.mainint.*; 8 import com.teamkonzept.webman.mainint.db.*; 9 10 11 import com.teamkonzept.webman.mainint.db.queries.*; 12 import com.teamkonzept.webman.mainint.events.*; 13 import com.teamkonzept.lib.*; 14 import com.teamkonzept.field.*; 15 import com.teamkonzept.field.db.*; 16 import com.teamkonzept.db.*; 17 import com.teamkonzept.publishing.markups.*; 18 19 import java.sql.*; 20 import java.io.*; 21 import java.util.*; 22 23 29 public class STSaveStructureDocHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 30 { 31 32 private STSaveStructureDocHandler() 33 {} 34 35 36 private static STSaveStructureDocHandler instance = new STSaveStructureDocHandler(); 37 38 39 public static STSaveStructureDocHandler getInstance() 40 { 41 return instance; 42 } 43 44 49 public void checkUserRights(String user, String event) throws TKException 50 { 51 try 52 { 53 WebManEvent.checkEvent(user, event, ContextConstants.SITE_TREE); 54 } 55 catch (Throwable e) 56 { 57 throw WebmanExceptionHandler.getException(e); 58 } 59 } 60 61 public void saveStructureDoc(Integer siteNodeId, Integer formId, Integer contentId, boolean update) throws TKException 62 { 63 try 64 { 65 TKQuery q; 66 if( !update ) 67 { 68 q = TKDBManager.newQuery(TKDBStructContPut.class); 70 } 71 else 72 { 73 q = TKDBManager.newQuery(TKDBStructContUpdate.class); 75 } 76 q.setQueryParams( "SITE_NODE_ID", siteNodeId ); 77 q.setQueryParams( "FORM_ID", formId ); 78 q.setQueryParams( "CONTENT_ID", contentId ); 79 q.execute(); 80 q.fetchResultSet(); 81 } 82 catch (Throwable e) 83 { 84 throw WebmanExceptionHandler.getException(e); 85 } 86 } 87 88 public void handleEvent(TKEvent evt) throws TKException 89 { 90 try 91 { 92 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.SITE_TREE); 93 String sConId = evt.getNotNullParameter( PARAMETER, "CONTENT_ID" ); 95 int formId = Integer.parseInt( evt.getParameter( PARAMETER, "FORM_ID" ) ); 96 97 TKFormDBData data = new TKFormDBData( formId, STRUCTURE_FORM_TYPE ); 98 TKFormDBInterface.Get( data ); 99 TKBaseField field = TKFieldRegistry.getFieldFromDB( data ); 100 101 TKHashtable fieldContext = new TKHashtable(); 102 Object realData = field.compileData( "", evt.getParams().getClass( PARAMETER ), fieldContext ); 103 104 TKContentDBData conDB; 105 int conId; 106 107 if (!sConId.equals("")) 109 { 110 conId = Integer.parseInt( sConId ); 112 TKQuery q = TKDBManager.newQuery(DeleteStrucContentValue.class); 113 q.setQueryParams("CONTENT_ID", new Integer (sConId)); 114 q.execute(); 115 } 116 TKQuery q = TKDBManager.newQuery(TKDBContentNewContent.class); 118 q.execute(); 119 ResultSet rs = q.fetchResultSet(); 120 rs.next(); 121 conId = rs.getInt( "CONTENT_ID" ); 122 conDB = new TKContentDBData(); 123 conDB.content_id = conId; 124 field.insertDataIntoDB( conDB, realData ); 125 TKContentDBInterface.Put( conDB ); 126 127 int siteNodeId = Integer.parseInt( evt.getParameter( PARAMETER, "SITE_NODE_ID" ) ); 128 if( sConId.equals("") ) 129 { 130 q = TKDBManager.newQuery(TKDBStructContPut.class); 132 } 133 else 134 { 135 q = TKDBManager.newQuery(TKDBStructContUpdate.class); 137 } 138 q.setQueryParams( "SITE_NODE_ID", new Integer ( siteNodeId ) ); 139 q.setQueryParams( "FORM_ID", new Integer ( formId ) ); 140 q.setQueryParams( "CONTENT_ID", new Integer ( conId ) ); 141 q.execute(); 142 rs = q.fetchResultSet(); 143 144 STEditHandler.getInstance().handleEvent(evt); 145 } 146 catch (Throwable e) 147 { 148 throw WebmanExceptionHandler.getException(e); 150 } 151 } 152 153 157 public boolean isHandler(TKEvent evt) 158 { 159 return evt.getName().equalsIgnoreCase("ST_SAVE_STRUC"); 160 } 161 } 162 | Popular Tags |