66 * procesada por personas y/o sistemas, es una creación original del Fondo de Información y Documentación
77 * para la Industria INFOTEC, cuyo registro se encuentra actualmente en trámite.
88 *
9- * INFOTEC pone a su disposición la herramienta SemanticWebBuilder a través de su licenciamiento abierto al público (‘ open source’ ),
9+ * INFOTEC pone a su disposición la herramienta SemanticWebBuilder a través de su licenciamiento abierto al público (' open source' ),
1010 * en virtud del cual, usted podrá usarlo en las mismas condiciones con que INFOTEC lo ha diseñado y puesto a su disposición;
1111 * aprender de él; distribuirlo a terceros; acceder a su código fuente y modificarlo, y combinarlo o enlazarlo con otro software,
1212 * todo ello de conformidad con los términos y condiciones de la LICENCIA ABIERTA AL PÚBLICO que otorga INFOTEC para la utilización
1818 *
1919 * Si usted tiene cualquier duda o comentario sobre SemanticWebBuilder, INFOTEC pone a su disposición la siguiente
2020 * dirección electrónica:
21- * http://www.semanticwebbuilder.org
21+ * http://www.semanticwebbuilder.org.mx
2222 */
2323package org .semanticwb .model ;
2424
25+ import java .util .HashMap ;
26+
2527import javax .servlet .http .HttpServletRequest ;
2628import org .semanticwb .platform .SemanticObject ;
2729import org .semanticwb .platform .SemanticProperty ;
2830 /**
2931 * Elemento para valores booleanos configurable como CheckBox, Radio y Select
30- * @author Hasdai Pacheco {ebenezer.sanchez@infotec.com. mx}
32+ * @author Hasdai Pacheco {ebenezer.sanchez@infotec.mx}
3133 */
3234public class BooleanElement extends org .semanticwb .model .base .BooleanElementBase
3335{
36+ private final String PROP_DISABLED = " disabled=\" disabled\" " ;
37+ private final String PROP_CHECKED = "checked=\" checked\" " ;
38+ private final String PROP_PROMPT = " promptMessage=\" " ;
39+ private final String PROP_INVALIDMSG = " invalidMessage=\" " ;
40+ private HashMap <String , String > formElementparams = null ;
41+
3442 public BooleanElement (org .semanticwb .platform .SemanticObject base )
3543 {
3644 super (base );
3745 }
3846
3947 @ Override
4048 public String renderElement (HttpServletRequest request , SemanticObject obj , SemanticProperty prop , String propName , String type , String mode , String lang ) {
41- if (obj == null ) {
42- obj = new SemanticObject ();
43- }
44-
45- boolean DOJO = false ;
46-
47- if (type .equals ("dojo" )) {
48- DOJO = true ;
49+ formElementparams = new HashMap <>();
50+ formElementparams .put ("name" , propName );
51+ formElementparams .put ("mode" , mode );
52+ formElementparams .put ("label" , prop .getDisplayName (lang ));
53+ formElementparams .put ("trueTitle" , getDisplayTrueTitle (lang ));
54+ formElementparams .put ("falseTitle" , getDisplayFalseTitle (lang ));
55+ formElementparams .put ("displayType" , getDisplayType ());
56+
57+ SemanticObject theObj = obj ;
58+ if (obj == null ) {
59+ theObj = new SemanticObject ();
4960 }
5061
62+ boolean isDojo = type .equals ("dojo" );
5163 StringBuilder ret = new StringBuilder ();
52- String name = propName ;
5364 String label = prop .getDisplayName (lang );
5465 SemanticObject sobj = prop .getDisplayProperty ();
5566 boolean required = prop .isRequired ();
5667 String pmsg = null ;
5768 String imsg = null ;
5869 boolean isDisabled = false ;
59- String trueTitle = getDisplayTrueTitle (lang );
60- String falseTitle = getDisplayFalseTitle (lang );
6170 String displayType = getDisplayType ();
6271
6372 if (sobj != null ) {
@@ -67,9 +76,7 @@ public String renderElement(HttpServletRequest request, SemanticObject obj, Sema
6776 isDisabled = dobj .isDisabled ();
6877 }
6978
70- String disabled = "" ;
71-
72- if (DOJO ) {
79+ if (isDojo ) {
7380 if (imsg == null ) {
7481 if (required ) {
7582 imsg = label + " es requerido." ;
@@ -94,14 +101,11 @@ public String renderElement(HttpServletRequest request, SemanticObject obj, Sema
94101 }
95102 }
96103 }
104+ formElementparams .put ("pmsg" , pmsg );
105+ formElementparams .put ("imsg" , imsg );
97106
98- if (isDisabled ) {
99- disabled += " disabled=\" disabled\" " ;
100- }
101-
102- if (prop .isDataTypeProperty () && prop .isBoolean ()) {
107+ if (prop .isDataTypeProperty ()) {
103108 if (prop .isBoolean ()) {
104- String checked = "" ;
105109 boolean value = false ;
106110 String aux = request .getParameter (propName );
107111
@@ -111,122 +115,171 @@ public String renderElement(HttpServletRequest request, SemanticObject obj, Sema
111115 value = false ;
112116 }
113117 } else {
114- value = obj .getBooleanProperty (prop );
115- }
116-
117- if (value ) {
118- checked = "checked=\" checked\" " ;
118+ value = theObj .getBooleanProperty (prop );
119119 }
120120
121121 if (displayType .equals ("checkbox" )) {
122- ret .append ("<input type=\" checkbox\" id_=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" " ).append (checked );
123- if (DOJO ) {
124- ret .append (" dojoType=\" dijit.form.CheckBox\" " );
125- if (required )ret .append (" required=\" " ).append (required ).append ("\" " );
126- ret .append (" promptMessage=\" " ).append (pmsg ).append ("\" " );
127- ret .append (" invalidMessage=\" " ).append (imsg ).append ("\" " );
128- }
129- ret .append (disabled );
130- if (mode .equals ("view" )) {
131- ret .append (" disabled=\" disabled\" " );
132- }
133- ret .append ("/>" );
122+ renderCheckbox (formElementparams , isDojo , required , value , isDisabled );
134123 } else if (displayType .equals ("select" )) {
135- ret .append ("<select id_=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" " );
136- if (DOJO ) {
137- ret .append (" dojoType=\" dijit.form.FilteringSelect\" " );
138- if (required )ret .append (" required=\" " ).append (required ).append ("\" " );
139- ret .append (" promptMessage=\" " ).append (pmsg ).append ("\" " );
140- ret .append (" invalidMessage=\" " ).append (imsg ).append ("\" " );
141- }
142- ret .append (disabled );
143- if (mode .equals ("view" )) {
144- ret .append (" disabled=\" disabled\" " );
145- }
146- ret .append ("/>" );
147- ret .append ("<option value=\" true\" " ).append (value ?"selected" :"" ).append (" >" ).append (trueTitle ).append ("</option>" );
148- ret .append ("<option value=\" false\" " ).append (!value ?"selected" :"" ).append (" >" ).append (falseTitle ).append ("</option>" );
149- ret .append ("</select>" );
124+ renderSelect (formElementparams , isDojo , required , value , isDisabled );
150125 } else if (displayType .equals ("radio" )) {
151- ret .append ("<input type=\" radio\" id_=\" " ).append (name ).append ("\" id=\" " ).append (name ).append ("_True\" name=\" " ).append (name ).append ("\" " ).append (value ?"checked=\" checked\" " :"" ).append (" value=\" true\" " );
152- if (DOJO ) {
153- ret .append (" dojoType=\" dijit.form.RadioButton\" " );
154- if (required )ret .append (" required=\" " ).append (required ).append ("\" " );
155- ret .append (" promptMessage=\" " ).append (pmsg ).append ("\" " );
156- ret .append (" invalidMessage=\" " ).append (imsg ).append ("\" " );
157- }
158- ret .append (disabled );
159- if (mode .equals ("view" )) {
160- ret .append (" disabled=\" disabled\" " );
161- }
162- ret .append ("/>" );
163- ret .append ("<label for=\" " ).append (name ).append ("_True\" >" ).append (trueTitle ).append ("</label> " );
164-
165- ret .append ("<input type=\" radio\" id_=\" " ).append (name ).append ("\" id=\" " ).append (name ).append ("_False\" name=\" " ).append (name ).append ("\" " ).append (!value ?"checked=\" checked\" " :"" ).append (" value=\" false\" " );
166- if (DOJO ) {
167- ret .append (" dojoType=\" dijit.form.RadioButton\" " );
168- if (required )ret .append (" required=\" " ).append (required ).append ("\" " );
169- ret .append (" promptMessage=\" " ).append (pmsg ).append ("\" " );
170- ret .append (" invalidMessage=\" " ).append (imsg ).append ("\" " );
171- }
172- ret .append (disabled );
173- if (mode .equals ("view" )) {
174- ret .append (" disabled=\" disabled\" " );
175- }
176- ret .append ("/>" );
177- ret .append ("<label for=\" " ).append (name ).append ("_False\" >" ).append (falseTitle ).append ("</label>" );
126+ renderRadio (formElementparams , isDojo , required , value , isDisabled );
178127 }
179128 } else {
180129 String value = request .getParameter (propName );
181-
182130 if (value == null ) {
183- value = obj .getProperty (prop );
131+ value = theObj .getProperty (prop );
184132 }
185133
186134 if (value == null ) {
187135 value = "" ;
188136 }
189137
190- //System.out.print(value);
191138 value =value .replace ("\" " , """ );
192- //System.out.println(" "+ value);
193-
194- if ( mode . equals ( "edit" ) || mode . equals ( "create" ) || mode . equals ( "filter" )) {
195- ret . append ( "<input _id= \" " ). append ( name ). append ( " \" name= \" " ). append ( name ). append ( " \" value= \" " ). append ( value + " \" " );
139+ formElementparams . put ( "value" , value );
140+ renderInput ( formElementparams , isDojo , isDisabled , required );
141+ }
142+ }
196143
197- if (DOJO ) {
198- ret .append (" dojoType=\" dijit.form.ValidationTextBox\" " );
199- }
144+ return ret .toString ();
145+ }
146+
147+ private String renderCheckbox (HashMap <String , String > feParams , boolean isDojo , boolean isRequired , boolean isSelected , boolean isDisabled ) {
148+ StringBuilder ret = new StringBuilder ();
149+ String name = feParams .get ("name" );
150+ String mode = feParams .get ("mode" );
151+
152+ if (null != name && !name .isEmpty ()) {
153+ ret .append ("<input type=\" checkbox\" id_=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" " );
154+ if (isSelected ) {
155+ ret .append (PROP_CHECKED );
156+ }
157+ if (isRequired ) {
158+ ret .append ("required=\" " ).append (isRequired ).append ("\" " );
159+ }
160+ if (isDojo ) {
161+ ret .append ("dojoType=\" dijit.form.CheckBox\" " );
162+ ret .append (PROP_PROMPT ).append (feParams .get ("pmsg" )).append ("\" " );
163+ ret .append (PROP_INVALIDMSG ).append (feParams .get ("imsg" )).append ("\" " );
164+ }
165+ if (isDisabled || mode .equals ("view" )) {
166+ ret .append (PROP_DISABLED );
167+ }
168+ ret .append ("/>" );
169+ }
170+ return ret .toString ();
171+ }
172+
173+ private String renderSelect (HashMap <String , String > feParams , boolean isDojo , boolean isRequired , boolean isSelected , boolean isDisabled ) {
174+ StringBuilder ret = new StringBuilder ();
175+ String name = feParams .get ("name" );
176+ String mode = feParams .get ("mode" );
177+ String trueTitle = feParams .get ("trueTitle" );
178+ String falseTitle = feParams .get ("falseTitle" );
179+
180+ if (null != name && !name .isEmpty ()) {
181+ ret .append ("<select id_=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" " );
182+ if (isRequired ) {
183+ ret .append ("required=\" " ).append (isRequired ).append ("\" " );
184+ }
185+ if (isDojo ) {
186+ ret .append ("dojoType=\" dijit.form.FilteringSelect\" " );
187+ ret .append (PROP_PROMPT ).append (feParams .get ("pmsg" )).append ("\" " );
188+ ret .append (PROP_INVALIDMSG ).append (feParams .get ("imsg" )).append ("\" " );
189+ }
190+ if (isDisabled || mode .equals ("view" )) {
191+ ret .append (PROP_DISABLED );
192+ }
193+ ret .append ("/>" );
194+ ret .append ("<option value=\" true\" " ).append (isSelected ?"selected" :"" ).append (" >" ).append (trueTitle ).append ("</option>" );
195+ ret .append ("<option value=\" false\" " ).append (!isSelected ?"selected" :"" ).append (" >" ).append (falseTitle ).append ("</option>" );
196+ ret .append ("</select>" );
197+ }
198+ return ret .toString ();
199+ }
200+
201+ private String renderRadio (HashMap <String , String > feParams , boolean isDojo , boolean isRequired , boolean isSelected , boolean isDisabled ) {
202+ StringBuilder ret = new StringBuilder ();
203+ String name = feParams .get ("name" );
204+ String mode = feParams .get ("mode" );
205+ String trueTitle = feParams .get ("trueTitle" );
206+ String falseTitle = feParams .get ("falseTitle" );
207+
208+ if (null != name && !name .isEmpty ()) {
209+ //True radio option
210+ ret .append ("<input type=\" radio\" id_=\" " ).append (name ).append ("\" id=\" " ).append (name ).append ("_True\" name=\" " ).append (name ).append ("\" " ).append (isSelected ?PROP_CHECKED :"" ).append ("value=\" true\" " );
211+ if (isRequired ) {
212+ ret .append ("required=\" " ).append (isRequired ).append ("\" " );
213+ }
214+ if (isDojo ) {
215+ ret .append ("dojoType=\" dijit.form.RadioButton\" " );
216+ ret .append (PROP_PROMPT ).append (feParams .get ("pmsg" )).append ("\" " );
217+ ret .append (PROP_INVALIDMSG ).append (feParams .get ("imsg" )).append ("\" " );
218+ }
219+ if (isDisabled || mode .equals ("view" )) {
220+ ret .append (PROP_DISABLED );
221+ }
222+ ret .append ("/>" );
223+ ret .append ("<label for=\" " ).append (name ).append ("_True\" >" ).append (trueTitle ).append ("</label> " );
224+
225+ //False radio option
226+ ret .append ("<input type=\" radio\" id_=\" " ).append (name ).append ("\" id=\" " ).append (name ).append ("_False\" name=\" " ).append (name ).append ("\" " ).append (!isSelected ?PROP_CHECKED :"" ).append (" value=\" false\" " );
227+ if (isRequired ) {
228+ ret .append ("required=\" " ).append (isRequired ).append ("\" " );
229+ }
230+ if (isDojo ) {
231+ ret .append ("dojoType=\" dijit.form.RadioButton\" " );
232+ ret .append (PROP_PROMPT ).append (feParams .get ("pmsg" )).append ("\" " );
233+ ret .append (PROP_INVALIDMSG ).append (feParams .get ("imsg" )).append ("\" " );
234+ }
235+ if (isDisabled || mode .equals ("view" )) {
236+ ret .append (PROP_DISABLED );
237+ }
238+ ret .append ("/>" );
239+ ret .append ("<label for=\" " ).append (name ).append ("_False\" >" ).append (falseTitle ).append ("</label>" );
240+ }
241+ return ret .toString ();
242+ }
243+
244+ private String renderInput (HashMap <String , String > feParams , boolean isDojo , boolean isDisabled , boolean isRequired ) {
245+ StringBuilder ret = new StringBuilder ();
246+ String name = feParams .get ("name" );
247+ String mode = feParams .get ("mode" );
248+ String value = feParams .get ("value" );
249+
250+ if (mode .equals ("edit" ) || mode .equals ("create" ) || mode .equals ("filter" )) {
251+ ret .append ("<input _id=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" value=\" " ).append (value + "\" " );
200252
201- if (! mode . equals ( "filter" ) || DOJO ) {
202- if ( required ) ret .append (" required =\" " ). append ( required ). append ( " \" " );
203- }
253+ if (isDojo ) {
254+ ret .append ("dojoType =\" dijit.form.ValidationTextBox \" " );
255+ }
204256
205- // + " propercase=\"true\""
206- if (DOJO ) {
207- ret .append (" promptMessage=\" " ).append (pmsg ).append ("\" " );
208- }
257+ if (!mode .equals ("filter" ) || isDojo && isRequired ) {
258+ ret .append ("required=\" " ).append (isRequired ).append ("\" " );
259+ }
209260
210- if (DOJO ) {
211- ret .append (" invalidMessage= \" " ).append (imsg ) .append ("\" " );
212- }
261+ if (isDojo ) {
262+ ret .append (PROP_PROMPT ).append (feParams . get ( "pmsg" )) .append ("\" " );
263+ }
213264
214- ret .append (" style=\" width:300px;\" " );
215- ret .append (" " ).append (getAttributes ());
265+ if (isDojo ) {
266+ ret .append (PROP_INVALIDMSG ).append (feParams .get ("imsg" )).append ("\" " );
267+ }
216268
217- if (DOJO ) {
218- ret .append (" trim=\" true\" " );
219- }
269+ ret .append ("style=\" width:300px;\" " );
270+ ret .append (getAttributes ());
220271
221- ret . append ( disabled );
222- ret .append ("/> " );
223- } else if ( mode . equals ( "view" )) {
224- ret . append ( "<span _id= \" " ). append ( name ). append ( " \" name= \" " ). append ( name ). append ( " \" >" ). append ( value ). append ( "</span>" );
225- }
272+ if ( isDojo ) {
273+ ret .append ("trim= \" true \" " );
274+ }
275+ if ( isDisabled ) {
276+ ret . append ( PROP_DISABLED );
226277 }
278+ ret .append ("/>" );
279+ } else if (mode .equals ("view" )) {
280+ ret .append ("<span _id=\" " ).append (name ).append ("\" name=\" " ).append (name ).append ("\" >" ).append (value ).append ("</span>" );
227281 }
228-
229- // System.out.println("ret:"+ret);
230- return ret .toString ();
282+ return ret .toString ();
231283 }
232284}
285+
0 commit comments