- removing usage of dojo for textfield widgets - they were basically useless and i'm working towards consistent presentation for valid/invalid states

- implementing preliminary validation feedback for submit errors meaning that for the most part, the client knows which elements are in an invalid state on submit and require fixes

next steps:
- add in xforms:alerts so we get better error messages when a control is not filled out/filled out with an invalid value
- fix up the error reporting in the ui so it looks more presentable
- add in support for custom xforms:alerts as metadata within the xsd so that we can have truly informative error messages.



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4026 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ariel Backenroth
2006-10-05 02:24:33 +00:00
parent 6da8f919df
commit 54ac87ef6b
5 changed files with 918 additions and 862 deletions

View File

@@ -538,19 +538,19 @@ public class SchemaFormBuilder
? this.submitMethod ? this.submitMethod
: SchemaFormBuilder.SUBMIT_METHOD_POST)); : SchemaFormBuilder.SUBMIT_METHOD_POST));
//Element submitButton = (Element) formSection.appendChild(xForm.createElementNS(XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX+"submit")); final Element submitButton =
Element submitButton =
xForm.createElementNS(XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + "submit"); xForm.createElementNS(XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + "submit");
Element submitControlWrapper = this.wrapper.createControlsWrapper(submitButton); final Element submitControlWrapper = this.wrapper.createControlsWrapper(submitButton);
formContentWrapper.appendChild(submitControlWrapper); formContentWrapper.appendChild(submitControlWrapper);
submitButton.setAttributeNS(XFORMS_NS, submitButton.setAttributeNS(XFORMS_NS,
SchemaFormBuilder.XFORMS_NS_PREFIX + "submission", SchemaFormBuilder.XFORMS_NS_PREFIX + "submission",
submissionId); submissionId);
this.setXFormsId(submitButton); this.setXFormsId(submitButton);
Element submitButtonCaption = (Element) final Element submitButtonCaption =
submitButton.appendChild(xForm.createElementNS(XFORMS_NS, xForm.createElementNS(XFORMS_NS,
SchemaFormBuilder.XFORMS_NS_PREFIX + "label")); SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
submitButton.appendChild(submitButtonCaption);
submitButtonCaption.appendChild(xForm.createTextNode("Submit")); submitButtonCaption.appendChild(xForm.createTextNode("Submit"));
this.setXFormsId(submitButtonCaption); this.setXFormsId(submitButtonCaption);
return xForm; return xForm;
@@ -2407,9 +2407,6 @@ public class SchemaFormBuilder
SchemaFormBuilder.XFORMS_NS_PREFIX + "label"); SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
this.setXFormsId(triggerLabel); this.setXFormsId(triggerLabel);
trigger.appendChild(triggerLabel); trigger.appendChild(triggerLabel);
//triggerLabel_insert.setAttributeNS(SchemaFormBuilder.XLINK_NS,
// SchemaFormBuilder.XLINK_NS_PREFIX + "href",
// "images/add_new.gif");
triggerLabel.appendChild(xForm.createTextNode(label)); triggerLabel.appendChild(xForm.createTextNode(label));

View File

@@ -132,6 +132,8 @@ public class XFormsBean
et.addEventListener(XFormsEventFactory.SUBMIT_DONE, el, true); et.addEventListener(XFormsEventFactory.SUBMIT_DONE, el, true);
et.addEventListener(XFormsEventFactory.SUBMIT_ERROR, el, true); et.addEventListener(XFormsEventFactory.SUBMIT_ERROR, el, true);
et.addEventListener(XFormsEventFactory.REQUIRED, el, true); et.addEventListener(XFormsEventFactory.REQUIRED, el, true);
et.addEventListener(XFormsEventFactory.OPTIONAL, el, true);
et.addEventListener(XFormsEventFactory.VALID, el, true);
et.addEventListener(XFormsEventFactory.INVALID, el, true); et.addEventListener(XFormsEventFactory.INVALID, el, true);
et.addEventListener(XFormsEventFactory.OUT_OF_RANGE, el, true); et.addEventListener(XFormsEventFactory.OUT_OF_RANGE, el, true);
et.addEventListener(XFormsEventFactory.CHIBA_STATE_CHANGED, el, true); et.addEventListener(XFormsEventFactory.CHIBA_STATE_CHANGED, el, true);

View File

@@ -42,7 +42,7 @@
<xs:element name="optional_textfield" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="optional_textfield" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="prefilled_textfield" type="xs:string" minOccurs="0" maxOccurs="1" default="i am the default value"/> <xs:element name="prefilled_textfield" type="xs:string" minOccurs="0" maxOccurs="1" default="i am the default value"/>
<xs:element name="integer" type="xs:integer"/> <xs:element name="integer" type="xs:integer"/>
<xs:element name="positiveInteger" type="xs:positiveInteger"/> <xs:element name="positive_integer" type="xs:positiveInteger"/>
<xs:element name="double" type="xs:double"/> <xs:element name="double" type="xs:double"/>
<xs:element name="date" type="xs:date"/> <xs:element name="date" type="xs:date"/>
<xs:element name="radio" type="five_string_values"/> <xs:element name="radio" type="five_string_values"/>

View File

@@ -43,7 +43,7 @@ body
<xsl:template match="/components/integer"> <xsl:template match="/components/integer">
<div style="line-height: 25px;"><span class="name">Integer:</span> <xsl:value-of select="/components/integer"/></div> <div style="line-height: 25px;"><span class="name">Integer:</span> <xsl:value-of select="/components/integer"/></div>
</xsl:template> </xsl:template>
<xsl:template match="/components/positiveInteger"> <xsl:template match="/components/positive_integer">
<div style="line-height: 25px;"><span class="name">Positive Integer:</span> <xsl:value-of select="/components/positiveInteger"/></div> <div style="line-height: 25px;"><span class="name">Positive Integer:</span> <xsl:value-of select="/components/positiveInteger"/></div>
</xsl:template> </xsl:template>
<xsl:template match="/components/double"> <xsl:template match="/components/double">

File diff suppressed because it is too large Load Diff