1 package com.teamkonzept.webman.field; 2 3 import com.teamkonzept.lib.*; 4 import com.teamkonzept.lib.templates.*; 5 import com.teamkonzept.publishing.markups.*; 6 import com.teamkonzept.web.*; 7 import com.teamkonzept.field.*; 8 import com.teamkonzept.field.db.*; 9 import com.teamkonzept.webman.attr.*; 10 import com.teamkonzept.international.LanguageManager; 11 import org.w3c.dom.*; 12 13 19 public class TKWMTextAttrField 20 extends TKTextField 21 { 22 24 public static final String CLASS_ID = "ATTR_TEXT"; 25 26 29 public TKWMTextAttrField () 30 { 31 super(); 32 } 33 34 public TKWMTextAttrField (String name, int rows, int cols, int maxSize) 35 { 36 super( name, rows, maxSize, cols ); 37 } 38 39 public TKWMTextAttrField (String name, int rows, int cols, int maxSize, String showName) { 40 41 super( name, rows, cols, maxSize, showName ); 42 } 43 44 47 public TKFieldGroup getDefGroup(TKFieldSwitch allSwitch, TKFieldSwitchList allSwitchList) 48 { 49 TKBaseField [] textArray = { 50 new TKInputField( TKTextField.NAME_KEY, 51 TKInputField.SMALL_DEFAULT_SIZE, 52 TKInputField.SMALL_DEFAULT_LENGTH, 53 LanguageManager.getText(LANGUAGE_CONTEXT, "INPUT_NAME"), 54 TKInputField.CHECK_STRING), 55 new TKInputField( TKTextField.SHOW_NAME_KEY, 56 TKInputField.LARGE_DEFAULT_SIZE, 57 TKInputField.LARGE_DEFAULT_LENGTH, 58 LanguageManager.getText(LANGUAGE_CONTEXT, "INPUT_SHOWNAME"), 59 TKInputField.CHECK_STRING), 60 new TKInputField( TKTextField.COLS_KEY, 3, 3, LanguageManager.getText(LANGUAGE_CONTEXT, "TEXTFIELD_WIDTH"), TKInputField.CHECK_INTEGER), 61 new TKInputField( TKTextField.ROWS_KEY, 3, 3, LanguageManager.getText(LANGUAGE_CONTEXT, "TEXTFIELD_HEIGHT"), TKInputField.CHECK_INTEGER), 62 new TKInputField( MAX_SIZE_KEY, 6, 6, LanguageManager.getText(LANGUAGE_CONTEXT, "INPUT_MAXLENGTH"), TKInputField.CHECK_OPTIONAL_INTEGER) 63 64 }; 65 TKFieldGroup textGroup = 66 new TKFieldGroup( TKWMTextAttrField.CLASS_ID, new TKVector( textArray ), LanguageManager.getText(LANGUAGE_CONTEXT, TKWMTextAttrField.CLASS_ID) ); 67 return textGroup; 68 } 69 70 public Object compileData (String prefix, TKHashtable data, TKHashtable context) 71 { 72 TKMarkupAdmin.setup(); 73 Object [] args = new Object [1]; 74 args[0] = fieldName; 75 String text = (String ) data.get(prefix+fieldName); 76 TKWMTextAttrData attrData = new TKWMTextAttrData (prefix+fieldName,text,data); 77 if (attrData.hasDiagnostics() && context != null) 79 { 80 TKHashtable table = new TKHashtable (); 81 table.put ("DIAG","attributiertes Textfeld "+fieldName+" enthält fehlerhaften Content"); 82 table.put ("PATH",prefix+fieldName); 83 addToContext (table,DIAGS_KEY,context); 84 } 85 if (maxSize > 0) 86 { 87 if (attrData.getXML().length() > maxSize && context != null) 88 { 89 TKHashtable table = new TKHashtable (); 90 table.put ("DIAG",LanguageManager.getText(LANGUAGE_CONTEXT, "TEXTFIELD_TOO_LONG", args)); 91 table.put ("PATH",prefix+fieldName); 92 addToContext (table,DIAGS_KEY,context); 93 } 94 } 95 return attrData; 96 } 97 98 public Object compileData( String prefix, TKMarkupNode data, TKHashtable context ) 99 { 100 TKXmlMarkup markup = data == null ? null : (TKXmlMarkup) data.markup; 101 if (markup == null) { return null;} 102 103 if (!markup.name.equals (getName())) { 104 return null; 105 } 106 107 TKXmlTree tree = (TKXmlTree) data.tree; 108 if (tree == null) { return null;} 109 110 String val = tree.convert2Markup(); 111 val = val == null ? (String ) getDefault() : val.trim(); 112 113 TKWMTextAttrData attrData = new TKWMTextAttrData (val); 114 attrData.scanData(); 115 116 return attrData; 117 } 118 119 protected void fillDataIntoNode(Document doc, Element node, Object data) throws DOMException 120 { 121 Element me = doc.createElement(VALUE_NODE_NAME); 122 node.appendChild(me); 123 TKWMTextAttrData attrData = (TKWMTextAttrData) data; 124 Text txt = doc.createTextNode(attrData.getXML()); 125 me.appendChild(txt); 126 } 127 128 public int insertDataIntoDB (TKContentDBData db, Object data, int contentId, int leftNr) { 129 130 TKWMTextAttrData attrData = (TKWMTextAttrData) data; 131 return super.insertDataIntoDB (db,attrData.getExpansion(),contentId,leftNr); 132 } 133 134 public Object getDataFromDB (TKContentDBData db) { 135 136 TKMarkupAdmin.setup(); 137 138 Object content = super.getDataFromDB (db); 139 140 if (content == null) return null; 141 142 TKWMTextAttrData attrData = null; 143 144 if (content instanceof String ) { 145 146 attrData = new TKWMTextAttrData ((String ) content); 147 } else { 148 149 TKVector vec = (TKVector) content; 150 if (vec.size() == 0) return null; 151 152 attrData = new TKWMTextAttrData ((String ) vec.get(0)); 153 } 154 155 attrData.scanData(); 156 157 return attrData; 158 } 159 160 public void fillIntoTemplate (TKHTMLTemplate t, Object value, String prefix) { 161 162 TKWMTextAttrData attrData = (TKWMTextAttrData) value; 163 164 if (attrData == null) { 165 166 super.fillIntoTemplate (t,null,prefix ); 167 return; 168 } 169 170 super.fillIntoTemplate (t,attrData.getDigest(),prefix); 171 172 TKTemplateSyntax syntax = attrData.getSyntax (t); 173 if (syntax != null) t.set("FULL_VALUE",syntax); 174 175 if (attrData.hasMarkups()) t.set( prefix+fieldName+".HAS_MARKUPS", Boolean.TRUE ); 176 if (attrData.hasDiagnostics()) t.set (prefix+fieldName+".HAS_DIAGNOSTICS", Boolean.TRUE ); 177 if (attrData.hasDump()) t.set(prefix+fieldName+".HAS_DUMP", Boolean.TRUE ); 178 179 TKWMTextAttrIterator iterator = 180 new TKWMTextAttrIterator (prefix+fieldName,attrData,t.getListIterator()); 181 182 t.setListIterator (iterator); 183 } 184 185 public void fillIntoPresentation (TKHTMLTemplate t, Object value, String prefix) { 186 187 TKWMTextAttrData attrData = (TKWMTextAttrData) value; 188 189 TKTemplateSyntax syntax = attrData == null ? null : attrData.getSyntax (t); 190 if (syntax != null) t.set( prefix+"."+getName(), syntax); 191 } 192 193 public Object modify (String action, String fieldPath, Object data, 194 String prefix, StringBuffer destination) { 195 196 destination.append (prefix+fieldName); 197 198 return data; 199 } 200 201 public Object getDefault() 202 { 203 TKMarkupAdmin.setup(); 204 205 TKWMTextAttrData attrData = new TKWMTextAttrData (""); 206 207 attrData.scanData(); 208 209 return attrData; 210 } 211 212 } 213 | Popular Tags |