Author: jonesde
Date: Sun Jan 11 08:35:46 2009 New Revision: 733486 URL: http://svn.apache.org/viewvc?rev=733486&view=rev Log: A few enhancements, including some fixes and enhancements for the loopkup field type to support the sub-hyperlink which was already in the xsd, the asterisk for required fields, and the on event stuff for the ajax auto-complete and other such things; also changed all fields to have a default id with formName_fieldName so that it doesn't always have to be explicitly declared but also won't conflict form multiform screens Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=733486&r1=733485&r2=733486&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original) +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sun Jan 11 08:35:46 2009 @@ -1089,9 +1089,9 @@ </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute type="xs:double" name="frequency" default="0.4"/> - <xs:attribute type="xs:positiveInteger" name="min-chars" default="1"/> - <xs:attribute type="xs:positiveInteger" name="choices" default="10"/> + <xs:attribute name="frequency" type="xs:double" default="0.4"/> + <xs:attribute name="min-chars" type="xs:positiveInteger" default="1"/> + <xs:attribute name="choices" type="xs:positiveInteger" default="10"/> <xs:attribute name="partial-search" default="true"> <xs:simpleType> <xs:restriction base="xs:token"> @@ -1100,7 +1100,7 @@ </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute type="xs:positiveInteger" name="partial-chars" default="2"/> + <xs:attribute name="partial-chars" type="xs:positiveInteger" default="1"/> <xs:attribute name="ignore-case" default="true"> <xs:simpleType> <xs:restriction base="xs:token"> @@ -1109,7 +1109,7 @@ </xs:restriction> </xs:simpleType> </xs:attribute> - <xs:attribute name="full-search" default="false"> + <xs:attribute name="full-search" default="true"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="true"/> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=733486&r1=733485&r2=733486&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Sun Jan 11 08:35:46 2009 @@ -1076,7 +1076,11 @@ } public String getIdName() { - return idName; + if (UtilValidate.isNotEmpty(idName)) { + return idName; + } else { + return this.modelForm.getName() + "_" + this.getFieldName(); + } } public String getHeaderLink() { @@ -3257,12 +3261,18 @@ protected FlexibleStringExpander formName; protected String descriptionFieldName; protected String targetParameter; + protected SubHyperlink subHyperlink; public LookupField(Element element, ModelFormField modelFormField) { super(element, modelFormField); this.formName = FlexibleStringExpander.getInstance(element.getAttribute("target-form-name")); this.descriptionFieldName = element.getAttribute("description-field-name"); this.targetParameter = element.getAttribute("target-parameter"); + + Element subHyperlinkElement = UtilXml.firstChildElement(element, "sub-hyperlink"); + if (subHyperlinkElement != null) { + this.subHyperlink = new SubHyperlink(subHyperlinkElement); + } } public LookupField(int fieldSource, ModelFormField modelFormField) { @@ -3299,6 +3309,10 @@ public void setDescriptionFieldName(String str) { this.descriptionFieldName = str; } + + public SubHyperlink getSubHyperlink() { + return this.subHyperlink; + } } public static class FileField extends TextField { Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=733486&r1=733485&r2=733486&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Sun Jan 11 08:35:46 2009 @@ -711,7 +711,7 @@ ModelForm modelForm = modelFormField.getModelForm(); ModelFormField.AutoComplete autoComplete = dropDownField.getAutoComplete(); boolean ajaxEnabled = autoComplete != null && this.javaScriptEnabled; - List allOptionValues = dropDownField.getAllOptionValues(context, modelForm.getDelegator(context)); + List<ModelFormField.OptionValue> allOptionValues = dropDownField.getAllOptionValues(context, modelForm.getDelegator(context)); String event = modelFormField.getEvent(); String action = modelFormField.getAction(context); @@ -767,7 +767,7 @@ if (UtilValidate.isNotEmpty(currentValue)) { writer.append(" value=\""); - String explicitDescription = dropDownField.getCurrentDescription(context); + //String explicitDescription = dropDownField.getCurrentDescription(context); writer.append(currentValue); writer.append('"'); } @@ -778,20 +778,22 @@ writer.append("<script language=\"JavaScript\" type=\"text/javascript\">"); appendWhitespace(writer); writer.append("var data = {"); - Iterator optionValueIter = allOptionValues.iterator(); int count = 0; - while (optionValueIter.hasNext()) { + for (ModelFormField.OptionValue optionValue: allOptionValues) { count++; - ModelFormField.OptionValue optionValue = (ModelFormField.OptionValue) optionValueIter.next(); - writer.append(""+optionValue.getKey()+": "); - writer.append(" '"+optionValue.getDescription()+"'"); + writer.append("" + optionValue.getKey() + ": "); + writer.append(" '" + optionValue.getDescription() + "'"); if (count != allOptionValues.size()) { writer.append(", "); } } writer.append("};"); appendWhitespace(writer); - writer.append("ajaxAutoCompleteDropDown('"+textFieldIdName+"', '"+idName+"', data, {autoSelect: "+autoComplete.getAutoSelect()+", frequency: "+autoComplete.getFrequency()+", minChars: "+autoComplete.getMinChars()+", choices: "+autoComplete.getChoices()+", partialSearch: "+autoComplete.getPartialSearch()+", partialChars: "+autoComplete.getPartialChars()+", ignoreCase: "+autoComplete.getIgnoreCase()+", fullSearch: "+autoComplete.getFullSearch()+"});"); + writer.append("ajaxAutoCompleteDropDown('" + textFieldIdName + "', '" + idName + "', data, {autoSelect: " + + autoComplete.getAutoSelect() + ", frequency: " + autoComplete.getFrequency() + ", minChars: " + autoComplete.getMinChars() + + ", choices: " + autoComplete.getChoices() + ", partialSearch: " + autoComplete.getPartialSearch() + + ", partialChars: " + autoComplete.getPartialChars() + ", ignoreCase: " + autoComplete.getIgnoreCase() + + ", fullSearch: " + autoComplete.getFullSearch() + "});"); appendWhitespace(writer); writer.append("</script>"); } else { @@ -2178,14 +2180,39 @@ writer.append('"'); } - if (!lookupField.getClientAutocompleteField()) { + String idName = modelFormField.getIdName(); + if (UtilValidate.isNotEmpty(idName)) { + writer.append(" id=\""); + writer.append(idName); + writer.append('"'); + } + + List<ModelForm.UpdateArea> updateAreas = modelFormField.getOnChangeUpdateAreas(); + boolean ajaxEnabled = updateAreas != null && this.javaScriptEnabled; + if (!lookupField.getClientAutocompleteField() || ajaxEnabled) { writer.append(" autocomplete=\"off\""); } writer.append("/>"); + + this.addAsterisks(writer, context, modelFormField); + + this.makeHyperlinkString(writer, lookupField.getSubHyperlink(), context); + + this.appendTooltip(writer, context, modelFormField); + + if (ajaxEnabled) { + appendWhitespace(writer); + writer.append("<script language=\"JavaScript\" type=\"text/javascript\">"); + appendWhitespace(writer); + writer.append("ajaxAutoCompleter('" + createAjaxParamsFromUpdateAreas(updateAreas, null, context) + "');"); + appendWhitespace(writer); + writer.append("</script>"); + } + appendWhitespace(writer); - String descriptionFieldName = lookupField.getDescriptionFieldName(); // add lookup pop-up button + String descriptionFieldName = lookupField.getDescriptionFieldName(); if (UtilValidate.isNotEmpty(descriptionFieldName)) { writer.append("<a href=\"javascript:call_fieldlookup3(document."); writer.append(modelFormField.getModelForm().getCurrentFormName(context)); |
Free forum by Nabble | Edit this page |