@Reflectable public class EqualToValidationItem extends FBValidationItem { private final I18NConstants i18n = FormBuilderGlobals.getInstance().getI18n(); @Override public String getName() { return i18n.EqualToValidationName(); } @Override public FBValidation createValidation() { return getRepresentation(new EqualToValidation()); } @Override public Widget createDisplay() { return null; } @Override public FBValidationItem cloneItem() { EqualToValidationItem item = new EqualToValidationItem(); item.populatePropertiesMap(getPropertiesMap()); return item; } @Override public void populate(FBValidation validation) throws FormBuilderException { if (!(validation instanceof EqualToValidation)) { throw new FormBuilderException( i18n.RepNotOfType(validation.getClass().getName(), "EqualToValidation")); } TextBox valueTextBox = new TextBox(); if (validation.getDataMap().get("value") != null) { valueTextBox.setValue(validation.getDataMap().get("value").toString()); } super.getPropertiesMap().put("value", valueTextBox); } @Override public Map<String, HasValue<String>> getPropertiesMap() { Map<String, HasValue<String>> map = super.getPropertiesMap(); if (!map.containsKey("errorMessage")) { map.put("errorMessage", new TextBox()); } if (!map.containsKey("value")) { map.put("value", new TextBox()); } return map; } }
@Reflectable public class RestServiceScriptHelper extends AbstractScriptHelper { private final I18NConstants i18n = FormBuilderGlobals.getInstance().getI18n(); private RestServiceScriptHelperView view; private String method = ""; private String url = ""; private String resultStatus = ""; private String resultXPath = ""; private String exportVariableName = ""; private String responseLanguage = ""; private Map<String, String> headers = new HashMap<String, String>(); public RestServiceScriptHelper() { super(); } @Override public Map<String, Object> getDataMap() { if (view != null) { view.writeDataTo(this); } String urlValue = this.url; String methodValue = this.method; String resultStatusValue = this.resultStatus; String resultPathValue = this.resultXPath; String exportVariableNameValue = this.exportVariableName; String responseLanguageValue = this.responseLanguage; Map<String, Object> map = new HashMap<String, Object>(); map.put("@className", RestServiceScriptHelper.class.getName()); map.put("urlValue", urlValue); map.put("methodValue", methodValue); map.put("resultStatusValue", resultStatusValue); map.put("resultPathValue", resultPathValue); map.put("exportVariableNameValue", exportVariableNameValue); map.put("responseLanguageValue", responseLanguageValue); Map<String, Object> headersMap = new HashMap<String, Object>(); for (Map.Entry<String, String> entry : headers.entrySet()) { headersMap.put(entry.getKey(), entry.getValue()); } map.put("headers", headersMap); return map; } @Override public void setDataMap(Map<String, Object> dataMap) throws FormEncodingException { String urlValue = (String) dataMap.get("urlValue"); if (urlValue == null) urlValue = ""; String methodValue = (String) dataMap.get("methodValue"); if (methodValue == null) methodValue = ""; String resultStatusValue = (String) dataMap.get("resultStatusValue"); if (resultStatusValue == null) resultStatusValue = ""; String resultPathValue = (String) dataMap.get("resultPathValue"); if (resultPathValue == null) resultPathValue = ""; String exportVariableNameValue = (String) dataMap.get("exportVariableNameValue"); if (exportVariableNameValue == null) exportVariableNameValue = ""; String responseLanguageValue = (String) dataMap.get("responseLanguageValue"); if (responseLanguageValue == null) responseLanguageValue = ""; @SuppressWarnings("unchecked") Map<String, Object> headerMap = (Map<String, Object>) dataMap.get("headers"); this.url = urlValue; this.method = methodValue; this.resultStatus = resultStatusValue; this.responseLanguage = responseLanguageValue; this.resultXPath = resultPathValue; this.exportVariableName = exportVariableNameValue; headers.clear(); if (headerMap != null) { for (Map.Entry<String, Object> entry : headerMap.entrySet()) { headers.put(entry.getKey(), (String) entry.getValue()); } } if (view != null) { view.readDataFrom(this); } } @Override public String asScriptContent() { long id = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); if (view != null) { view.writeDataTo(this); } sb.append("var " + exportVariableName + " = null;"); sb.append("var url" + id + " = \"" + url + "\";"); sb.append("var method" + id + " = \"" + method + "\";"); sb.append("var xmlhttp" + id + ";"); sb.append("if (window.XMLHttpRequest) {/* code for IE7+, Firefox, Chrome, Opera, Safari*/"); sb.append(" xmlhttp" + id + "=new XMLHttpRequest();"); sb.append("} else {/* code for IE6, IE5*/"); sb.append(" xmlhttp" + id + "=new ActiveXObject(\"Microsoft.XMLHTTP\");"); sb.append("}"); sb.append("xmlhttp" + id + ".onreadystatechange=function() {"); sb.append( " if (xmlhttp" + id + ".readyState==4 && xmlhttp" + id + ".status==" + resultStatus + ") {"); sb.append(" var xmlDoc" + id + " = null;"); sb.append(" if (window.ActiveXObject) { /* code for IE*/"); sb.append(" xmlDoc" + id + "=new ActiveXObject(\"Microsoft.XMLDOM\");"); sb.append(" xmlDoc" + id + ".write(xmlhttp" + id + ".responseText);"); sb.append( " } else if (document.implementation && document.implementation.createDocument) { /* code for Mozilla, Firefox, Opera, etc.*/"); sb.append(" xmlDoc" + id + "=document.implementation.createDocument(\"\",\"\",null);"); sb.append(" xmlDoc" + id + ".write(xmlhttp" + id + ".responseText);"); sb.append(" } else {"); sb.append(" alert('Your browser cannot handle this script');"); sb.append(" }"); sb.append( " var xmlNodeList" + id + " = xmlDoc" + id + ".selectNodes(\"" + resultXPath + "\");"); sb.append(" " + exportVariableName + " = new Array();"); sb.append(" for (var idx = 0; idx < xmlNodeList" + id + ".length; idx++ ) {"); sb.append(" " + exportVariableName + "[idx] = xmlNodeList" + id + ".item(idx).text;"); sb.append(" }"); sb.append(" }"); sb.append("}"); for (Map.Entry<String, String> header : headers.entrySet()) { sb.append( "xmlhttp" + id + ".setRequestHeader(\"" + header.getKey() + "\",\"" + header.getValue() + "\");"); } sb.append("xmlhttp" + id + ".open(method" + id + ", url" + id + ", true);"); sb.append("xmlhttp" + id + ".send();"); return sb.toString(); } @Override public Widget draw() { if (view == null) { view = new RestServiceScriptHelperView(this); } return view; } @Override public String getName() { return i18n.RestServiceScriptHelperName(); } public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getResultStatus() { return resultStatus; } public void setResultStatus(String resultStatus) { this.resultStatus = resultStatus; } public String getResultXPath() { return resultXPath; } public void setResultXPath(String resultXPath) { this.resultXPath = resultXPath; } public String getExportVariableName() { return exportVariableName; } public void setExportVariableName(String exportVariableName) { this.exportVariableName = exportVariableName; } public String getResponseLanguage() { return responseLanguage; } public void setResponseLanguage(String responseLanguage) { this.responseLanguage = responseLanguage; } public Map<String, String> getHeaders() { return headers; } public void setHeaders(Map<String, String> headers) { this.headers = headers; } }
@Override public Label getDescription() { return new Label(FormBuilderGlobals.getInstance().getI18n().MenuItemLineGraph()); }