8f0630814b0d322ca26493b4815ddc23d0f85bd7
[portal/sdk.git] /
1 /*-
2  * ================================================================================
3  * ECOMP Portal SDK
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20 /* ===========================================================================================
21  * This class is part of <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> 
22  * Raptor : This tool is used to generate different kinds of reports with lot of utilities
23  * ===========================================================================================
24  *
25  * -------------------------------------------------------------------------------------------
26  * FormField.java - This class is used to generate all types of form field. 
27  * -------------------------------------------------------------------------------------------
28  *
29  * Created By                           :  Stan Pishamanov
30  * Modified & Maintained By     :  Sundar Ramalingam 
31  *
32  * Changes
33  * -------
34  * 18-Aug-2009 : Version 8.5 (Sundar); Populating predefined formfields bug has been resolved. 
35  * 13-Aug-2009 : Version 8.5 (RS); Form field chaining is supported even for hidden variables. 
36  * 13-Aug-2009 : Version 8.5 (RS); Nothing changed just comment. 
37  * 10-Aug-2009 : Version 9.0 (RS); required logic is added for Multiple Dropdown. 
38  * 06-Aug-2009 : Version 9.0 (RS); B getAjaxHtml is added for converting form field chain from Iframe to AJAX. 
39  * 08-Jun-2009 : Version 8.3 (RS); Hidden formfields now is displayed even when the sql is not provided.                                                
40  *
41  */
42 package org.openecomp.portalsdk.analytics.model.runtime;
43
44 import java.io.Serializable;
45 import java.io.UnsupportedEncodingException;
46 import java.text.SimpleDateFormat;
47 import java.util.*;
48 import java.util.Map.Entry;
49 import java.util.regex.Matcher;
50 import java.util.regex.Pattern;
51
52 import javax.swing.text.html.HTMLDocument.HTMLReader.HiddenAction;
53
54 import org.openecomp.portalsdk.analytics.error.RaptorException;
55 import org.openecomp.portalsdk.analytics.error.RaptorRuntimeException;
56 import org.openecomp.portalsdk.analytics.error.UserDefinedException;
57 import org.openecomp.portalsdk.analytics.model.base.*;
58 import org.openecomp.portalsdk.analytics.system.*;
59 import org.openecomp.portalsdk.analytics.util.*;
60 import org.openecomp.portalsdk.analytics.xmlobj.*;
61
62 public class FormField extends org.openecomp.portalsdk.analytics.RaptorObject implements Serializable {
63         private static final String HTML_FORM = "formd";
64
65         private String fieldName = null;
66
67         private String fieldDisplayName = null;
68
69         private String fieldType = FFT_TEXT_W_POPUP;
70
71         private String validationType = VT_NONE;
72
73         private boolean required = false;
74         
75         public boolean hasPredefinedList = false;
76
77         private String defaultValue = null;
78     
79         private Calendar rangeStartDate = null;
80     
81         private Calendar rangeEndDate = null;
82     
83         private String rangeStartDateSQL = null;
84     
85         private String rangeEndDateSQL = null;
86     
87         private String fieldDefaultSQL = null;
88         
89         private String multiSelectListSize = null;
90
91         private String helpText = null;
92
93         private IdNameList lookupList = null;
94
95         private String dbInfo = null;
96     
97         private String userId = null;
98     
99         private boolean visible = true;
100         
101         private String dependsOn = null;
102         
103         private boolean triggerOtherFormFields = false;
104         
105         private boolean triggerThisFormfield = false;
106
107         // Form field types
108         public static final String FFT_TEXT_W_POPUP = "TEXT_WITH_POPUP";
109
110         public static final String FFT_TEXT = "TEXT";
111
112         public static final String FFT_TEXTAREA = "TEXTAREA";
113
114         public static final String FFT_COMBO_BOX = "COMBO_BOX";
115
116         public static final String FFT_LIST_BOX = "LIST_BOX";
117
118         public static final String FFT_RADIO_BTN = "RADIO_BTN";
119
120         public static final String FFT_CHECK_BOX = "CHECK_BOX";
121
122         public static final String FFT_LIST_MULTI = "LIST_MULTI_SELECT";
123
124         public static final String FFT_HIDDEN = "HIDDEN";
125         
126         public static final String FFT_BLANK = "BLANK"; 
127         
128         // Validation types
129         public static final String VT_NONE = "NONE";
130
131         public static final String VT_DATE = "DATE";
132         
133         public static final String VT_TIMESTAMP_HR = "TIMESTAMP_HR";    
134
135         public static final String VT_TIMESTAMP_MIN = "TIMESTAMP_MIN";  
136
137         public static final String VT_TIMESTAMP_SEC = "TIMESTAMP_SEC";  
138
139         public static final String VT_INT = "INTEGER";
140
141         public static final String VT_INT_POSITIVE = "POSITIVE_INTEGER";
142
143         public static final String VT_INT_NON_NEGATIVE = "NON_NEGATIVE_INTEGER";
144
145         public static final String VT_FLOAT = "FLOAT";
146
147         public static final String VT_FLOAT_POSITIVE = "POSITIVE_FLOAT";
148
149         public static final String VT_FLOAT_NON_NEGATIVE = "NON_NEGATIVE_FLOAT";
150         
151         private FormField(String fieldName, String fieldDisplayName, String fieldType,
152                         String validationType, boolean required, String defaultValue, String helpText, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, 
153                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) {
154                 //super();
155         this (fieldName,fieldDisplayName,fieldType,validationType,required,defaultValue,helpText, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
156         setVisible(visible);
157         } // FormField
158
159     private FormField(String fieldName, String fieldDisplayName, String fieldType,
160             String validationType, boolean required, String defaultValue, String helpText, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, 
161                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) {
162         super();
163         setFieldName(fieldName);
164         setFieldDisplayName(fieldDisplayName);
165         setFieldType(nvl(fieldType, FFT_TEXT));
166         setValidationType(validationType);
167         setRequired(required);
168         setDefaultValue(defaultValue);
169         setHelpText(helpText);
170         setDependsOn(dependsOn);
171         setRangeStartDate(rangeStartDate);
172         setRangeEndDate(rangeEndDate);
173         setRangeStartDateSQL(rangeStartDateSQL);
174         setRangeEndDateSQL(rangeEndDateSQL);
175         setMultiSelectListSize(multiSelectListSize);
176     } 
177         public FormField(String fieldName, String fieldDisplayName, String fieldType,
178                         String validationType, boolean required, String defaultValue, String helpText,
179                         List predefinedValues, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, 
180                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
181                 this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue,
182                                 helpText,visible, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
183                 if (predefinedValues != null)
184                         setPredefinedListLookup(predefinedValues);
185         } // FormField
186
187         public FormField(String fieldName, String fieldDisplayName, String fieldType,
188                         String validationType, boolean required, String defaultValue, String helpText,
189                         String lookupSql, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, 
190                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) {
191                 this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue,
192                                 helpText,visible, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
193         if (defaultValue!=null && defaultValue.length()>10 && defaultValue.substring(0,10).trim().toLowerCase().startsWith("select")) {
194             setFieldDefaultSQL(defaultValue);
195             setDefaultValue("");
196         }
197                 setLookupList(new IdNameSql(lookupSql,defaultValue));
198         } // FormField
199
200     public FormField(String fieldName, String fieldDisplayName, String fieldType,
201             String validationType, boolean required, String defaultValue, String helpText,
202             String dbTableName, String dbIdField, String dbNameField, String dbSortByField, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, 
203                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
204         this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue,
205                 helpText,dbTableName,dbIdField,dbNameField,dbSortByField, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
206         setVisible(visible);
207     }
208     
209     public FormField(String fieldName, String fieldDisplayName, String fieldType,
210                         String validationType, boolean required, String defaultValue, String helpText,
211                         String dbTableName, String dbIdField, String dbNameField, String dbSortByField, String dependsOn,
212                         Calendar rangeStartDate, Calendar rangeEndDate, 
213                         String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) {
214                 this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue,
215                                 helpText,dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
216                 //if(dependsOn !=null){ this.dependsOn = dependsOn; }else { this.dependsOn = ""
217         if (defaultValue!=null && defaultValue.length()>10 && defaultValue.substring(0,10).trim().toLowerCase().startsWith("select")) {
218            setFieldDefaultSQL(defaultValue);
219            setDefaultValue("");
220            if(fieldType.equals(FFT_TEXT))
221                    setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField,defaultValue,true));
222            else
223                    setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField,defaultValue,false));
224         }
225         else {
226             if(fieldType.equals(FFT_TEXT))
227                 setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField, true));
228             else
229                 setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField, false));
230         }
231         
232         this.setRangeStartDate(rangeStartDate);
233         this.setRangeEndDate(rangeEndDate);
234         this.setRangeStartDateSQL(rangeStartDateSQL);
235         this.setRangeEndDateSQL(rangeEndDateSQL);
236         
237         } // FormField
238     
239
240         private void setPredefinedListLookup(List predefinedValues) {
241                 IdNameList lookup = new IdNameList();
242                 for (Iterator iter = predefinedValues.iterator(); iter.hasNext();) {
243                         String value = (String) iter.next();
244                         lookup.addValue(value, value);
245                 } // for
246         setHasPredefinedList(true);
247                 setLookupList(lookup);
248         } // setPredefinedListLookup
249
250         public String getFieldName() {
251                 return fieldName;
252         }
253
254         public String getFieldDisplayName() {
255                 return fieldDisplayName;
256         }
257
258         public String getFieldType() {
259                 return fieldType;
260         }
261
262         public String getValidationType() {
263                 return validationType;
264         }
265
266         public boolean isRequired() {
267                 return required;
268         }
269
270         public String getDefaultValue() {
271                 return defaultValue;
272         }
273
274         public String getHelpText() {
275                 return helpText;
276         }
277
278         public IdNameList getLookupList() {
279                 return lookupList;
280         }
281
282         public void setFieldName(String fieldName) {
283                 this.fieldName = fieldName;
284         }
285
286         public void setFieldDisplayName(String fieldDisplayName) {
287                 this.fieldDisplayName = fieldDisplayName;
288         }
289
290         public void setFieldType(String fieldType) {
291                 this.fieldType = fieldType;
292         }
293
294         public void setValidationType(String validationType) {
295                 this.validationType = nvl(validationType, VT_NONE);
296         }
297
298         public void setRequired(boolean required) {
299                 this.required = required;
300         }
301
302         public void setDefaultValue(String defaultValue) {
303                 this.defaultValue = defaultValue;
304         }
305
306         public void setHelpText(String helpText) {
307                 this.helpText = helpText;
308         }
309
310         public void setLookupList(IdNameList lookupList) {
311                 this.lookupList = lookupList;
312         }
313
314     public void setDefaultList(IdNameList lookupList) {
315         this.lookupList = lookupList;
316     }    
317     
318         public String getBaseSQL() {
319                 return (lookupList == null) ? null : lookupList.getBaseSQL();
320         } // getBaseSQL
321
322         public String getBaseWholeSQL() {
323                 return (lookupList == null) ? null : lookupList.getBaseWholeSQL();
324         } // getBaseWholeSQL    
325         
326         public String getBaseWholeReadonlySQL() {
327                 return (lookupList == null) ? null : lookupList.getBaseWholeReadonlySQL();
328         } // getBaseWholeReadonlySQL
329         
330         public String getBaseSQLForPDFExcel() {
331                 return (lookupList == null) ? null : lookupList.getBaseSQLForPDFExcel(getFieldType().equals(FFT_LIST_MULTI)||getFieldType().equals(FFT_CHECK_BOX)?true:false);
332         } // getBaseSQLForPDFExcel
333         
334         public String getDisplayNameHtml() {
335                 if (nvl(helpText).length() > 0)
336                         return "<a title=\"" + helpText + "\">" + fieldDisplayName + "</a>";
337                 else
338                         return fieldDisplayName;
339         } // getDisplayNameHtml
340
341         /*public String getHtml() throws RaptorRuntimeException {
342                 return getHtml("" , null, null, false);
343         } // getHtml*/
344         
345         public String getHtml(String fieldValue, HashMap formValues, ReportRuntime rr)throws RaptorRuntimeException {
346                 return getHtml(fieldValue,formValues, rr, false);
347         }
348         
349         public String getHelpLink(String fieldName) {
350                 //return        "<a href=\"#\" onclick=\"javascript:ShowContent('" + fieldName + "_div')\"><img src=\""+AppUtils.getBaseFolderURL()+"images/quickhelp_dk.gif\" width=\"12\" height=\"12\" alt=\"\" border=\"0\" class=\"qh-element\" /></a>";
351                 return ((getHelpText()!=null && getHelpText().length()>0)? "tooltipText=\""+ getHelpText()+"\">": ">");
352                 //return ((getHelpText()!=null && getHelpText().length()>0)? "<img src=\"static/fusion/raptor/images/quickhelp_lt.gif\" tooltipText=\""+ getHelpText() + "\"/>": "");
353         }
354         
355         
356         public String getCallableAfterChainingJavascript(String fieldName, ReportRuntime rr) {
357                 JavascriptItemType javascriptItemType = null;
358                 StringBuffer callJavascriptText = new StringBuffer("");
359                 if(rr.getJavascriptList()!=null) {
360                         for (Iterator iter = rr.getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) {
361                                 javascriptItemType  = (JavascriptItemType)iter.next();
362                                 if(javascriptItemType.getFieldId().equals(fieldName)) {
363                                         if(nvl(javascriptItemType.getCallText()).toLowerCase().startsWith("afterchaining"))
364                                                 callJavascriptText.append(" "+javascriptItemType.getCallText());
365                                 }
366                         }
367                 }
368                 return callJavascriptText.toString()+" ";
369         }
370         public String getCallableJavascript(String fieldName, ReportRuntime rr) {
371                 JavascriptItemType javascriptItemType = null;
372                 StringBuffer callJavascriptText = new StringBuffer("");
373                 if(rr.getJavascriptList()!=null) {
374                         for (Iterator iter = rr.getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) {
375                                 javascriptItemType  = (JavascriptItemType)iter.next();
376                                 if(javascriptItemType.getFieldId().equals(fieldName)) {
377                                         if(!nvl(javascriptItemType.getCallText()).toLowerCase().startsWith("afterchaining"))
378                                                 callJavascriptText.append(" "+javascriptItemType.getCallText());
379                                 }
380                         }
381                 }
382                 return callJavascriptText.toString()+" ";
383         }
384         
385         public String getCallableOnChangeJavascript(String fieldName, ReportRuntime rr) {
386         String callText = getCallableJavascript(fieldName, rr);
387         if(callText != null && callText.trim().toLowerCase().indexOf("onchange")>=0) {
388                         Pattern re1 = Pattern.compile("\\=(.*?)\\)");
389                         Matcher matcher = re1.matcher(callText);
390                         while (matcher.find()) {
391                                 callText =  matcher.group();
392                                 if(callText!=null && callText.startsWith("=\"")) {
393                                         callText = callText.substring(2);
394                                 } else if (callText!=null)
395                                         callText = callText.substring(1);
396                         }
397                 callText = callText.replaceAll("this", "documentForm."+fieldName);
398         } else callText = null;
399         return callText;
400         }       
401         
402         public String getAjaxHtml(String fieldValue, HashMap formValues, ReportRuntime rr, boolean inSchedule) throws RaptorRuntimeException {
403                  fieldValue = nvl(fieldValue, defaultValue);
404                  String readOnly = "ff_readonly";
405                  try {
406                          if(fieldValue !=null && fieldValue.length() > 0)
407                                  fieldValue = java.net.URLDecoder.decode(fieldValue, "UTF-8");
408                  } catch (UnsupportedEncodingException ex) {}
409                         catch (IllegalArgumentException ex1){}
410                         catch (Exception ex2){}
411                  if (fieldType.equals(FFT_COMBO_BOX)) {
412                                 StringBuffer sb = new StringBuffer();
413                                 //System.out.println("COMBO BOX " + fieldName);
414                                 String oldSQL = "";
415                                 if (!required)
416                                         sb.append("obj.options[obj.options.length] = new Option('-->select value<--','');");
417
418                                 IdNameList lookup = getLookupList();
419                                 try {
420                                         if(!hasPredefinedList) {
421                                         //if(dependsOn != null && dependsOn != "") {
422                                                 //if(dependsOn != null && dependsOn != "" ) {
423                                                         IdNameSql lu = (IdNameSql) lookup;
424                                                         String SQL = "";
425                                                         SQL = lu.getSql();
426                                                         /*if(nvl(fieldValue,"").length()<=0)
427                                                                 SQL = lu.getSql();
428                                                         else
429                                                                 SQL = lu.getBaseSQLForPDFExcel(false);
430                                                                 */
431                                             //System.out.println("FORMFIELD 6666667  First" + ((IdNameSql)lookup).getSql());
432                                                         oldSQL = lu.getSql();
433                                                         //SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue);
434                                                         if(formValues != null) {
435                                                                 Set set = formValues.entrySet();
436                                                                 String value = "";
437                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
438                                                                         Map.Entry entry = (Entry) iter.next();
439                                                                         value = (String) entry.getValue();
440                                                                         if(inSchedule) {
441                                                                                 try {
442                                                                                         value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8");
443                                                                                 } catch (UnsupportedEncodingException ex) {
444                                                                                         
445                                                                                 }
446                                                                         }
447                                                                         if (value!=null && (value.length() <=0 || value.equals("NULL")))  { 
448                                                                                 value = "NULL";
449                                                                                 SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value);
450                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
451                                                                         } else {                                                                        
452                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
453                                                                         }
454                                                                 }
455                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
456                                                         }
457                                                 //}
458                                                 lookupList = lookup;
459                                                 
460                                         //}
461                                         try {
462                                                 lookup.loadUserData(0, "", getDbInfo(), getUserId());
463                                         } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e);
464                                         }
465                                         }
466                                         lookup.trimToSize();
467                                         
468                                         String selectedValue = "";
469                                         int count = 0;
470                                         for (lookup.resetNext(); lookup.hasNext();) {
471                                                 IdNameValue value = lookup.getNext();
472                                                 if(value != null && value.getId() != null && value.getName() != null ) {
473                                                         /*if (count == 0 && required) {
474                                                                 selectedValue = value.getId();
475                                                                 count++;
476                                                         } else  if (nvl(fieldValue).length()>0){
477                                                             if (fieldValue != null && fieldValue.equals(value.getId())){
478                                                                         selectedValue = value.getId();
479                                                                 }
480                                                                 count++;
481                                                         } else {
482                                                                 count++;
483                                                         } */
484                                                         if (count == 0) {
485                                                                 if(required){
486                                                                  selectedValue = value.getId();
487                                                                 }
488                                                                 count++;
489                                                         }
490                                                         sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName())+"','"+Utils.singleQuoteEncode(value.getId())+"');");
491                                                         if ((fieldValue != null && fieldValue.equals(value.getId()))){
492                                                                 sb.append("obj.options[obj.options.length-1].selected=true;");
493                                                                 selectedValue = value.getId();
494                                                         }
495                                                         if(value.isReadOnly())
496                                                                 sb.append("obj.disabled=true;");
497                                                         else
498                                                                 sb.append("obj.disabled=false;");
499                                                         
500                                                 }
501                                         } // for
502                                         if (formValues.containsKey(fieldDisplayName)){
503                                                 formValues.remove(fieldDisplayName);
504                                         }
505                                         formValues.put(fieldDisplayName, selectedValue);                                        
506                                 } catch (Exception e) {
507                                          //throw new RaptorRuntimeException(e);
508                                 }
509                                 if(!hasPredefinedList) {
510                             if(oldSQL != null && !oldSQL.equals("")) {
511                                 ((IdNameSql)lookup).setSQL(oldSQL);
512                             }
513                                 }
514                     //System.out.println("FORMFIELD 6666667 " + ((IdNameSql)lookup).getSql());
515                     if( isVisible())
516                         return sb.toString();
517                     else return "";
518                         } else if (fieldType.equals(FFT_LIST_MULTI)) {
519                                 StringBuffer sb = new StringBuffer();
520                                 String oldSQL = "";
521
522                                 fieldValue = '|' + fieldValue + '|';
523                                 IdNameList lookup = getLookupList();
524                                 try {
525                                         if(!hasPredefinedList) {
526                                         //if(dependsOn != null && dependsOn != "") {
527                                                 //if(dependsOn != null && dependsOn != "" ) {
528                                                         IdNameSql lu = (IdNameSql) lookup;
529                                                         String SQL = "";
530                                                         SQL = lu.getSql();
531                                                         /*if(nvl(fieldValue,"").length()<=0)
532                                                                 SQL = lu.getSql();
533                                                         else
534                                                                 SQL = lu.getBaseSQLForPDFExcel(false);
535                                                         SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue);
536                                                         */
537                                                         oldSQL = lu.getSql();
538                                                         if(formValues != null) {
539                                                                 Set set = formValues.entrySet();
540                                                                 String value = "";
541                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
542                                                                         Map.Entry entry = (Entry) iter.next();
543                                                                         value = (String) entry.getValue();
544                                                                         if(inSchedule) { //('1347')
545                                                                                 try {
546                                                                                                         value = java.net.URLDecoder.decode(value, "UTF-8");
547                                                                                 } catch (UnsupportedEncodingException ex) {
548                                                                                         
549                                                                                 }
550                                                                         }                                                                       
551                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
552                                                                 }
553                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
554                                                         }
555                                                 //}
556                                 lookupList = lookup;
557                                         //}                             
558                                         
559                                         lookup.loadUserData(0, "", getDbInfo(),getUserId());
560                                         }
561
562                                         for (lookup.resetNext(); lookup.hasNext();) {
563                                                 IdNameValue value = lookup.getNext();
564                                                 sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName()) +"','"+Utils.singleQuoteEncode(value.getId())+"');");
565                                                 if (fieldValue.indexOf('|' + value.getId() + '|') >= 0)
566                                                         sb.append("obj.options[obj.options.length-1].selected=true;");
567                                                 if(value.isReadOnly())
568                                                         sb.append("obj.disabled=true;");
569                                                 else
570                                                         sb.append("obj.disabled=false;");
571
572                                         } // for
573
574                                         // lookup.clearData();
575                                 } catch (Exception e) {
576                                          //throw new RaptorRuntimeException(e);
577                                 }
578                                 if(!hasPredefinedList) {
579                             if(oldSQL != null && !oldSQL.equals("")) {
580                                 ((IdNameSql)lookup).setSQL(oldSQL);
581                             }
582                                 }
583                     if(isVisible())
584                                  return sb.toString();
585                     else
586                      return "";   
587                         } else if (fieldType.equals(FFT_TEXT_W_POPUP)) {
588                                 //System.out.println("TEXT POPUP " + fieldName);
589                     String oldSQL = "";  
590                     IdNameValue idNamevalue = null;
591                     String fieldDefValue="";
592                     String fieldDefDisplay="";
593                     try {
594                         IdNameList lookup = getLookupList();
595                                         if(dependsOn != null && dependsOn != "" ) {
596                                                 IdNameSql lu = (IdNameSql) lookup;
597                                                 String SQL = getBaseWholeSQL();
598                                                 if(SQL.toLowerCase().indexOf(readOnly) != -1) {
599                                                         SQL = getBaseWholeReadonlySQL();
600                                                 }
601                                                 oldSQL = lu.getSql();
602                                                 if(formValues != null) {
603                                                                 Set set = formValues.entrySet();
604                                                                 String value = "";
605                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
606                                                                         Map.Entry entry = (Entry) iter.next();
607                                                                         value = (String) entry.getValue();
608                                                                         if(inSchedule) {
609                                                                                 try {
610                                                                                         value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8");
611                                                                                 } catch (UnsupportedEncodingException ex) {
612                                                                                         
613                                                                                 }
614                                                                         }                                                                       
615                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
616 //                                                                      if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1) {
617                                                         if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1 || SQL.indexOf("'"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"'")!=-1 
618                                                                         || SQL.indexOf("'%"+"["+entry.getKey()+"]"+"%'")!=-1 || SQL.indexOf("'%"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"%'")!=-1 
619                                                                         || SQL.indexOf("'_"+"["+entry.getKey()+"]"+"_'")!=-1 || SQL.indexOf("'_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_'")!=-1 
620                                                                 || SQL.indexOf("'%_"+"["+entry.getKey()+"]"+"_%'")!=-1 || SQL.indexOf("'%_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_%'")!=-1) {
621                                                                                 
622                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl(
623                                                                                                 value, "NULL"));
624                                                                         } else {
625                                                                                 // Added to prevent SQL Injection
626                                                                                 if(SQL.indexOf("["+entry.getKey()+"]")!=-1) {
627                                                                                         try {
628                                                                                                 double vD = Double.parseDouble(value);
629                                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl(
630                                                                                                                 value, "NULL"));
631                                                                                                 } catch (NumberFormatException ex) {
632                                                                                                         throw new UserDefinedException("Expected number, Given String for the form field \"" + "["+entry.getKey()+"]"+"\"");
633                                                                                                 }
634                                                                                 }
635                                                                         }
636                                                                         }
637                                                 if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) 
638                                                         lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
639                                                 else
640                                                         lookup = new IdNameSql(-1,SQL,null);
641                                                 }
642                                         }
643                                 //lookupList = lookup;
644                         
645                         if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) {
646                                 lookup.loadUserData(0, "", getDbInfo(), getUserId());
647                                 for (lookup.resetNext(); lookup.hasNext();) {
648                                         idNamevalue = lookup.getNext();
649                                     break;
650                                     
651                                 }
652                                 fieldDefValue = nvl(idNamevalue.getId());
653                             fieldDefDisplay = nvl(idNamevalue.getName());                       
654                         }  else {
655                         try {
656                                                 // -2 indicates to run the whole sql for matching value
657                                                         lookup.loadUserData(-2, "", getDbInfo(), getUserId());
658                                 lookup.trimToSize();
659                                                 for (lookup.resetNext(); lookup.hasNext();) {
660                                                         IdNameValue value = lookup.getNext();
661                                                         if(value != null && value.getId() != null && value.getName() != null ) {
662                                             fieldDefValue = nvl(value.getId());
663                                                         if (fieldValue != null && fieldValue.equals(value.getId())) {
664                                                                 fieldDefDisplay = nvl(value.getName());
665                                                                 break;
666                                                         }
667                                                         else {
668                                                                 fieldDefValue = "";
669                                                                 fieldDefDisplay = "";
670                                                         }
671                                                 }
672                                           }
673                                                 if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) {
674                                                         fieldDefDisplay = nvl(fieldDefValue);
675                                                 }
676                                                 
677                                     if(oldSQL != null && !oldSQL.equals("")) {
678                                         ((IdNameSql)lookup).setSQL(oldSQL);
679                                     }
680
681                                 } catch (Exception e) {
682                                         //throw new RaptorRuntimeException(e);
683                                         }
684                        
685                                                 
686                         //----- END ---//
687                         
688                    
689                         if(getFieldDefaultSQL()!=null  && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0))  {
690                             fieldDefValue = nvl((idNamevalue!=null)?idNamevalue.getId():"");
691                             fieldDefDisplay = nvl((idNamevalue!=null)?idNamevalue.getName():"");
692                         } else {
693                                 if(fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0) fieldValue="";
694                             fieldDefValue = nvl(fieldDefValue);
695                             fieldDefDisplay = nvl(fieldDefDisplay);
696                         }
697                         
698                     }
699                     }catch(Exception e) { //throw new RaptorRuntimeException(e);
700                     }
701                      if(isVisible()) {
702                                   /* return "<input type=text class=\"text\" size=30 maxlength=50 id=\"" + fieldName +"\" name=\"" + fieldName + "\" value=\""
703                                                 + nvl(fieldDefValue) + "\">\n" + "<a href=\"javascript:showArgPopupNew('"
704                                                 + fieldName + "', 'document.formd." + fieldName
705                                                 + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL()
706                                                 + "shareicon.gif\" " + getHelpLink(fieldName);
707                                                 */
708                                    return "obj.value=\""+Utils.singleQuoteEncode(nvl(fieldDefValue))+"\";";
709                                                 
710                      } else 
711                         return ""; 
712                         } else if (fieldType.equals(FFT_HIDDEN) || fieldType.equals(FFT_TEXT) || fieldType.equals(FFT_TEXTAREA) ) {
713                                 StringBuffer sb = new StringBuffer();
714                                 String oldSQL = "";
715                                 try {
716                                         IdNameList lookup = getLookupList();
717                                         //if(dependsOn != null && dependsOn != "") {
718                                                 //if(dependsOn != null && dependsOn != "" ) {
719                                                         IdNameSql lu = (IdNameSql) lookup;
720                                                         String SQL = lu.getSql();
721                                                         //System.out.println("SQL HIDDEN 1 " + SQL);
722                                                         oldSQL = lu.getSql();
723                                                         if(formValues != null) {
724                                                                 Set set = formValues.entrySet();
725                                                                 String value = "";
726                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
727                                                                         Map.Entry entry = (Entry) iter.next();
728                                                                         value = (String) entry.getValue();
729                                                                         if(value == null || value.trim().length()<=0) {
730                                                                                 value = "NULL";
731                                                                         }
732                                                                         if(inSchedule) {
733                                                                                 try {
734                                                                                         value = java.net.URLDecoder.decode(value, "UTF-8");
735                                                                                 } catch (UnsupportedEncodingException ex) {
736                                                                                         
737                                                                                 }
738                                                                         }                                                                       
739                                                                         //System.out.println("HIDDEN " + "["+entry.getKey()+"]" + "-" + value);
740                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
741                                                                 }
742                                                                 
743                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
744                                                         }
745                                                         //System.out.println("SQL HIDDEN 2 " + SQL);
746                                                 //}
747                                 lookupList = lookup;
748                                         //}
749                                         if(nvl(fieldValue).length()>0 && (dependsOn == null || dependsOn.length()<=0)) {
750                                                 sb.append((fieldValue!=null)?"obj.value=\""+nvl(fieldValue)+"\";":"");
751                                         } else if (lookup != null) {
752                                                 lookup.loadUserData(0, "", getDbInfo(), getUserId());
753                                                 int iCnt = 0;
754                                                 for (lookup.resetNext(); lookup.hasNext(); iCnt++) {
755                                                         IdNameValue value = lookup.getNext();
756                                                         //System.out.println("HIDDEN " + value.getId() + " " + value.getName());
757                                                         sb.append((value!=null)?"obj.value=\""+nvl(value.getId())+"\";":"");
758                                                         if(value.isReadOnly())
759                                                                 sb.append("obj.disabled=true;");
760                                                         else
761                                                                 sb.append("obj.disabled=false;");
762                                                         break;  
763                                                 } // for
764                                                 if(lookup.size()<=0) {
765                                                         sb.append("obj.value=\"\"");
766                                                         
767                                                 }
768                                         } else {
769                                                 sb.append((fieldValue!=null)?"obj.value=\""+Utils.singleQuoteEncode(nvl(fieldValue))+"\";":"");
770                                         }
771                             if(oldSQL != null && !oldSQL.equals("")) {
772                                 ((IdNameSql)lookup).setSQL(oldSQL);
773                             }                                   
774                                         // lookup.clearData();
775                                 } catch (Exception e) {
776                                          //throw new RaptorRuntimeException(e);
777                                 }
778                     //if(isVisible())
779                                   return sb.toString() ;
780                         } else if (fieldType.equals(FFT_LIST_BOX)) {
781                                 StringBuffer sb = new StringBuffer();
782                                 //System.out.println("COMBO BOX " + fieldName);
783                                 String oldSQL = "";
784                                 if (!required)
785                                         sb.append("obj.options[obj.options.length] = new Option('-->select value<--','');");
786
787                                 IdNameList lookup = getLookupList();
788                                 try {
789                                         if(!hasPredefinedList) {
790                                         //if(dependsOn != null && dependsOn != "") {
791                                                 //if(dependsOn != null && dependsOn != "" ) {
792                                                         IdNameSql lu = (IdNameSql) lookup;
793                                                         String SQL = "";
794                                                         SQL = lu.getSql();
795                                                         /*if(nvl(fieldValue,"").length()<=0)
796                                                                 SQL = lu.getSql();
797                                                         else
798                                                                 SQL = lu.getBaseSQLForPDFExcel(false);
799                                                                 */
800                                             //System.out.println("FORMFIELD 6666667  First" + ((IdNameSql)lookup).getSql());
801                                                         oldSQL = lu.getSql();
802                                                         //SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue);
803                                                         if(formValues != null) {
804                                                                 Set set = formValues.entrySet();
805                                                                 String value = "";
806                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
807                                                                         Map.Entry entry = (Entry) iter.next();
808                                                                         value = (String) entry.getValue();
809                                                                         if(inSchedule) {
810                                                                                 try {
811                                                                                         value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8");
812                                                                                 } catch (UnsupportedEncodingException ex) {
813                                                                                         
814                                                                                 }
815                                                                         }                                                                       
816                                                                         if (value!=null && (value.length() <=0 || value.equals("NULL")))  { 
817                                                                                 value = "NULL";
818                                                                                 SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value);
819                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
820                                                                         } else {                                                                        
821                                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
822                                                                         }
823                                                                 }
824                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
825                                                         }
826                                                 //}
827                                                 lookupList = lookup;
828                                                 
829                                         //}
830                                         try {
831                                                 lookup.loadUserData(0, "", getDbInfo(), getUserId());
832                                         } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e);
833                                         }
834                                         }
835                                         lookup.trimToSize();
836                                         
837                                         String selectedValue = "";
838                                         int count = 0;
839                                         for (lookup.resetNext(); lookup.hasNext();) {
840                                                 IdNameValue value = lookup.getNext();
841                                                 if(value != null && value.getId() != null && value.getName() != null ) {
842                                                         /*if (count == 0 && required) {
843                                                                 selectedValue = value.getId();
844                                                                 count++;
845                                                         } else  if (nvl(fieldValue).length()>0){
846                                                             if (fieldValue != null && fieldValue.equals(value.getId())){
847                                                                         selectedValue = value.getId();
848                                                                 }
849                                                                 count++;
850                                                         } else {
851                                                                 count++;
852                                                         } */
853                                                         if (count == 0) {
854                                                                 if(required){
855                                                                  selectedValue = value.getId();
856                                                                 }
857                                                                 count++;
858                                                         }
859                                                         sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName())+"','"+Utils.singleQuoteEncode(value.getId())+"');");
860                                                         if ((fieldValue != null && fieldValue.equals(value.getId()))){
861                                                                 sb.append("obj.options[obj.options.length-1].selected=true;");
862                                                                 selectedValue = value.getId();
863                                                         }
864                                                         if(value.isReadOnly())
865                                                                 sb.append("obj.disabled=true;");
866                                                         else
867                                                                 sb.append("obj.disabled=false;");
868                                                         
869                                                 }
870                                         } // for
871                                         if (formValues.containsKey(fieldDisplayName)){
872                                                 formValues.remove(fieldDisplayName);
873                                         }
874                                         formValues.put(fieldDisplayName, selectedValue);                                        
875                                 } catch (Exception e) {
876                                          //throw new RaptorRuntimeException(e);
877                                 }
878                                 if(!hasPredefinedList) {
879                             if(oldSQL != null && !oldSQL.equals("")) {
880                                 ((IdNameSql)lookup).setSQL(oldSQL);
881                             }
882                                 }
883                     //System.out.println("FORMFIELD 6666667 " + ((IdNameSql)lookup).getSql());
884                     if( isVisible())
885                         return sb.toString();
886                     else return "";
887                         } 
888
889                  return "";
890         }
891         
892         public String getHtml(String fieldValue, HashMap formValues, ReportRuntime rr, boolean inSchedule) throws RaptorRuntimeException {
893                  fieldValue = nvl(fieldValue, defaultValue);
894                  int MILLIS_IN_DAY = 1000 * 60 * 60 * 24;
895                  String readOnlyInSql = "ff_readonly";
896                  boolean readOnly = false;
897                  try {
898                          if(fieldValue !=null && fieldValue.length() > 0)
899                                  fieldValue = java.net.URLDecoder.decode(fieldValue, "UTF-8");
900                  } catch (UnsupportedEncodingException ex) {}
901                    catch (IllegalArgumentException ex1){}
902                         catch (Exception ex2){}
903                 //System.out.println(fieldName + " " + fieldType + " " + fieldValue);
904         if (fieldType.equals(FFT_TEXT_W_POPUP)) {
905                         //System.out.println("TEXT POPUP " + fieldName);
906             String oldSQL = "";  
907             IdNameValue idNamevalue = null;
908             String fieldDefValue="";
909             String fieldDefDisplay="";
910             IdNameList lookup = null;
911             try {
912                 lookup = getLookupList();
913                 if(!hasPredefinedList) {
914                                 if(dependsOn != null && dependsOn != "" ) {
915                                         IdNameSql lu = (IdNameSql) lookup;
916                                         String SQL = getBaseWholeSQL();
917                                         if(SQL.toLowerCase().indexOf(readOnlyInSql) != -1) {
918                                                 SQL = getBaseWholeReadonlySQL();
919                                         }
920                                         oldSQL = lu.getSql();
921                                         if(formValues != null) {
922                                                         Set set = formValues.entrySet();
923                                                         String value = "";
924                                                         for(Iterator iter = set.iterator(); iter.hasNext(); ) {
925                                                                 Map.Entry entry = (Entry) iter.next();
926                                                                 value = (String) entry.getValue();
927                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
928 //                                                              if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1) {
929                                                 if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1 || SQL.indexOf("'"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"'")!=-1 
930                                                                 || SQL.indexOf("'%"+"["+entry.getKey()+"]"+"%'")!=-1 || SQL.indexOf("'%"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"%'")!=-1 
931                                                                 || SQL.indexOf("'_"+"["+entry.getKey()+"]"+"_'")!=-1 || SQL.indexOf("'_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_'")!=-1 
932                                                         || SQL.indexOf("'%_"+"["+entry.getKey()+"]"+"_%'")!=-1 || SQL.indexOf("'%_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_%'")!=-1) {
933                                                                         
934                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl(
935                                                                                         value, "NULL"));
936                                                                 } else {
937                                                                         // Added to prevent SQL Injection
938                                                                         if(SQL.indexOf("["+entry.getKey()+"]")!=-1) {
939                                                                                 try {
940                                                                                         double vD = Double.parseDouble(value);
941                                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl(
942                                                                                                         value, "NULL"));
943                                                                                         } catch (NumberFormatException ex) {
944                                                                                                 throw new UserDefinedException("Expected number, Given String for the form field \"" + "["+entry.getKey()+"]"+"\"");
945                                                                                         }
946                                                                         }
947                                                                 }
948                                                                 }
949                                         if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) 
950                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
951                                         else
952                                                 lookup = new IdNameSql(-1,SQL,null);
953                                         }
954                                 }
955                         //lookupList = lookup;
956                 
957                 if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) {
958                         lookup.loadUserData(0, "", getDbInfo(), getUserId());
959                         for (lookup.resetNext(); lookup.hasNext();) {
960                                 idNamevalue = lookup.getNext();
961                             break;
962                             
963                         }
964                         fieldDefValue = nvl(idNamevalue.getId());
965                     fieldDefDisplay = nvl(idNamevalue.getName());                       
966                 }  else {
967                 try {
968                                         // -2 indicates to run the whole sql for matching value
969                                                 lookup.loadUserData(-2, "", getDbInfo(), getUserId());
970                         } catch (Exception e) {
971                         //throw new RaptorRuntimeException(e);
972                             }
973                 
974                         lookup.trimToSize();
975                                         for (lookup.resetNext(); lookup.hasNext();) {
976                                                 IdNameValue value = lookup.getNext();
977                                                 if(value != null && value.getId() != null && value.getName() != null ) {
978                                     fieldDefValue = nvl(value.getId());
979                                                 if (fieldValue != null && fieldValue.equals(value.getId())) {
980                                                         fieldDefDisplay = nvl(value.getName());
981                                                         break;
982                                                 }
983                                                 else {
984                                                         fieldDefValue = "";
985                                                         fieldDefDisplay = "";
986                                                 }
987                                         }
988                                   }
989                                         if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) {
990                                                 fieldDefDisplay = nvl(fieldDefValue);
991                                         }
992
993                
994                                         
995                 //----- END ---//
996                 
997            
998                 if(getFieldDefaultSQL()!=null  && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0))  {
999                     fieldDefValue = nvl((idNamevalue!=null)?idNamevalue.getId():"");
1000                     fieldDefDisplay = nvl((idNamevalue!=null)?idNamevalue.getName():"");
1001                 } else {
1002                         if(fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0) fieldValue="";
1003                     fieldDefValue = nvl(fieldDefValue);
1004                     fieldDefDisplay = nvl(fieldDefDisplay);
1005                 }
1006                 
1007             }
1008                 } else {
1009                         lookup.trimToSize();
1010                                 for (lookup.resetNext(); lookup.hasNext();) {
1011                                         IdNameValue value = lookup.getNext();
1012                                         if(value != null && value.getId() != null && value.getName() != null ) {
1013                             fieldDefValue = nvl(value.getId());
1014                                         if (fieldValue != null && fieldValue.equals(value.getId())) {
1015                                                 fieldDefDisplay = nvl(value.getName());
1016                                                 break;
1017                                         }
1018                                         else {
1019                                                 fieldDefValue = "";
1020                                                 fieldDefDisplay = "";
1021                                         }
1022                                 }
1023                           }
1024                                 if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) {
1025                                         fieldDefDisplay = nvl(fieldDefValue);
1026                                 }                       
1027                 }
1028             }catch(Exception e) { //throw new RaptorRuntimeException(e);
1029             }
1030             
1031                         if(!hasPredefinedList) {
1032                     if(oldSQL != null && !oldSQL.equals("")) {
1033                         ((IdNameSql)lookup).setSQL(oldSQL);
1034                     }
1035                         }
1036             
1037              if(isVisible()) {
1038                           /* return "<input type=text class=\"text\" size=30 maxlength=50 id=\"" + fieldName +"\" name=\"" + fieldName + "\" value=\""
1039                                         + nvl(fieldDefValue) + "\">\n" + "<a href=\"javascript:showArgPopupNew('"
1040                                         + fieldName + "', 'document.formd." + fieldName
1041                                         + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL()
1042                                         + "shareicon.gif\" " + getHelpLink(fieldName);
1043                                         */
1044                         String progress = "<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div> ";
1045                  
1046                            return progress+"<input type=\"text\" class=\"text\" name=\""+getFieldName()+"_display\"  readonly=true value=\""+ fieldDefDisplay +"\""+ getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName) + " \n "
1047                                 +"<input type=\"hidden\" name=\""+getFieldName()+"\" value=\""+nvl(fieldDefValue)+"\"/> \n &nbsp;\n" 
1048                                 + "<a href=\"javascript:showArgPopupNew('"
1049                                         + fieldName + "', 'document.formd." + fieldName
1050                                         + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL()
1051                                         + "shareicon.gif\" " + getHelpLink(fieldName);
1052                                         
1053              } else 
1054                 return ""; 
1055                 } else if (fieldType.equals(FFT_TEXT)) {
1056             IdNameValue value = null;
1057             String strValue = "";
1058             boolean avail_ReadOnly = false;
1059             try {
1060                 IdNameList lookup = getLookupList();
1061                 IdNameSql lu = null;
1062                 String valueSQL = "";
1063                 String oldSQL = "";
1064                 if(lookup instanceof IdNameSql) {
1065                         lu = (IdNameSql) lookup;
1066                         if(lu.getSql().length() > 0) {
1067                                 valueSQL = lu.getSql();
1068                                 avail_ReadOnly = (valueSQL.toLowerCase().indexOf(readOnlyInSql)!=-1);
1069                                 //System.out.println("OLD SQL TEXT" + valueSQL);
1070                                                 //oldSQL = lu.getSql();
1071                                                 if(formValues != null) {
1072                                                         Set set = formValues.entrySet();
1073                                                         String value1 = "";
1074                                                         for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1075                                                                 Map.Entry entry = (Entry) iter.next();
1076                                                                 value1 = (String) entry.getValue();
1077                                                                 if (value1.length() <=0)  { 
1078                                                                         value1 = "NULL";
1079                                                                         valueSQL = Utils.replaceInString(valueSQL, "'["+entry.getKey()+"]'", value1);
1080                                                                         valueSQL = Utils.replaceInString(valueSQL, "["+entry.getKey()+"]", value1);
1081                                                                 } else {                                                                        
1082                                                                         valueSQL = Utils.replaceInString(valueSQL, "["+entry.getKey()+"]", value1);
1083                                                                 }
1084                                                         }
1085                                                         // should be value one.
1086                                                         //lookup = new IdNameSql(-1,valueSQL,lu.getDefaultSQL());
1087                                                 }                               
1088                         }
1089                         //lookupList = lookup;
1090                         //System.out.println("8888888 88 " + valueSQL);
1091                 }
1092                 if(valueSQL!=null && valueSQL.length()>0) {
1093                         DataSet ds = ConnectionUtils.getDataSet(valueSQL.toString(), dbInfo);
1094                         strValue = ds.getString(0,1);
1095                         if(avail_ReadOnly) readOnly = ds.getString(0, 2).toUpperCase().startsWith("Y")||ds.getString(0, 2).toUpperCase().startsWith("T");;
1096                 }
1097             }catch(Exception e) {  //throw new RaptorRuntimeException(e); 
1098             }
1099             String returnString = "";
1100             String timestamp ="", timestamphr = "", timestampmin = "", timestampsec = "";
1101             
1102             returnString = "<input type=text class=\"text\" size="+(validationType.equals(VT_DATE)?"10":"30") +" maxlength=50 id=\"" + fieldName +"\" name=\""
1103                 + fieldName + "\" id='"+ fieldName + "' " 
1104                 + (((validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR) ||validationType.equals(VT_TIMESTAMP_MIN) ||validationType.equals(VT_TIMESTAMP_SEC))&& !inSchedule) ? "" : "")
1105                 + getCallableJavascript(getFieldName(), rr) + " " + (readOnly?" readonly ":" ") + " value=\"";
1106
1107             
1108             /*if(getFieldDefaultSQL()!=null) 
1109              returnString += nvl(value.getId());
1110             else
1111              returnString += fieldValue;
1112              */
1113             if(fieldValue!=null && fieldValue.length()>0 && (!(fieldValue.toUpperCase().indexOf("SELECT ")!= -1 && fieldValue.toUpperCase().indexOf("FROM")!= -1)) ) {
1114                 if(validationType.startsWith("TIMESTAMP")) {
1115                         returnString += nvl((fieldValue!=null)?fieldValue.split(" ")[0]:"");
1116                         if(fieldValue!=null && fieldValue.length()>0) {
1117                                 timestamp = (fieldValue.split(" ").length > 1)?fieldValue.split(" ")[1]:"";
1118                                 String timestampArr[] = timestamp.split(":");
1119                                 if((timestampArr.length == 1) || (timestampArr.length == 2) || (timestampArr.length == 3)) 
1120                             timestamphr = timestampArr[0];
1121                                 if((timestampArr.length == 2) || (timestampArr.length == 3))
1122                             timestampmin = timestampArr[1];
1123                                 if(timestampArr.length == 3)
1124                                                         timestampsec = timestampArr[2];
1125                                                 }
1126                         
1127                         }  else   returnString += fieldValue;           
1128                 
1129             } else if(getFieldDefaultSQL()!=null) {
1130                 
1131                 if(validationType.startsWith("TIMESTAMP")) {
1132                         returnString += nvl((strValue.length()>0)?strValue.split(" ")[0]:"");
1133                         if(strValue.length()>0) {
1134                                 timestamp = (strValue.split(" ").length > 1)?strValue.split(" ")[1]:"";
1135                                 String timestampArr[] = timestamp.split(":");
1136                                 if((timestampArr.length == 1) || (timestampArr.length == 2) || (timestampArr.length == 3)) 
1137                             timestamphr = timestampArr[0];
1138                                 if((timestampArr.length == 2) || (timestampArr.length == 3))
1139                             timestampmin = timestampArr[1];
1140                                 if(timestampArr.length == 3)
1141                                                         timestampsec = timestampArr[2];
1142                                                 }
1143                         
1144                         } else if (nvl(strValue).length()>0) {
1145                                 returnString +=  strValue;
1146                         } else
1147                         returnString += nvl((value!=null)?value.getId():"");
1148                 } else if (nvl(strValue).length()>0) {
1149                         returnString +=  strValue;
1150                 } else
1151                 returnString += nvl((value!=null)?value.getId():"");
1152     
1153             
1154             /*returnString += "\">"
1155                 + (validationType.equals(VT_DATE) ? "\n\t\t\t<a href=\"#\" onClick=\"window.dateField=document."
1156                         + HTML_FORM
1157                         + "."
1158                         + fieldName
1159                         + ";calendar=window.open('"
1160                         + AppUtils.getRaptorActionURL()
1161                         + "popup.calendar','cal','WIDTH=200,HEIGHT=250');return false;\">"
1162                         + "\n\t\t\t\t<img src=\""
1163                         + AppUtils.getImgFolderURL()
1164                         + "calender_icon.gif\" align=absmiddle border=0 width=20 height=20></a>"
1165                         : ""); */
1166             
1167             SimpleDateFormat dtf = new SimpleDateFormat("MM/dd/yyyy");
1168             String stRangeText = this.getRangeStartDate() == null ? null : dtf.format(this.getRangeStartDate().getTime());
1169             String endRangeText = this.getRangeEndDate() == null ? null : dtf.format(this.getRangeEndDate().getTime());
1170             /////////////////////////
1171             
1172             //get the date sqls
1173             
1174             //System.out.println("////////////start range date before Start" + this.getRangeStartDateSQL());
1175             
1176             if (this.getRangeStartDateSQL() != null && this.getRangeStartDateSQL().trim().toLowerCase().startsWith("select")){
1177                 //System.out.println("////////////start range date Starting");
1178                 String SQL = this.getRangeStartDateSQL();
1179                 if(formValues != null) {
1180                                 Set set = formValues.entrySet();
1181                                 String v = "";
1182                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1183                                         Map.Entry entry = (Entry) iter.next();
1184                                         v = (String) entry.getValue();
1185                                         //System.out.println("///////// key is " + entry.getKey() + " = " + v);
1186                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", v);
1187                                 }
1188                                 
1189                 }
1190                 //System.out.println("////////////start range date sql created" + SQL);
1191                 try{
1192                         DataSet ds = ConnectionUtils.getDataSet(SQL.toString(), dbInfo);
1193                         //System.out.println("////////////start range date is : " + ds.get(0));
1194                         dtf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1195                     Calendar tStart = Calendar.getInstance();
1196                     tStart.setTime(dtf.parse(ds.getString(0,0)));
1197                     dtf = new SimpleDateFormat("MM/dd/yyyy");                    
1198                     stRangeText = dtf.format(tStart.getTime().getTime()-MILLIS_IN_DAY);
1199                     
1200                 }catch(Exception e){
1201                         System.out.println("Exception////////// : start range date is : " + e);
1202                 }
1203             }
1204             
1205             if (this.getRangeEndDateSQL() != null && this.getRangeEndDateSQL().trim().toLowerCase().startsWith("select")){
1206                 //System.out.println("////////////end range date Starting");
1207                 String SQL = this.getRangeEndDateSQL();
1208                 if(formValues != null) {
1209                                 Set set = formValues.entrySet();
1210                                 String v = "";
1211                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1212                                         Map.Entry entry = (Entry) iter.next();
1213                                         v = (String) entry.getValue();
1214                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", v);
1215                                 }
1216                                 
1217                 }
1218                 try{
1219                         DataSet ds = ConnectionUtils.getDataSet(SQL.toString(), dbInfo);
1220                         //System.out.println("////////////end range date is : " + ds.get(0));
1221                         dtf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1222                     Calendar tStart = Calendar.getInstance();
1223                     tStart.setTime(dtf.parse(ds.getString(0,0)));
1224                     dtf = new SimpleDateFormat("MM/dd/yyyy");                    
1225                     //endRangeText = dtf.format(tStart.getTime());
1226                     endRangeText = dtf.format(tStart.getTime().getTime()+MILLIS_IN_DAY);
1227                 }catch(Exception e){
1228                         System.out.println("Exception////////// : end range date is : " + e);
1229                 }
1230             }
1231             
1232
1233             //////////////////////
1234             String calendarOnClickMethodCall = "";
1235             String timeStampStr = "";
1236             if (stRangeText == null || endRangeText == null)
1237                 calendarOnClickMethodCall = "'oCalendar.select(document." + HTML_FORM + "." + fieldName + ", event,\""+ Globals.getCalendarOutputDateFormat() +"\"); return false;'";
1238             else
1239                 calendarOnClickMethodCall = "'oCalendar=new CalendarPopup(\"calendarDiv\", \"calendarFrame\");oCalendar.setCssPrefix(\"raptor\");oCalendar.addDisabledDates(null, \"" + stRangeText + "\"); oCalendar.addDisabledDates(\"" + endRangeText + "\", null); oCalendar.select(document." + HTML_FORM + "." + fieldName + ", event,\""+ Globals.getCalendarOutputDateFormat() +"\"); return false;'";
1240             returnString += "\" " + getHelpLink(fieldName) 
1241                 + (validationType.equals(VT_DATE) || validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) 
1242                                 ? "\n\t\t\t<img src='" + AppUtils.getImgFolderURL()+ "calender_icon.gif' align=absmiddle border=0 width='20' height='20' onClick=" + calendarOnClickMethodCall + " style='cursor:hand'>"
1243                                 : ""); 
1244             if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) ) {
1245                 //Add Hours/Minutes and Seconds.
1246                 timeStampStr = " <font class=rtabletext>Hour&nbsp;</font><select id = \""+ fieldName+ "_Hr\" name=\""+ fieldName+ "_Hr\" "+ (readOnly?"disabled":"")+" >";
1247                 int hour = 0;
1248                 int t_hr = 0;
1249                 try {
1250                         hour = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Hr"),"0"));
1251                         if(hour == 0) {
1252                                 if(inSchedule) hour = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Hr")),"0"));
1253                         }
1254 //                      System.out.println("Hour =" + hour);
1255                 } catch (NumberFormatException ex) { hour = 0; }
1256                 try {
1257                         t_hr = Integer.parseInt(timestamphr);
1258 //                      System.out.println("THR =" + t_hr);
1259                 } catch (NumberFormatException ex) { t_hr = 0;}
1260                 
1261                 if(hour <= 0) hour = t_hr;
1262   //            System.out.println("Form Values 887 " + formValues);
1263                                 /*if (formValues.containsKey(fieldDisplayName+"_Hr")){
1264                                         formValues.remove(fieldDisplayName+"_Hr");
1265                                         formValues.put(fieldDisplayName+"_Hr", hour);
1266                                 } else
1267                                         formValues.put(fieldDisplayName+"_Hr", hour);
1268                 System.out.println("Form Values 887 " + formValues);
1269                 */
1270                                 
1271                 //int t_min = Integer.parseInt(timestampmin);
1272                 //int t_sec = Integer.parseInt(timestampsec);
1273                 for (int i = 0; i < 24; i++) {
1274                         if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">00</option>";
1275                         else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">" + "0"+i + "</option>";
1276                         else timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">" + i + "</option>";
1277                                         
1278                                 }
1279                 timeStampStr += "</select>";
1280             }   
1281                 //Minutes
1282             if( validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) ) {
1283                 int minutes = 0;
1284                 int t_min = 0;
1285                 try {
1286                         minutes = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Min"),"0"));
1287                         if(minutes == 0) {
1288                                 if(inSchedule) minutes = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Min")),"0"));
1289                         }
1290                 } catch (NumberFormatException ex) {minutes = 0;}
1291                 try {
1292                         t_min = Integer.parseInt(timestampmin);
1293                 } catch (NumberFormatException ex) { t_min = 0;}
1294                 
1295                 if(minutes <= 0) minutes = t_min;
1296                                 /*if (formValues.containsKey(fieldDisplayName+"_Min")){
1297                                         formValues.remove(fieldDisplayName+"_Min");
1298                                         formValues.put(fieldDisplayName+"_Min", minutes);
1299                                 } else
1300                                         formValues.put(fieldDisplayName+"_Min", minutes);               
1301                 */ 
1302                 timeStampStr += " <font class=rtabletext>Min&nbsp;</font><select id = \""+ fieldName+ "_Min\" name=\""+ fieldName+ "_Min\" "+ (readOnly?"disabled":"")+" >";
1303                 for (int i = 0; i < 60; i++) {
1304                         if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">00</option>";
1305                         else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">" + "0"+i + "</option>";
1306                         else timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">" + i + "</option>";
1307                                 }
1308                 timeStampStr += "</select>";
1309             }
1310                 //Seconds
1311             if( validationType.equals(VT_TIMESTAMP_SEC) ) {
1312                 int seconds = 0;
1313                 int t_sec = 0;
1314                 try {
1315                         seconds = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Sec"),"0"));
1316                         if(seconds == 0) {
1317                                 if(inSchedule) seconds = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Sec")),"0"));
1318                         }
1319                                 } catch (NumberFormatException ex) {seconds = 0;}
1320                 try {
1321                         t_sec = Integer.parseInt(timestampsec);
1322                 } catch (NumberFormatException ex) { t_sec = 0;}
1323                 
1324                 if(seconds <= 0) seconds = t_sec;
1325                                 /*if (formValues.containsKey(fieldDisplayName+"_Sec")){
1326                                         formValues.remove(fieldDisplayName+"_Sec");
1327                                         formValues.put(fieldDisplayName+"_Sec", seconds);
1328                                 } else
1329                                         formValues.put(fieldDisplayName+"_Sec", seconds);               
1330                */
1331                 timeStampStr += " <font class=rtabletext>Sec&nbsp;</font><select id = \""+ fieldName+ "_Sec\" name=\""+ fieldName+ "_Sec\" "+ (readOnly?"disabled":"")+" >";
1332                 for (int i = 0; i < 60; i++) {
1333                         if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">00</option>";
1334                         else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">" + "0"+i + "</option>";
1335                         else timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">" + i + "</option>";
1336                                 }
1337                 timeStampStr += "</select>";
1338             }
1339                 
1340             returnString += timeStampStr;
1341             String checkboxStr = "";
1342             if(inSchedule && (validationType.equals(VT_DATE) || validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) ) {
1343                 if(!Globals.isScheduleDateParamAutoIncr()) {
1344                         checkboxStr = /*checkboxStr +"  "+ */ "<input type=\"checkbox\" name=\""+getFieldName()+"_auto\" value=\"_auto\" checked/>";
1345                 } else {
1346                         checkboxStr = /*checkboxStr +"  "+ */"<input type=\"hidden\" name=\""+getFieldName()+"_auto\" value=\"_auto\"/>";
1347                 }
1348                 /*if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) {
1349                         checkboxStr = checkboxStr +"  "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Hr_auto\" value=\"_auto\"/>";
1350                 }
1351                 if(validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) {
1352                         checkboxStr = checkboxStr +"  "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Min_auto\" value=\"_auto\"/>";
1353                 }
1354                 if(validationType.equals(VT_TIMESTAMP_SEC)) {
1355                         checkboxStr = checkboxStr +"  "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Sec_auto\" value=\"_auto\"/>";
1356                 }*/
1357             }
1358             if(isVisible())
1359                          return returnString+checkboxStr;
1360             else return "";
1361                 } else if (fieldType.equals(FFT_TEXTAREA)) {
1362                         
1363                         if(nvl(fieldValue).length()>0) {
1364                                 fieldValue = Pattern.compile("(^[\r\n])|\\([\\']", Pattern.DOTALL).matcher(fieldValue).replaceAll("");
1365                                 fieldValue = Pattern.compile("[\\']\\)", Pattern.DOTALL).matcher(fieldValue).replaceAll("");
1366                                 fieldValue = fieldValue.replaceAll("','",","); // changed from "|"
1367                                 fieldValue = fieldValue.replaceAll("' , '","\r\n");
1368                         }
1369                         
1370             if(isVisible())
1371                           return "<textarea rows=4 cols=30 id=\"" + fieldName +"\" name=\"" + fieldName + "\""+ getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName) + nvl(fieldValue)
1372                                         + "</textarea>";
1373             else
1374                 return "";
1375                 } else if (fieldType.equals(FFT_COMBO_BOX)) {
1376                         StringBuffer sb = new StringBuffer();
1377                         //System.out.println("COMBO BOX " + fieldName);
1378                         String oldSQL = "";
1379
1380                         IdNameList lookup = getLookupList();
1381                         try {
1382                                 if(!hasPredefinedList) {
1383                                 //if(dependsOn != null && dependsOn != "") {
1384                                         //if(dependsOn != null && dependsOn != "" ) {
1385                                                 IdNameSql lu = (IdNameSql) lookup;
1386                                                 String SQL = lu.getSql();
1387                                     //System.out.println("FORMFIELD 6666667  First" + ((IdNameSql)lookup).getSql());                                            
1388                                                 oldSQL = lu.getSql();
1389                                                 if(formValues != null) {
1390                                                         Set set = formValues.entrySet();
1391                                                         String value = "";
1392                                                         for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1393                                                                 Map.Entry entry = (Entry) iter.next();
1394                                                                 value = (String) entry.getValue();
1395                                                                 if (value!=null && (value.length() <=0 || value.equals("NULL")))  { 
1396                                                                         value = "NULL";
1397                                                                         SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value);
1398                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
1399                                                                 } else {                                                                        
1400                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
1401                                                                 }
1402                                                         }
1403                                                         lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
1404                                                 }
1405                                         //}
1406                                         lookupList = lookup;
1407                                  
1408                                         
1409                                 //}
1410                                 try {
1411                                         lookup.loadUserData(0, "", getDbInfo(), getUserId());
1412                                 } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e);
1413                                 }
1414                                 }
1415                                 lookup.trimToSize();
1416                                 
1417                                 for (lookup.resetNext(); lookup.hasNext();) {
1418                                         IdNameValue value = lookup.getNext();
1419                                         readOnly = value.isReadOnly();
1420                                         break;
1421                                 }
1422                                 
1423                                 String selectedValue = "";
1424                                 int count = 0;
1425                                 sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>");
1426                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1427                                 sb.append(fieldName);
1428                                 sb.append("\" "+ (readOnly?"disabled":"")+"  size=1 " + getCallableJavascript(getFieldName(), rr)  + getHelpLink(fieldName));
1429                                 if (!required)
1430                                         sb.append("<option value=\"\">-->select value<--");
1431                                 
1432                                 for (lookup.resetNext(); lookup.hasNext();) {
1433                                         IdNameValue value = lookup.getNext();
1434                                         if(value != null && value.getId() != null && value.getName() != null ) {
1435                                                 /*if (count == 0 && required) {
1436                                                         selectedValue = value.getId();
1437                                                         count++;
1438                                                 } else  if (nvl(fieldValue).length()>0){
1439                                                     if (fieldValue != null && fieldValue.equals(value.getId())){
1440                                                                 selectedValue = value.getId();
1441                                                         }
1442                                                         count++;
1443                                                 } else {
1444                                                         count++;
1445                                                 } */
1446                                                 if (count == 0) {
1447                                                         if(required){
1448                                                          selectedValue = value.getId();
1449                                                         }
1450                                                         count++;
1451                                                 }
1452                                                 sb.append("<option value=\"");
1453                                                 sb.append(value.getId());
1454                                                 
1455                                                 if (nvl(fieldValue).length()>0) { 
1456                                                         if (fieldValue.equals(value.getId())) { // || (value.isDefaultValue()))
1457                                                                 sb.append("\" selected>");
1458                                                                 selectedValue = value.getId();
1459                                                         }
1460                                                         else
1461                                                                 sb.append("\">");
1462                                                 } else {
1463                                                         if(value!=null && value.isDefaultValue()) {
1464                                                                 sb.append("\" selected>");
1465                                                                 selectedValue = value.getId();
1466                                                         } else {
1467                                                                 sb.append("\">");
1468                                                         }
1469                                                 }
1470                                                 
1471                                                 sb.append(value.getName());
1472                                                 sb.append("</option>\n");
1473                                         }
1474                                 } // for
1475                                 if (formValues.containsKey(fieldDisplayName)){
1476                                         formValues.remove(fieldDisplayName);
1477                                 }
1478                                 formValues.put(fieldDisplayName, selectedValue);                                        
1479                         } catch (Exception e) {
1480                                  //throw new RaptorRuntimeException(e);
1481                         }
1482                         if(!hasPredefinedList) {
1483                     if(oldSQL != null && !oldSQL.equals("")) {
1484                         ((IdNameSql)lookup).setSQL(oldSQL);
1485                     }
1486                         }
1487             //System.out.println("FORMFIELD 6666667 " + ((IdNameSql)lookup).getSql());
1488                         if(sb.length()<=0) {
1489                                 sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>");
1490                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1491                                 sb.append(fieldName);
1492                                 sb.append("\" "+ (readOnly?"disabled":"")+"  size=1 " + getCallableJavascript(getFieldName(), rr)  + getHelpLink(fieldName));
1493                         }
1494                         
1495             sb.append("</select>");
1496             if( isVisible())
1497                 return sb.toString();
1498             else return "";
1499                 } else if (fieldType.equals(FFT_LIST_BOX)) {
1500                         StringBuffer sb = new StringBuffer();
1501                         String oldSQL = "";
1502                         IdNameList lookup =  null;
1503
1504                         lookup = getLookupList();
1505                         String selectedValue = "";
1506                         try {
1507                                 if(!hasPredefinedList) {
1508                                 //if(dependsOn != null && dependsOn != "") {
1509                                         //if(dependsOn != null && dependsOn != "" ) {
1510                                                 IdNameSql lu = (IdNameSql) lookup;
1511                                                 String SQL = lu.getSql();
1512                                                 oldSQL = lu.getSql();
1513                                                 if(formValues != null) {
1514                                                         Set set = formValues.entrySet();
1515                                                         String value = "";
1516                                                         for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1517                                                                 Map.Entry entry = (Entry) iter.next();
1518                                                                 value = (String) entry.getValue();
1519                                                                 SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
1520                                                         }
1521                                                         lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
1522                                                 }
1523                                         //}
1524                         lookupList = lookup;
1525                                 //}
1526                     try {
1527                         lookup.loadUserData(0, "", getDbInfo(), getUserId());
1528                     } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e);
1529                                 }
1530                                 }
1531                                 lookup.trimToSize();
1532                                 
1533                                 for (lookup.resetNext(); lookup.hasNext();) {
1534                                         IdNameValue value = lookup.getNext();
1535                                         readOnly = value.isReadOnly();
1536                                         break;
1537                                 }
1538                                 
1539                                 int iCnt = 0;
1540                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1541                                 sb.append(fieldName);
1542                                 sb.append("\" "+ (readOnly?"disabled":"")+"  size=4 " +  getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName));
1543                                 if (!required)
1544                                         sb.append("<option value=\"\">-->select value<--");
1545                                 
1546                                 for (lookup.resetNext(); lookup.hasNext(); iCnt++) {
1547                                         IdNameValue value = lookup.getNext();
1548                                         sb.append("<option value=\"");
1549                                         sb.append((value!=null)?value.getId():"");
1550                                         if (nvl(fieldValue).length()>0) {
1551                                                 if (fieldValue.equals((value!=null)?value.getId():"") || (fieldValue.equals("") && required && iCnt == 0)) {
1552                                                         sb.append("\" selected>");
1553                                                         selectedValue = value.getId();
1554                                                 } else {
1555                                                         sb.append("\">");
1556                                                 }
1557                                         } else {
1558                                                 if(value!=null && value.isDefaultValue()) {
1559                                                         sb.append("\" selected>");
1560                                                         selectedValue = value.getId();
1561                                                 } else {
1562                                                         sb.append("\">");
1563                                                 }
1564                                         }
1565                                         if (formValues.containsKey(fieldDisplayName)){
1566                                                 formValues.remove(fieldDisplayName);
1567                                         }
1568                                         formValues.put(fieldDisplayName, selectedValue);                                        
1569                                         
1570                                         sb.append((value!=null)?value.getName():"");
1571                                         sb.append("</option>\n");
1572                                 } // for
1573
1574                                 // lookup.clearData();
1575                         } catch (Exception e) {
1576                                  //throw new RaptorRuntimeException(e);
1577                         }
1578
1579                         if(sb.length()<=0) {
1580                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1581                                 sb.append(fieldName);
1582                                 sb.append("\" "+ (readOnly?"disabled":"")+"  size=4 " +  getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName));
1583                         }
1584                         
1585                         sb.append("</select>");
1586                         
1587                         if(!hasPredefinedList) {
1588                     if(oldSQL != null && !oldSQL.equals("")) {
1589                         ((IdNameSql)lookup).setSQL(oldSQL);
1590                     }
1591                         }
1592                         
1593             if(isVisible())
1594                           return sb.toString();
1595             else
1596              return "";   
1597                 } else if (fieldType.equals(FFT_HIDDEN)) {
1598                         StringBuffer sb = new StringBuffer();
1599                         String oldSQL = "";
1600                         String progress = "<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div> ";
1601                         sb.append(progress);
1602                         sb.append("<input id=\"" + fieldName +"\" name=\"");
1603                         sb.append(fieldName);
1604                         sb.append("\" type=\"hidden\"");
1605                         IdNameList lookup = null;
1606                         
1607                         try {
1608                                 lookup = getLookupList();
1609                                 if(lookup != null) {
1610                                         //if(dependsOn != null && dependsOn != "") {
1611                                                 //if(dependsOn != null && dependsOn != "" ) {
1612                                                         IdNameSql lu = (IdNameSql) lookup;
1613                                                         String SQL = lu.getSql();
1614                                                         //System.out.println("SQL HIDDEN 1 " + SQL);
1615                                                         oldSQL = lu.getSql();
1616                                                         if(formValues != null) {
1617                                                                 Set set = formValues.entrySet();
1618                                                                 String value = "";
1619                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1620                                                                         Map.Entry entry = (Entry) iter.next();
1621                                                                         value = (String) entry.getValue();
1622                                                                         //System.out.println("HIDDEN " + "["+entry.getKey()+"]" + "-" + value);
1623                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
1624                                                                 }
1625                                                                 
1626                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
1627                                                         }
1628                                                         //System.out.println("SQL HIDDEN 2 " + SQL);
1629                                                 //}
1630                                 lookupList = lookup;
1631                                         //}
1632                                         if(nvl(fieldValue).length()>0 && (dependsOn == null || dependsOn.length()<=0)) {
1633                                                 sb.append(" value=\"");
1634                                                 sb.append((fieldValue!=null)?fieldValue:"");
1635                                                 sb.append("\">");
1636                                         } else  if (lookup != null) {
1637                                                 lookup.loadUserData(0, "", getDbInfo(), getUserId());
1638                                                 int iCnt = 0;
1639                                                 for (lookup.resetNext(); lookup.hasNext(); iCnt++) {
1640                                                         IdNameValue value = lookup.getNext();
1641                                                         //System.out.println("HIDDEN " + value.getId() + " " + value.getName());
1642                                                         sb.append(" value=\"");
1643                                                         sb.append((value!=null)?value.getId():"");
1644                                                         sb.append("\">");
1645                                                         break;  
1646                                                 } // for
1647                                                 if(lookup.size()<=0) {
1648                                                         sb.append(" value=\"");
1649                                                         sb.append("\">");
1650                                                         
1651                                                 }
1652                                         } else {
1653                                                 sb.append(" value=\"");
1654                                                 sb.append((fieldValue!=null)?fieldValue:"");
1655                                                 sb.append("\"/>");
1656                                         }
1657                                 } else {
1658                                         sb.append(" value=\"");
1659                                         sb.append((fieldValue!=null)?fieldValue:"");
1660                                         sb.append("\"/>");
1661                                 }
1662                     if(oldSQL != null && !oldSQL.equals("")) {
1663                         ((IdNameSql)lookup).setSQL(oldSQL);
1664                     }                           
1665                                 // lookup.clearData();
1666                         } catch (Exception e) {
1667                                 sb.append(" value=\"\"/>");
1668                                  //throw new RaptorRuntimeException(e);
1669                         }
1670                         
1671                         if(!hasPredefinedList) {
1672                     if(oldSQL != null && !oldSQL.equals("")) {
1673                         ((IdNameSql)lookup).setSQL(oldSQL);
1674                     }
1675                         }                       
1676             //if(isVisible())
1677                           return sb.toString() ;
1678                 } else if (fieldType.equals(FFT_RADIO_BTN)) {
1679                         StringBuffer sb = new StringBuffer();
1680                         if (!required) {
1681                                 sb.append("<input id=\"" + fieldName +"\" type=radio name=\"");
1682                                 sb.append(fieldName);
1683                                 sb.append("\" value=\"\"");
1684                                 if (fieldValue.length() == 0)
1685                                         sb.append(" checked");
1686                                 //sb.append( getCallableJavascript(getFieldName(), rr) );
1687                                 sb.append(getHelpLink(fieldName)+ " Any<br>\n");
1688                         }
1689
1690                         try {
1691                                 IdNameList lookup = getLookupList();
1692                                 lookup.loadUserData(0, "", getDbInfo(),getUserId());
1693                                 String selectedValue = "";
1694
1695                                 int iCnt = 0;
1696                                 for (lookup.resetNext(); lookup.hasNext(); iCnt++) {
1697                                         IdNameValue value = lookup.getNext();
1698                                         sb.append("<input id=\"" + fieldName +"\" type=radio name=\"");
1699                                         sb.append(fieldName);
1700                                         sb.append("\" value=\"");
1701                                         sb.append((value!=null)?value.getId():"");
1702                                         if (nvl(fieldValue).length()>0) {
1703                                                 if (fieldValue.equals((value!=null)?value.getId():"") || (fieldValue.equals("") && required && iCnt == 0)) {
1704                                                         sb.append("\" checked>");
1705                                                         selectedValue = value.getId();
1706                                                 } else {
1707                                                         sb.append("\">");
1708                                                 }
1709                                         } else {
1710                                                 if(value!=null && value.isDefaultValue()) {
1711                                                         sb.append("\" checked>");
1712                                                         selectedValue = value.getId();
1713                                                 } else {
1714                                                         sb.append("\">");
1715                                                 }
1716                                         }
1717                                         sb.append((value!=null)?value.getName():"");
1718                                         sb.append("<br>\n");
1719                                 } // for
1720                                 if (formValues.containsKey(fieldDisplayName)){
1721                                         formValues.remove(fieldDisplayName);
1722                                 }
1723                                 formValues.put(fieldDisplayName, selectedValue);                                        
1724
1725                                 // lookup.clearData();
1726                         } catch (Exception e) {
1727                                  throw new RaptorRuntimeException(e);
1728                         }
1729             if(isVisible()) 
1730                          return sb.toString() ;
1731             else
1732               return "";  
1733                 } else if (fieldType.equals(FFT_CHECK_BOX)) {
1734                         StringBuffer sb = new StringBuffer();
1735
1736                         fieldValue = '|' + fieldValue + '|';
1737                         int count = 0 ;
1738                         try {
1739                                 String selectedValue = "";
1740                                 IdNameList lookup = getLookupList();
1741                                 if(lookup != null) {
1742                                         lookup.loadUserData(0, "", getDbInfo(), getUserId());
1743                                         
1744                                         for (lookup.resetNext(); lookup.hasNext();) {
1745                                                 count++;
1746                                                 IdNameValue value = lookup.getNext();
1747                                                 sb.append("<input id=\"" + fieldName +"\" type=checkbox name=\"");
1748                                                 sb.append(fieldName);
1749                                                 sb.append("\" value=\"");
1750                                                 sb.append((value!=null)?value.getId():"");
1751                                                 
1752                                                 if (!fieldValue.equals("||")) { 
1753                                                         if (fieldValue.indexOf('|' + ((value!=null)?value.getId():"") + '|') >= 0) {  // || (value.isDefaultValue()))
1754                                                                 sb.append("\" checked " + getHelpLink(fieldName));
1755                                                                 selectedValue = value.getId();
1756                                                         }
1757                                                         else
1758                                                                 sb.append("\"" + getHelpLink(fieldName));
1759                                                 } else {
1760                                                         if(value!=null && value.isDefaultValue()) {
1761                                                                 sb.append("\" checked " + getHelpLink(fieldName));
1762                                                                 selectedValue = value.getId();
1763                                                         } else {
1764                                                                 sb.append("\"" + getHelpLink(fieldName));
1765                                                         }
1766                                                 }
1767                                                 
1768                                                 if(!(/*(value.getName().equals("Y")||value.getName().equals("N")) && */(!lookup.hasNext()) && count == 1))
1769                                                         sb.append((value!=null)?value.getName():"");
1770                                                 sb.append("<br>\n");
1771                                         } // for
1772                                         
1773                                         if (formValues.containsKey(fieldDisplayName)){
1774                                                 formValues.remove(fieldDisplayName);
1775                                         }
1776                                         formValues.put(fieldDisplayName, selectedValue);                                        
1777                                 }
1778
1779                                 // lookup.clearData();
1780                         } catch (Exception e) {
1781                                  throw new RaptorRuntimeException(e);
1782                         }
1783             if(isVisible()) 
1784                          return sb.toString();
1785             else
1786               return "";   
1787                 } else if (fieldType.equals(FFT_LIST_MULTI)) {
1788                         StringBuffer sb = new StringBuffer();
1789                         String oldSQL = "";
1790
1791                         fieldValue = '|' + fieldValue + '|';
1792                         IdNameList lookup = getLookupList();
1793                         try {
1794                                 if(!hasPredefinedList) {
1795                                         //if(dependsOn != null && dependsOn != "") {
1796                                                 //if(dependsOn != null && dependsOn != "" ) {
1797                                                         IdNameSql lu = (IdNameSql) lookup;
1798                                                         String SQL = lu.getSql();
1799                                                         oldSQL = lu.getSql();
1800                                                         if(formValues != null) {
1801                                                                 Set set = formValues.entrySet();
1802                                                                 String value = "";
1803                                                                 for(Iterator iter = set.iterator(); iter.hasNext(); ) {
1804                                                                         Map.Entry entry = (Entry) iter.next();
1805                                                                         value = (String) entry.getValue();
1806                                                                         SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value);
1807                                                                 }
1808                                                                 lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL());
1809                                                         }
1810                                                 //}
1811                                 lookupList = lookup;
1812                                         //}                             
1813                                         
1814                                         lookup.loadUserData(0, "", getDbInfo(),getUserId());
1815                                 }
1816                                 for (lookup.resetNext(); lookup.hasNext();) {
1817                                         IdNameValue value = lookup.getNext();
1818                                         readOnly = value.isReadOnly();
1819                                         break;
1820                                 }
1821
1822                                 sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>");
1823                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1824                                 sb.append(fieldName);
1825                                 sb.append("\" "+ (readOnly?"disabled":"")+"   size=\""+ multiSelectListSize +"\" multiple " + getCallableJavascript(getFieldName(), rr)  +  getHelpLink(fieldName));
1826                                 
1827                                 for (lookup.resetNext(); lookup.hasNext();) {
1828                                         IdNameValue value = lookup.getNext();
1829                                         sb.append("<option value=\"");
1830                                         sb.append((value!=null)?value.getId():"");
1831                                         if (!fieldValue.equals("||")) { 
1832                                                 if (fieldValue.indexOf('|' + ((value!=null)?value.getId():"") + '|') >= 0)  // || (value.isDefaultValue()))
1833                                                         sb.append("\" selected>");
1834                                                 else
1835                                                         sb.append("\">");
1836                                         } else {
1837                                                 if(value!=null && value.isDefaultValue()) {
1838                                                         sb.append("\" selected>");
1839                                                 } else {
1840                                                         sb.append("\">");
1841                                                 }
1842                                         }
1843                                         sb.append((value!=null)?value.getName():"");
1844                                         sb.append("</option>\n");
1845                                 } // for
1846
1847                                 // lookup.clearData();
1848                         } catch (Exception e) {
1849                                  //throw new RaptorRuntimeException(e);
1850                         }
1851                         if(!hasPredefinedList) {
1852                     if(oldSQL != null && !oldSQL.equals("")) {
1853                         ((IdNameSql)lookup).setSQL(oldSQL);
1854                     }
1855                         }
1856                         if(sb.length()<=0) {
1857                                 sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>");
1858                                 sb.append("<select id=\"" + fieldName +"\" name=\"");
1859                                 sb.append(fieldName);
1860                                 sb.append("\" "+ (readOnly?"disabled":"")+"   size=\""+ multiSelectListSize +"\" multiple " + getCallableJavascript(getFieldName(), rr)  +  getHelpLink(fieldName));                            
1861                         }
1862                         sb.append("</select>");
1863             if(isVisible())
1864                          return sb.toString();
1865             else
1866              return "";   
1867                 } else if (fieldType.equals(FFT_BLANK)) {
1868                         StringBuffer sb = new StringBuffer();
1869                         sb.append("&nbsp;");
1870                         return sb.toString();
1871                 } else
1872                         throw new org.openecomp.portalsdk.analytics.error.RaptorRuntimeException("FormField.getHtml: Unsupported form field type");
1873         } // getHtml
1874
1875         public String getValidateJavaScript() {
1876                 StringBuffer javaScript = new StringBuffer();
1877
1878                 if (fieldType.equals(FFT_TEXT_W_POPUP) || fieldType.equals(FFT_TEXT)
1879                                 || fieldType.equals(FFT_TEXTAREA)) {
1880                         if (required) {
1881                                 javaScript.append("\n\tif(document.");
1882                                 javaScript.append(HTML_FORM);
1883                                 javaScript.append(".");
1884                                 javaScript.append(fieldName);
1885                                 javaScript.append(".value==\"\") {\n\t\talert(\"Please enter value for ");
1886                                 javaScript.append(fieldDisplayName);
1887                                 javaScript.append("\");\n\t\tdocument.");
1888                                 javaScript.append(HTML_FORM);
1889                                 javaScript.append(".");
1890                                 javaScript.append(fieldName);
1891                                 javaScript.append(".focus();\n\t\tdocument.");
1892                                 javaScript.append(HTML_FORM);
1893                                 javaScript.append(".");
1894                                 javaScript.append(fieldName);
1895                                 javaScript.append(".select();\n\t\treturn false;\n\t}\n");
1896                         } // if
1897
1898                         if (!validationType.equals(VT_NONE)) {
1899                                 javaScript.append("\n\tif(! ");
1900                                 if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC))
1901                                         javaScript.append("checkDate(");
1902                                 else if (validationType.equals(VT_INT))
1903                                         javaScript.append("checkInteger(");
1904                                 else if (validationType.equals(VT_INT_POSITIVE))
1905                                         javaScript.append("checkPositiveInteger(");
1906                                 else if (validationType.equals(VT_INT_NON_NEGATIVE))
1907                                         javaScript.append("checkNonNegativeInteger(");
1908                                 else if (validationType.equals(VT_FLOAT))
1909                                         javaScript.append("checkFloat(");
1910                                 else if (validationType.equals(VT_FLOAT_POSITIVE))
1911                                         javaScript.append("checkPositiveFloat(");
1912                                 else if (validationType.equals(VT_FLOAT_NON_NEGATIVE))
1913                                         javaScript.append("checkNonNegativeFloat(");
1914                                 javaScript.append("document.");
1915                                 javaScript.append(HTML_FORM);
1916                                 javaScript.append(".");
1917                                 javaScript.append(fieldName);
1918                                 javaScript.append(".value");
1919                                 if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC))
1920                                         javaScript.append(", true");
1921                                 javaScript.append(")) {\n\t\talert(\"");
1922                                 javaScript.append(fieldDisplayName);
1923                                 javaScript.append(" is not a valid ");
1924                                 if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC))
1925                                         javaScript.append("date formatted "+ Globals.getCalendarOutputDateFormat());
1926                                 else if (validationType.equals(VT_INT))
1927                                         javaScript.append("integer");
1928                                 else if (validationType.equals(VT_INT_POSITIVE))
1929                                         javaScript.append("integer greater than zero");
1930                                 else if (validationType.equals(VT_INT_NON_NEGATIVE))
1931                                         javaScript.append("integer greater than or equal to zero");
1932                                 else if (validationType.equals(VT_FLOAT))
1933                                         javaScript.append("number");
1934                                 else if (validationType.equals(VT_FLOAT_POSITIVE))
1935                                         javaScript.append("number greater than zero");
1936                                 else if (validationType.equals(VT_FLOAT_NON_NEGATIVE))
1937                                         javaScript.append("number greater than or equal to zero");
1938                                 javaScript.append(".\\nPlease enter a valid value.\");\n\t\tdocument.");
1939                                 javaScript.append(HTML_FORM);
1940                                 javaScript.append(".");
1941                                 javaScript.append(fieldName);
1942                                 javaScript.append(".focus();\n\t\tdocument.");
1943                                 javaScript.append(HTML_FORM);
1944                                 javaScript.append(".");
1945                                 javaScript.append(fieldName);
1946                                 javaScript.append(".select();\n\t\treturn false;\n\t}\n");
1947                         } // if
1948                 } // if
1949                 else if (fieldType.equals(FFT_CHECK_BOX)) {
1950                         if (required) {
1951                                 javaScript.append("\n\tvar isChecked = false;");
1952                                 javaScript.append("\n\tfor (var i=0; i < document.");
1953                                 javaScript.append(HTML_FORM);
1954                                 javaScript.append(".");
1955                                 javaScript.append(fieldName);
1956                                 javaScript.append(".length; i++) { ");
1957                                 javaScript.append("\n\t\tif(document.");
1958                                 javaScript.append(HTML_FORM);
1959                                 javaScript.append(".");
1960                                 javaScript.append(fieldName);
1961                                 javaScript.append("[i].checked) {");
1962                                 javaScript.append("\n\t\t\tisChecked = true;");
1963                                 javaScript.append("\n\t\t\tbreak;");
1964                                 javaScript.append("\n\t\t}");
1965                                 javaScript.append("\n\t}");
1966                                 javaScript.append("\n\tif(!isChecked) {");
1967                                 javaScript.append("\n\t\talert(\"Please select at least one ");
1968                                 javaScript.append(fieldDisplayName);
1969                                 javaScript.append("\");\n\t\treturn false;");
1970                                 javaScript.append("\n\t}");
1971                         } // if
1972                 } // else if FFT_CHECK_BOX
1973                 else if (fieldType.equals(FFT_LIST_MULTI)) {
1974                         if (required) {
1975                                 javaScript.append("\n\tif(document.");
1976                                 javaScript.append(HTML_FORM);
1977                                 javaScript.append(".");
1978                                 javaScript.append(fieldName);
1979                                 javaScript.append(".selectedIndex == -1) {");
1980                                 javaScript.append("\n\t\talert(\"Please select at least one ");
1981                                 javaScript.append(fieldDisplayName);
1982                                 javaScript.append("\");\n\t\treturn false;");
1983                                 javaScript.append("\n\t}");
1984                         } // if
1985                 } // else if
1986
1987                 return javaScript.toString();
1988         } // getValidateJavaScript
1989
1990         public void setDbInfo(String dbInfo) {
1991                 this.dbInfo = dbInfo;
1992         }
1993
1994         public String getDbInfo() {
1995                 return dbInfo;
1996         }
1997     
1998     public void setUserId(String userId) {
1999         this.userId = userId;
2000     }
2001
2002     public String getUserId() {
2003         return userId;
2004     }
2005
2006     
2007     public String getFieldDefaultSQL() {
2008     
2009         return fieldDefaultSQL;
2010     }
2011
2012     
2013     public void setFieldDefaultSQL(String fieldDefaultSQL) {
2014     
2015         this.fieldDefaultSQL = fieldDefaultSQL;
2016     }
2017
2018     
2019     public boolean isVisible() {
2020     
2021         return visible;
2022     }
2023
2024     
2025     public void setVisible(boolean visible) {
2026     
2027         this.visible = visible;
2028     }
2029
2030         public String getDependsOn() {
2031                 return dependsOn;
2032         }
2033
2034         public void setDependsOn(String dependsOn) {
2035                 this.dependsOn = dependsOn;
2036         }
2037
2038         public Calendar getRangeEndDate() {
2039                 if(rangeEndDate != null)
2040                         rangeEndDate.add(Calendar.DATE, 1);
2041                 return rangeEndDate;
2042         }
2043
2044         public void setRangeEndDate(Calendar rangeEndDate) {
2045                 this.rangeEndDate = rangeEndDate;
2046         }
2047
2048         public Calendar getRangeStartDate() {
2049                 if(rangeStartDate != null)
2050                  rangeStartDate.add(Calendar.DATE, -1);
2051                 return rangeStartDate;
2052         }
2053
2054         public void setRangeStartDate(Calendar rangeStartDate) {
2055                 this.rangeStartDate = rangeStartDate;
2056         }
2057
2058         public String getRangeEndDateSQL() {
2059                 return rangeEndDateSQL;
2060         }
2061
2062         public void setRangeEndDateSQL(String rangeEndDateSQL) {
2063                 this.rangeEndDateSQL = rangeEndDateSQL;
2064         }
2065
2066         public void setMultiSelectListSize(String multiSelectListSize) {
2067                 this.multiSelectListSize = multiSelectListSize;
2068         }
2069         
2070         public String getRangeStartDateSQL() {
2071                 return rangeStartDateSQL;
2072         }
2073
2074         public void setRangeStartDateSQL(String rangeStartDateSQL) {
2075                 this.rangeStartDateSQL = rangeStartDateSQL;
2076         }
2077
2078         public boolean isHasPredefinedList() {
2079                 return hasPredefinedList;
2080         }
2081
2082         public void setHasPredefinedList(boolean hasPredefinedList) {
2083                 this.hasPredefinedList = hasPredefinedList;
2084         }
2085
2086         public boolean isTriggerOtherFormFields() {
2087                 return triggerOtherFormFields;
2088         }
2089
2090         public void setTriggerOtherFormFields(boolean triggerOtherFormFields) {
2091                 this.triggerOtherFormFields = triggerOtherFormFields;
2092         }
2093
2094         public boolean isTriggerThisFormfield() {
2095                 return triggerThisFormfield;
2096         }
2097
2098         public void setTriggerThisFormfield(boolean triggerThisFormfield) {
2099                 this.triggerThisFormfield = triggerThisFormfield;
2100         }
2101         
2102         
2103 } // FormField