Skip to content

Commit 5c19612

Browse files
committed
Code-quality
1 parent 7da7a16 commit 5c19612

1 file changed

Lines changed: 168 additions & 115 deletions

File tree

src/main/java/org/semanticwb/model/BooleanElement.java

Lines changed: 168 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
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
@@ -18,46 +18,55 @@
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
*/
2323
package org.semanticwb.model;
2424

25+
import java.util.HashMap;
26+
2527
import javax.servlet.http.HttpServletRequest;
2628
import org.semanticwb.platform.SemanticObject;
2729
import 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
*/
3234
public 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("\"", "&quot;");
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

Comments
 (0)