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 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.form.Form; 15 16 22 public class CTSaveAsHandler 23 extends DefaultEventHandler 24 implements ParameterTypes, 25 FrameConstants, 26 DatabaseDefaults 27 { 28 29 32 private static final CTSaveAsHandler INSTANCE = new CTSaveAsHandler(); 33 34 37 private CTSaveAsHandler () 38 { 39 } 41 42 47 public static CTSaveAsHandler getInstance () 48 { 49 return INSTANCE; 50 } 51 52 58 public void handleEvent (TKEvent event) 59 throws TKException 60 { 61 try 62 { 63 WebManEvent.checkEvent(event.getRemoteUser(), event.getName(), ContextConstants.CONTENT_TREE); 65 66 Form form = new Form(Integer.valueOf(event.getParameter(PARAMETER, "FORM_ID"))); 68 69 String formName = event.getParameter(PARAMETER, "NEW_FORM_NAME"); 71 String formDescription = event.getParameter(PARAMETER, "NEW_FORM_DESCRIPTION"); 72 73 if (formName == null || formName.trim().length() == 0) 74 { 75 formName = CTUtils.generateFieldName(formDescription, TKInputField.SMALL_DEFAULT_LENGTH); 77 } 78 else 79 { 80 if (CTUtils.isAmbiguousFormName(null, formName.toUpperCase())) 81 { 82 refuse(event, "FORM_NAME"); 84 return; 85 } 86 } 87 88 if (CTUtils.isAmbiguousFormDescription(null, formDescription)) 89 { 90 refuse(event, "FORM_DESCRIPTION"); 92 return; 93 } 94 95 TKFormDBData data = new TKFormDBData(form.getIdentifierAsInt(), form.getTypeAsInt()); 97 TKFormDBInterface.Get(data); 98 TKBaseField field = TKFieldRegistry.getFieldFromDB(data); 99 100 TKFormDBData newDB = new TKFormDBData(0, form.getTypeAsInt()); 102 TKFormDBInterface.New(newDB); 103 field.insertIntoDB(newDB); 104 105 ((TKFieldTableData)newDB.field.get(0)).field_name = formName.toUpperCase(); 107 ((TKFieldTableData)newDB.field.get(0)).field_show_name = formDescription; 108 TKFormDBInterface.Put(newDB); 109 110 CTFramesHandler.getInstance().handleEvent(event); 112 } 113 catch (Throwable e) 114 { 115 throw WebmanExceptionHandler.getException(e); 117 } 118 } 119 120 127 public boolean isHandler (TKEvent event) 128 { 129 return event.getName().equalsIgnoreCase("CT_SAVE_AS"); 130 } 131 132 139 private void refuse (TKEvent event, String error) 140 throws Throwable  141 { 142 TKHTMLTemplate frame = event.getPrepHTMLTemplate("f_ct.tmpl"); 144 frame.set("FORM_ID", event.getParameter(PARAMETER, "FORM_ID")); 145 146 if (event.getParameter(PARAMETER, "NEW_FORM_NAME") != null) 147 { 148 frame.set("NEW_FORM_NAME", event.getParameter(PARAMETER, "NEW_FORM_NAME")); 149 } 150 151 frame.set("NEW_FORM_DESCRIPTION", event.getParameter(PARAMETER, "NEW_FORM_DESCRIPTION")); 152 frame.set("ERROR", error); 153 154 HTMLUtils.fillFrameSet(frame, LEFT_FRAME_WIDTH_SMALL, "CT_SHOWLIST", "CT_DUPLICATE"); 156 WebManEvent.fillEventsIntoTemplate(event.getRemoteUser(), frame, CONTENT_TREE); 157 event.finishTemplate(frame); 158 } 159 160 } 161 | Popular Tags |