1 package de.webman.form.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 9 10 import com.teamkonzept.webman.mainint.db.queries.*; 11 import com.teamkonzept.webman.mainint.events.*; 12 import com.teamkonzept.lib.*; 13 import com.teamkonzept.field.*; 14 import com.teamkonzept.field.db.*; 15 import com.teamkonzept.db.*; 16 import com.teamkonzept.publishing.markups.*; 17 18 import java.sql.*; 19 import java.io.*; 20 21 28 public class CTTestHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 29 { 30 31 final static int MAX_FIELD_NAME_LENGTH = 80; 32 33 private CTTestHandler() 34 {} 35 36 private static CTTestHandler instance = new CTTestHandler(); 37 38 public static CTTestHandler getInstance() 39 { 40 return instance; 41 } 42 43 public void handleEvent(TKEvent evt) throws TKException 44 { 45 try 46 { 47 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.CONTENT_TREE); 48 int formType = Integer.parseInt( evt.getParameter( PARAMETER, "FORM_TYPE" ) ); 49 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "ct_fields.tmpl" ); 50 TKHashtable fieldContext = new TKHashtable(); 51 TKBaseField field = CTUtils.getStructure( formType ); 52 53 58 59 TKHashtable realData = (TKHashtable) field.compileData( "", evt.getParams().getClass( PARAMETER ), fieldContext ); TKBaseField tmpField = null; 61 62 if (formType == FRAGMENT_FORM_TYPE) 63 { 64 TKFieldSwitchData data = (TKFieldSwitchData) realData.get(TKBaseField.SUB_TYPE_KEY); 65 tmpField = TKFieldRegistry.getFieldFromData(data.alternative, data.data); } 67 else 68 { 69 if (realData.get(TKBaseField.NAME_KEY) == null) 71 { 72 realData.put(TKBaseField.NAME_KEY, CTUtils.generateFieldName(realData.get(TKBaseField.SHOW_NAME_KEY).toString(), 73 MAX_FIELD_NAME_LENGTH)); 74 } 75 76 tmpField = TKFieldRegistry.getFieldFromData(realData); 77 } 78 79 TKFormDBData tmpDB = new TKFormDBData( 0, TEMP_CONTENT_FORM_TYPE ); TKFormDBInterface.New( tmpDB ); 81 int tmpFid = tmpDB.form_id; 82 tmpField.insertIntoDB( tmpDB ); 83 TKFormDBInterface.Put( tmpDB ); 84 85 tmpField.fillIntoTemplate( t, tmpField.getDefault(), "" ); CTUtils.keepCTContext( evt, t ); 87 CTUtils.switchTest( t, true ); 88 t.set( "TMP_FORM_ID", Integer.toString( tmpFid ) ); WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, CONTENT_TREE); 90 evt.finishTemplate(t); 91 } 92 catch (Throwable e) 93 { 94 throw WebmanExceptionHandler.getException(e); 96 } 97 } 98 99 public boolean isHandler(TKEvent evt) 100 { 101 return evt.getName().equalsIgnoreCase("CT_TEST"); 102 } 103 } 104 | Popular Tags |