KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > field > TKWMTextAttrField


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 /**
14  * The attributed text field.
15  *
16  * @author $Author: uli $
17  * @version $Revision: 1.25 $
18  */

19 public class TKWMTextAttrField
20     extends TKTextField
21 {
22     // $Id: TKWMTextAttrField.java,v 1.25 2002/02/25 17:05:16 uli Exp $
23

24     public static final String JavaDoc CLASS_ID = "ATTR_TEXT";
25
26     /**
27      * Creates an empty field.
28      */

29     public TKWMTextAttrField ()
30     {
31         super();
32     }
33
34     public TKWMTextAttrField (String JavaDoc name, int rows, int cols, int maxSize)
35     {
36         super( name, rows, maxSize, cols );
37     }
38
39     public TKWMTextAttrField (String JavaDoc name, int rows, int cols, int maxSize, String JavaDoc showName) {
40
41         super( name, rows, cols, maxSize, showName );
42     }
43
44     /**
45      * Methode zur Definition eines Textfeldes
46      */

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 JavaDoc compileData (String JavaDoc prefix, TKHashtable data, TKHashtable context)
71     {
72         TKMarkupAdmin.setup();
73         Object JavaDoc[] args = new Object JavaDoc[1];
74         args[0] = fieldName;
75         String JavaDoc text = (String JavaDoc) data.get(prefix+fieldName);
76         TKWMTextAttrData attrData = new TKWMTextAttrData (prefix+fieldName,text,data);
77         // Laenge ueberpruefen
78
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 JavaDoc compileData( String JavaDoc 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 JavaDoc val = tree.convert2Markup();
111         val = val == null ? (String JavaDoc) 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 JavaDoc 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 JavaDoc 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 JavaDoc getDataFromDB (TKContentDBData db) {
135
136         TKMarkupAdmin.setup();
137
138         Object JavaDoc content = super.getDataFromDB (db);
139
140         if (content == null) return null;
141
142         TKWMTextAttrData attrData = null;
143
144         if (content instanceof String JavaDoc) {
145
146             attrData = new TKWMTextAttrData ((String JavaDoc) content);
147         } else {
148
149             TKVector vec = (TKVector) content;
150             if (vec.size() == 0) return null;
151
152             attrData = new TKWMTextAttrData ((String JavaDoc) vec.get(0));
153         }
154
155         attrData.scanData();
156
157         return attrData;
158     }
159
160     public void fillIntoTemplate (TKHTMLTemplate t, Object JavaDoc value, String JavaDoc 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 JavaDoc value, String JavaDoc 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 JavaDoc modify (String JavaDoc action, String JavaDoc fieldPath, Object JavaDoc data,
194                 String JavaDoc prefix, StringBuffer JavaDoc destination) {
195
196         destination.append (prefix+fieldName);
197
198         return data;
199     }
200
201     public Object JavaDoc 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