KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > raptus > owxv3 > api > components > CmpFieldsBean


1 /*
2  * eAdmin/OWX
3  * Copyright (C) 1996-2003 OWX-Project Team <owx-team@gmx.net>
4  */

5
6 package com.raptus.owxv3.api.components;
7
8 import java.text.*;
9 import java.util.*;
10
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12
13 import org.apache.struts.action.ActionMapping;
14
15 import com.raptus.owxv3.*;
16 import com.raptus.owxv3.api.*;
17
18
19
20 /**
21  *
22  * <hr>
23  * <table width="100%" border="0">
24  * <tr>
25  * <td width="24%"><b>Filename</b></td><td width="76%">CmpFieldsBean.java</td>
26  * </tr>
27  * <tr>
28  * <td width="24%"><b>Author</b></td><td width="76%">REEA</td>
29  * </tr>
30  * <tr>
31  * <td width="24%"><b>Date</b></td><td width="76%">22th of April 2002</td>
32  * </tr>
33  * </table>
34  * <hr>
35  * <table width="100%" border="0">
36  * <tr>
37  * <td width="24%"><b>Date / Author</b></td><td width="76%"><b>Changes</b></td>
38  * </tr>
39  * </table>
40  * <hr>
41  */

42 public class CmpFieldsBean extends ComponentBean
43 {
44     /**
45      * The name of the field that should be the title
46      */

47     protected String JavaDoc titleFieldName = null;
48
49     
50     /**
51      *The active locale
52      */

53     protected Locale activeLocale = null;
54
55     /**
56      *The FieldSelector object
57      */

58     protected FieldsSelector fieldsSel = null;
59
60     
61     /**
62      * Contains (fieldname,FieldDefinition)
63      */

64     protected Hashtable fieldDefList=null;
65     
66     /**
67      * Contains (fieldname, Error text)
68      */

69     protected Hashtable fieldErrorMsgs=null;
70     
71     /**
72      *The order of the fields
73      */

74     protected Vector fieldOrder;
75     
76     /**
77      *Hastable holding the simplefields labels (String locale,String label)
78      */

79     protected Hashtable simpleFieldLabel;
80     
81     /**
82      *The current field that is edited, it can be a wysiwyg field or "all" for the other fields
83      */

84     protected String JavaDoc currentField;
85     
86     
87     /**
88      *The count of simpelfields if 0 we should not have 'fields' option in the combo
89      */

90     protected int simpleFieldCount;
91     
92     public CmpFieldsBean()
93     {
94         fieldDefList=new Hashtable();
95         fieldOrder=new Vector();
96         fieldErrorMsgs=new Hashtable();
97         simpleFieldCount=0;
98     }
99
100     public void addFieldDefinition(FieldDefinition fd)
101     {
102         fieldDefList.put(fd.getName(),fd);
103         //LoggingManager.log("Init field="+fd.getName()+" ML:"+fd.getMultiLanguage());
104
if(fd.getWysiwyg()==false)
105         {
106             //simple field
107
simpleFieldCount++;
108         }
109         if(fd.getMultiLanguage())
110         {
111             fieldsSel.initLocalizedField(fd);
112         }
113         else
114         {
115             fieldsSel.initField(fd);
116         }
117         
118         if( !fieldOrder.contains(fd.getName()) )
119         {
120             fieldOrder.addElement(fd.getName());
121             
122         }
123     }
124     
125     public Locale getActiveLocale() { return activeLocale; }
126     public void setActiveLocale(Locale al) { this.activeLocale = al; }
127     
128     public String JavaDoc getTitleFieldName() { return titleFieldName; }
129     public void setTitleFieldName(String JavaDoc s) { this.titleFieldName=s;}
130     
131     public String JavaDoc getCurrentField() { return currentField; }
132     public void setCurrentField(String JavaDoc s) { this.currentField=s;}
133     
134     
135     public void setSimpleFieldLabel(Hashtable h)
136     {
137         simpleFieldLabel=h;
138     }
139     
140     public Vector getFieldOrder()
141     {
142         return fieldOrder;
143     }
144
145     /**
146      *
147      */

148     public void reset(ActionMapping mapping, HttpServletRequest JavaDoc request)
149     {
150         
151         super.reset(mapping, request);
152     }
153
154     /**
155      *
156      */

157     public FieldsSelector getFieldsSelector() { return fieldsSel; }
158
159     /**
160      *
161      */

162     public void setFieldsSelector(FieldsSelector fs)
163     {
164         this.fieldsSel = fs;
165         setActiveLocale(getCurrLocale());
166         //reloadViewFields();
167
}
168
169     /**
170      *
171      */

172     public void switchLocale(String JavaDoc switchToLocale)
173     {
174         if(switchToLocale != null)
175         {
176             if(!getActiveLocale().toString().equalsIgnoreCase(switchToLocale))
177             {
178                 PairOfObjects po = LocaleManager.stripLocaleString(switchToLocale);
179                 if(po != null && po.isValid())
180                 {
181                     setActiveLocale( new Locale((String JavaDoc) po.getObjectOne(), (String JavaDoc) po.getObjectTwo()) );
182                     //reloadViewFields();
183
}
184             }
185         }
186         else
187             LoggingManager.log("Failed to switch locale, because parameter was NULL!", this);
188     }
189     /**
190      * Method for getting a field's value
191      * If the field is multilanguage the value is returned on the active locale
192      */

193     public String JavaDoc getFieldValue(String JavaDoc fieldname)
194     {
195         return getFieldValue(fieldname,activeLocale);
196     }
197     
198     /**
199      * Method for getting a field's value based on locale specified
200      *
201      */

202     public String JavaDoc getFieldValue(String JavaDoc fieldname,Locale l)
203     {
204         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldname);
205         if(fd==null)
206         {
207             LoggingManager.log("Unknown field name:"+fieldname+" !",this);
208             return "";
209         }
210         if(fd.getMultiLanguage())
211         {
212             GResLocalizedField gf=fieldsSel.getLocalizedField(fieldname);
213             if(gf==null)
214             {
215                 //no value yet return default value
216
return fd.getDefaultVal(l.toString());
217             }
218             else
219             {
220                 String JavaDoc s=gf.getValue(l);
221                 if(s==null) return fd.getDefaultVal(l.toString());
222                 return s;
223             }
224         }//end if multilanguage
225
else
226         {
227             GResField gf=fieldsSel.getField(fieldname);
228             
229             if(gf==null)
230             {
231                 //no value yet return default value
232
return fd.getDefaultVal(l.toString());
233             }
234             else
235             {
236                 //LoggingManager.log("Fieldtype="+gf.getFieldType()+" Number value="+gf.getNumberValue());
237
if(gf.getFieldType()==Constants.FIELDTYPE_NUMBER)
238                 {
239                     Double JavaDoc d=gf.getNumberValue();
240                     if(d==null) return "";
241                     return d.toString();
242                 }
243                 if(gf.getFieldType()==Constants.FIELDTYPE_TEXT) return gf.getTextValue();
244                 if(gf.getFieldType()==Constants.FIELDTYPE_DATE)
245                 {
246                     Date d=gf.getDateValue();
247                     if(d==null) return "";
248                     SimpleDateFormat df=(SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT,activeLocale);
249                     df.applyPattern(Constants.DEFAULT_DATEPATTERN);
250                     return df.format(d);
251                 }
252             if(gf.getFieldType()==Constants.FIELDTYPE_PRICE) return gf.getPriceValue();
253                 
254             }
255         }//end else
256

257         return "";
258     }
259     
260     /**
261      * Method for getting a field's label
262      */

263     public String JavaDoc getFieldLabel(String JavaDoc fieldname)
264     {
265         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldname);
266         if(fd==null)
267         {
268             LoggingManager.log("Unknown field name:"+fieldname+" !",this);
269             return "";
270         }
271         else
272         {
273             return fd.getLabel(getCurrLocale().toString());
274         }//end else
275
}
276     
277     /**
278      * Method for getting a field's error message if any
279      */

280     public String JavaDoc getFieldErrorMsg(String JavaDoc fieldname)
281     {
282         String JavaDoc s=(String JavaDoc)fieldErrorMsgs.get(fieldname);
283         if(s==null) return "";
284         return s;
285     }
286     
287     /**
288      * Method for getting a field's error message
289      */

290     public void setFieldErrorMsg(String JavaDoc fieldname,String JavaDoc errorMsg)
291     {
292         fieldErrorMsgs.put(fieldname,errorMsg);
293     }
294     
295     /**
296      *Method for clearing error messages
297      */

298     public void clearFieldErrorMsgs()
299     {
300         fieldErrorMsgs.clear();
301     }
302     
303     /**
304      *Method for getting a field type
305      */

306     public int getFieldType(String JavaDoc fieldname)
307     {
308         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldname);
309         if(fd==null) return -1;
310         return fd.getType();
311     }
312     
313     /**
314      *Returns true if the filed is wysiwyg
315      */

316     
317     public boolean isWysiwyg(String JavaDoc fieldName)
318     {
319         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldName);
320         if(fd==null) return false;
321         return fd.getWysiwyg();
322     }
323     
324     /**
325      *Method for determening that empty value should be accepted or not
326      */

327     public boolean isEmptyAllowed(String JavaDoc fieldName)
328     {
329         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldName);
330         if(fd==null) return false;
331         return fd.getEmpty();
332     }
333     
334     
335     /**
336      *Returns true if the field is multi language (locale sensitive)
337      */

338     public boolean isMultiLanguage(String JavaDoc fieldName)
339     {
340         FieldDefinition fd=(FieldDefinition)fieldDefList.get(fieldName);
341         if(fd==null) return false;
342         return fd.getMultiLanguage();
343     }
344     
345     public String JavaDoc getTitleValue()
346     {
347         String JavaDoc s=getFieldValue(titleFieldName,getCurrLocale());
348         if(s==null) return "No title";
349         
350         return s;
351     }
352     
353     /**
354      *Return Vector of Labels to put in the combobox
355      */

356     public Vector getComboLabels()
357     {
358         Vector ret=new Vector();
359         FieldDefinition fd=null;
360         if(simpleFieldCount>0) ret.addElement( simpleFieldLabel.get(getCurrLocale().toString()) );
361         
362         if(fieldOrder!=null)
363         {
364             for(int i=0;i<fieldOrder.size();i++)
365             {
366                 fd=(FieldDefinition)fieldDefList.get( fieldOrder.elementAt(i) );
367                 if(fd.getWysiwyg()==true)
368                 {
369                     ret.addElement( fd.getLabel(getCurrLocale().toString()) );
370                 }
371             }//end for
372
}
373         return ret;
374     }
375     
376     /**
377      *Return Vector of values to put in the combobox
378      */

379     public Vector getComboValues()
380     {
381         Vector ret=new Vector();
382         FieldDefinition fd=null;
383         if(simpleFieldCount>0) ret.addElement( "all" );
384         //LoggingManager.log(fieldOrder);
385
if(fieldOrder!=null)
386         {
387             for(int i=0;i<fieldOrder.size();i++)
388             {
389                 fd=(FieldDefinition)fieldDefList.get( fieldOrder.elementAt(i) );
390                 if(fd.getWysiwyg()==true)
391                 {
392                     ret.addElement( fd.getName() );
393                 }
394             }//end for
395
}//end for
396
//LoggingManager.log(ret.size());
397
return ret;
398     }
399     
400     /*
401      *
402      
403     public void populateViewFields()
404     {
405         
406         msgsSel.setMessage( BaseConstants.RESMSGFIELD_TITLE, getActiveLocale(), getTitle() );
407         msgsSel.setMessage( BaseConstants.RESMSGFIELD_TEXT, getActiveLocale(), getText() );
408          
409     }*/

410
411     /*
412      *
413     public void reloadViewFields()
414     {
415         
416          setTitle( msgsSel.getMessage(BaseConstants.RESMSGFIELD_TITLE, getActiveLocale() ) );
417          setText( msgsSel.getMessage(BaseConstants.RESMSGFIELD_TEXT, getActiveLocale() ) );
418          
419     }
420      */

421 }
422
423 // eof
424
Popular Tags