mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
inserting prototype nodes into instance data. repeats should basically be totally working at this point with the exception of some bugs with move up/move down.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4564 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -142,92 +142,54 @@ public class SchemaFormBuilder
|
|||||||
public final static Log LOGGER =
|
public final static Log LOGGER =
|
||||||
LogFactory.getLog(SchemaFormBuilder.class);
|
LogFactory.getLog(SchemaFormBuilder.class);
|
||||||
|
|
||||||
/**
|
/** XMLSchema Namespace declaration */
|
||||||
* XMLSchema Namespace declaration
|
|
||||||
*/
|
|
||||||
public static final String XMLSCHEMA_NS =
|
public static final String XMLSCHEMA_NS =
|
||||||
"http://www.w3.org/2001/XMLSchema";
|
"http://www.w3.org/2001/XMLSchema";
|
||||||
|
|
||||||
/**
|
/** XMLSchema prefix */
|
||||||
* XMLSchema prefix
|
|
||||||
*/
|
|
||||||
public static final String XMLSCHEMA_NS_PREFIX = "xs:";
|
public static final String XMLSCHEMA_NS_PREFIX = "xs:";
|
||||||
|
|
||||||
/**
|
/** XMLSchema Instance Namespace declaration */
|
||||||
* XMLSchema Instance Namespace declaration
|
private static final String XMLSCHEMA_INSTANCE_NS =
|
||||||
*/
|
|
||||||
public static final String XMLSCHEMA_INSTANCE_NS =
|
|
||||||
"http://www.w3.org/2001/XMLSchema-instance";
|
"http://www.w3.org/2001/XMLSchema-instance";
|
||||||
|
|
||||||
/**
|
/** XMLSchema instance prefix */
|
||||||
* XMLSchema instance prefix
|
private static final String XMLSCHEMA_INSTANCE_NS_PREFIX = "xsi";
|
||||||
*/
|
|
||||||
public static final String XMLSCHEMA_INSTANCE_NS_PREFIX = "xsi:";
|
|
||||||
|
|
||||||
/**
|
/** XMLNS Namespace declaration. */
|
||||||
* XMLNS Namespace declaration.
|
|
||||||
*/
|
|
||||||
public static final String XMLNS_NAMESPACE_URI =
|
public static final String XMLNS_NAMESPACE_URI =
|
||||||
"http://www.w3.org/2000/xmlns/";
|
"http://www.w3.org/2000/xmlns/";
|
||||||
|
|
||||||
/**
|
/** XML Namespace declaration */
|
||||||
* XML Namespace declaration
|
private static final String XML_NAMESPACE_URI =
|
||||||
*/
|
|
||||||
public static final String XML_NAMESPACE_URI =
|
|
||||||
"http://www.w3.org/XML/1998/namespace";
|
"http://www.w3.org/XML/1998/namespace";
|
||||||
|
|
||||||
/**
|
/** XForms namespace declaration. */
|
||||||
* XForms namespace declaration.
|
private static final String XFORMS_NS =
|
||||||
*/
|
|
||||||
public static final String XFORMS_NS =
|
|
||||||
"http://www.w3.org/2002/xforms";
|
"http://www.w3.org/2002/xforms";
|
||||||
|
|
||||||
/**
|
/** XForms prefix */
|
||||||
* XForms prefix
|
private static final String XFORMS_NS_PREFIX = "xforms";
|
||||||
*/
|
|
||||||
public static final String XFORMS_NS_PREFIX = "xforms:";
|
|
||||||
|
|
||||||
/**
|
/** Alfresco namespace declaration. */
|
||||||
* Alfresco namespace declaration.
|
private static final String ALFRESCO_NS =
|
||||||
*/
|
|
||||||
public static final String ALFRESCO_NS =
|
|
||||||
"http://www.alfresco.org/alfresco";
|
"http://www.alfresco.org/alfresco";
|
||||||
|
|
||||||
/**
|
/** Alfresco prefix */
|
||||||
* Alfresco prefix
|
private static final String ALFRESCO_NS_PREFIX = "alfresco";
|
||||||
*/
|
|
||||||
public static final String ALFRESCO_NS_PREFIX = "alfresco:";
|
|
||||||
|
|
||||||
/**
|
// /** Chiba namespace declaration. */
|
||||||
* Chiba namespace declaration.
|
// private static final String CHIBA_NS =
|
||||||
*/
|
// "http://chiba.sourceforge.net/xforms";
|
||||||
public static final String CHIBA_NS =
|
//
|
||||||
"http://chiba.sourceforge.net/xforms";
|
// /** Chiba prefix */
|
||||||
|
// private static final String CHIBA_NS_PREFIX = "chiba:";
|
||||||
|
|
||||||
/**
|
/** XML Events namsepace declaration. */
|
||||||
* Chiba prefix
|
private static final String XMLEVENTS_NS = "http://www.w3.org/2001/xml-events";
|
||||||
*/
|
|
||||||
public static final String CHIBA_NS_PREFIX = "chiba:";
|
|
||||||
|
|
||||||
/**
|
/** XML Events prefix */
|
||||||
* XLink namespace declaration.
|
private static final String XMLEVENTS_NS_PREFIX = "ev";
|
||||||
*/
|
|
||||||
public static final String XLINK_NS = "http://www.w3.org/1999/xlink";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Xlink prefix
|
|
||||||
*/
|
|
||||||
public static final String XLINK_NS_PREFIX = "xlink:";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* XML Events namsepace declaration.
|
|
||||||
*/
|
|
||||||
public static final String XMLEVENTS_NS = "http://www.w3.org/2001/xml-events";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* XML Events prefix
|
|
||||||
*/
|
|
||||||
public static final String XMLEVENTS_NS_PREFIX = "ev:";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prossible values of the "@method" on the "submission" element
|
* Prossible values of the "@method" on the "submission" element
|
||||||
@@ -489,13 +451,13 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
//add XMLSchema if we use schema types
|
//add XMLSchema if we use schema types
|
||||||
modelSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS, "schema", "#schema-1");
|
modelSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS, "schema", "#schema-1");
|
||||||
final Element importedSchemaRootElement = (Element)
|
final Element importedSchemaDocumentElement = (Element)
|
||||||
xForm.importNode(schemaDocument.getDocumentElement(), true);
|
xForm.importNode(schemaDocument.getDocumentElement(), true);
|
||||||
importedSchemaRootElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
importedSchemaDocumentElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
"id",
|
"id",
|
||||||
"schema-1");
|
"schema-1");
|
||||||
|
|
||||||
modelSection.appendChild(importedSchemaRootElement);
|
modelSection.appendChild(importedSchemaDocumentElement);
|
||||||
|
|
||||||
//check if target namespace
|
//check if target namespace
|
||||||
final StringList targetNamespaces = schema.getNamespaces();
|
final StringList targetNamespaces = schema.getNamespaces();
|
||||||
@@ -535,17 +497,18 @@ public class SchemaFormBuilder
|
|||||||
rootElementName = this.getElementName(rootElementDecl, xForm);
|
rootElementName = this.getElementName(rootElementDecl, xForm);
|
||||||
final Element instanceElement =
|
final Element instanceElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "instance");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":instance");
|
||||||
modelSection.appendChild(instanceElement);
|
modelSection.appendChild(instanceElement);
|
||||||
this.setXFormsId(instanceElement);
|
this.setXFormsId(instanceElement);
|
||||||
|
|
||||||
final Element defaultInstanceRootElement = xForm.createElement(rootElementName);
|
final Element defaultInstanceDocumentElement = xForm.createElement(rootElementName);
|
||||||
this.addNamespace(defaultInstanceRootElement,
|
this.addNamespace(defaultInstanceDocumentElement,
|
||||||
XMLSCHEMA_INSTANCE_NS_PREFIX,
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS_PREFIX,
|
||||||
XMLSCHEMA_INSTANCE_NS);
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS);
|
||||||
|
|
||||||
|
Element importedInstanceDocumentElement = null;
|
||||||
if (instanceDocument == null)
|
if (instanceDocument == null)
|
||||||
instanceElement.appendChild(defaultInstanceRootElement);
|
instanceElement.appendChild(defaultInstanceDocumentElement);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Element instanceDocumentElement = instanceDocument.getDocumentElement();
|
Element instanceDocumentElement = instanceDocument.getDocumentElement();
|
||||||
@@ -554,64 +517,69 @@ public class SchemaFormBuilder
|
|||||||
"expected " + rootElementName +
|
"expected " + rootElementName +
|
||||||
", got " + instanceDocumentElement.getNodeName());
|
", got " + instanceDocumentElement.getNodeName());
|
||||||
LOGGER.debug("importing rootElement from other document");
|
LOGGER.debug("importing rootElement from other document");
|
||||||
final Element importedInstanceRootElement = (Element)
|
importedInstanceDocumentElement = (Element)
|
||||||
xForm.importNode(instanceDocumentElement, true);
|
xForm.importNode(instanceDocumentElement, true);
|
||||||
//add XMLSchema instance NS
|
//add XMLSchema instance NS
|
||||||
this.addNamespace(importedInstanceRootElement,
|
this.addNamespace(importedInstanceDocumentElement,
|
||||||
XMLSCHEMA_INSTANCE_NS_PREFIX,
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS_PREFIX,
|
||||||
XMLSCHEMA_INSTANCE_NS);
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS);
|
||||||
instanceElement.appendChild(importedInstanceRootElement);
|
instanceElement.appendChild(importedInstanceDocumentElement);
|
||||||
|
|
||||||
final Element prototypeInstanceElement =
|
final Element prototypeInstanceElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "instance");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":instance");
|
||||||
modelSection.appendChild(prototypeInstanceElement);
|
modelSection.appendChild(prototypeInstanceElement);
|
||||||
this.setXFormsId(prototypeInstanceElement, "instance_prototype");
|
this.setXFormsId(prototypeInstanceElement, "instance_prototype");
|
||||||
prototypeInstanceElement.appendChild(defaultInstanceRootElement);
|
prototypeInstanceElement.appendChild(defaultInstanceDocumentElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
Element formContentWrapper = this.wrapper.createGroupContentWrapper(formSection);
|
Element formContentWrapper = this.wrapper.createGroupContentWrapper(formSection);
|
||||||
this.addElement(xForm,
|
this.addElement(xForm,
|
||||||
modelSection,
|
modelSection,
|
||||||
defaultInstanceRootElement,
|
defaultInstanceDocumentElement,
|
||||||
formContentWrapper,
|
formContentWrapper,
|
||||||
schema,
|
schema,
|
||||||
rootElementDecl,
|
rootElementDecl,
|
||||||
rootElementDecl.getTypeDefinition(),
|
rootElementDecl.getTypeDefinition(),
|
||||||
"/" + getElementName(rootElementDecl, xForm));
|
"/" + getElementName(rootElementDecl, xForm));
|
||||||
|
if (importedInstanceDocumentElement != null)
|
||||||
|
{
|
||||||
|
this.insertPrototypeNodes(importedInstanceDocumentElement,
|
||||||
|
defaultInstanceDocumentElement);
|
||||||
|
}
|
||||||
|
|
||||||
Element submitInfoElement =
|
Element submitInfoElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "submission");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":submission");
|
||||||
modelSection.appendChild(submitInfoElement);
|
modelSection.appendChild(submitInfoElement);
|
||||||
|
|
||||||
//submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX+"id","save");
|
//submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + ":id","save");
|
||||||
String submissionId = this.setXFormsId(submitInfoElement);
|
String submissionId = this.setXFormsId(submitInfoElement);
|
||||||
|
|
||||||
//action
|
//action
|
||||||
submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "action",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":action",
|
||||||
this.action == null ? "" : this.base + this.action);
|
this.action == null ? "" : this.base + this.action);
|
||||||
|
|
||||||
//method
|
//method
|
||||||
submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
submitInfoElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "method",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":method",
|
||||||
(this.submitMethod != null && this.submitMethod.length() != 0
|
(this.submitMethod != null && this.submitMethod.length() != 0
|
||||||
? this.submitMethod
|
? this.submitMethod
|
||||||
: SchemaFormBuilder.SUBMIT_METHOD_POST));
|
: SchemaFormBuilder.SUBMIT_METHOD_POST));
|
||||||
|
|
||||||
final Element submitButton =
|
final Element submitButton =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + "submit");
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + ":submit");
|
||||||
final Element submitControlWrapper = this.wrapper.createControlsWrapper(submitButton);
|
final Element submitControlWrapper = this.wrapper.createControlsWrapper(submitButton);
|
||||||
formContentWrapper.appendChild(submitControlWrapper);
|
formContentWrapper.appendChild(submitControlWrapper);
|
||||||
submitButton.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
submitButton.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "submission",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":submission",
|
||||||
submissionId);
|
submissionId);
|
||||||
this.setXFormsId(submitButton);
|
this.setXFormsId(submitButton);
|
||||||
|
|
||||||
final Element submitButtonCaption =
|
final Element submitButtonCaption =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
submitButton.appendChild(submitButtonCaption);
|
submitButton.appendChild(submitButtonCaption);
|
||||||
submitButtonCaption.appendChild(xForm.createTextNode("Submit"));
|
submitButtonCaption.appendChild(xForm.createTextNode("Submit"));
|
||||||
this.setXFormsId(submitButtonCaption);
|
this.setXFormsId(submitButtonCaption);
|
||||||
@@ -646,6 +614,83 @@ public class SchemaFormBuilder
|
|||||||
DEFAULT_SELECTONE_UI_CONTROL_LONG_PROP);
|
DEFAULT_SELECTONE_UI_CONTROL_LONG_PROP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void insertPrototypeNodes(final Element instanceDocumentElement,
|
||||||
|
final Element prototypeDocumentElement)
|
||||||
|
{
|
||||||
|
final JXPathContext prototypeContext =
|
||||||
|
JXPathContext.newContext(prototypeDocumentElement);
|
||||||
|
prototypeContext.registerNamespace("alfresco", SchemaFormBuilder.ALFRESCO_NS);
|
||||||
|
final JXPathContext instanceContext =
|
||||||
|
JXPathContext.newContext(instanceDocumentElement);
|
||||||
|
instanceContext.registerNamespace("alfresco", SchemaFormBuilder.ALFRESCO_NS);
|
||||||
|
|
||||||
|
class PrototypeInsertionData
|
||||||
|
{
|
||||||
|
final Node prototype;
|
||||||
|
final List nodes;
|
||||||
|
final boolean append;
|
||||||
|
|
||||||
|
PrototypeInsertionData(final Node prototype,
|
||||||
|
final List nodes,
|
||||||
|
final boolean append)
|
||||||
|
{
|
||||||
|
this.prototype = prototype;
|
||||||
|
this.nodes = nodes;
|
||||||
|
this.append = append;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
final List<PrototypeInsertionData> prototypesToInsert =
|
||||||
|
new LinkedList<PrototypeInsertionData>();
|
||||||
|
|
||||||
|
final Iterator it =
|
||||||
|
prototypeContext.iteratePointers("//*[@" + SchemaFormBuilder.ALFRESCO_NS_PREFIX +
|
||||||
|
":prototype='true']");
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
final Pointer p = (Pointer)it.next();
|
||||||
|
String path = p.asPath().replaceAll("\\[\\d+\\]", "") + "[last()]";
|
||||||
|
LOGGER.debug("evaluating " + path + " against instance document");
|
||||||
|
List l = instanceContext.selectNodes(path);
|
||||||
|
if (l.size() != 0)
|
||||||
|
{
|
||||||
|
prototypesToInsert.add(new PrototypeInsertionData((Node)p.getNode(),
|
||||||
|
l,
|
||||||
|
false));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int index = path.lastIndexOf('/');
|
||||||
|
path = index == 0 ? "/" : path.substring(0, index);
|
||||||
|
l = instanceContext.selectNodes(path);
|
||||||
|
prototypesToInsert.add(new PrototypeInsertionData((Node)p.getNode(),
|
||||||
|
l,
|
||||||
|
true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (PrototypeInsertionData data : prototypesToInsert)
|
||||||
|
{
|
||||||
|
LOGGER.debug("adding prototype for " + data.prototype.getNodeName() +
|
||||||
|
" to " + data.nodes.size() + " nodes");
|
||||||
|
for (Object o : data.nodes)
|
||||||
|
{
|
||||||
|
final Node n = (Node)o;
|
||||||
|
if (data.append)
|
||||||
|
{
|
||||||
|
n.appendChild(data.prototype.cloneNode(true));
|
||||||
|
}
|
||||||
|
else if (n.getNextSibling() != null)
|
||||||
|
{
|
||||||
|
n.getParentNode().insertBefore(data.prototype.cloneNode(true),
|
||||||
|
n.getNextSibling());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
n.getParentNode().appendChild(data.prototype.cloneNode(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void removePrototypeNodes(final Element instanceDocumentElement)
|
public void removePrototypeNodes(final Element instanceDocumentElement)
|
||||||
{
|
{
|
||||||
final Map<String, LinkedList<Element>> prototypes =
|
final Map<String, LinkedList<Element>> prototypes =
|
||||||
@@ -688,7 +733,6 @@ public class SchemaFormBuilder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the most-specific built-in base type for the provided type.
|
* Returns the most-specific built-in base type for the provided type.
|
||||||
*/
|
*/
|
||||||
@@ -746,7 +790,7 @@ public class SchemaFormBuilder
|
|||||||
id = name + "_" + count;
|
id = name + "_" + count;
|
||||||
}
|
}
|
||||||
el.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
el.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "id",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":id",
|
||||||
id);
|
id);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -836,29 +880,29 @@ public class SchemaFormBuilder
|
|||||||
/// action in the case
|
/// action in the case
|
||||||
|
|
||||||
Element action = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element action = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "action");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":action");
|
||||||
this.setXFormsId(action);
|
this.setXFormsId(action);
|
||||||
item.appendChild(action);
|
item.appendChild(action);
|
||||||
|
|
||||||
action.setAttributeNS(SchemaFormBuilder.XMLEVENTS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XMLEVENTS_NS,
|
||||||
SchemaFormBuilder.XMLEVENTS_NS_PREFIX + "event",
|
SchemaFormBuilder.XMLEVENTS_NS_PREFIX + ":event",
|
||||||
"xforms-select");
|
"xforms-select");
|
||||||
|
|
||||||
Element toggle = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element toggle = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "toggle");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":toggle");
|
||||||
this.setXFormsId(toggle);
|
this.setXFormsId(toggle);
|
||||||
|
|
||||||
//build the case element
|
//build the case element
|
||||||
Element caseElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element caseElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "case");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":case");
|
||||||
String case_id = this.setXFormsId(caseElement);
|
String case_id = this.setXFormsId(caseElement);
|
||||||
result.put(textValue, caseElement);
|
result.put(textValue, caseElement);
|
||||||
|
|
||||||
toggle.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
toggle.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "case",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":case",
|
||||||
case_id);
|
case_id);
|
||||||
|
|
||||||
//toggle.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + "case",bindIdPrefix + "_" + textValue +"_case");
|
//toggle.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + ":case",bindIdPrefix + "_" + textValue +"_case");
|
||||||
action.appendChild(toggle);
|
action.appendChild(toggle);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -1010,8 +1054,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
JXPathContext context = JXPathContext.newContext(formSection.getOwnerDocument());
|
JXPathContext context = JXPathContext.newContext(formSection.getOwnerDocument());
|
||||||
final Pointer pointer =
|
final Pointer pointer =
|
||||||
context.getPointer("//*[@" + SchemaFormBuilder.XFORMS_NS_PREFIX +
|
context.getPointer("//*[@" + SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind='" + bindId + "']");
|
||||||
"bind='" + bindId + "']");
|
|
||||||
if (pointer != null)
|
if (pointer != null)
|
||||||
control = (Element)pointer.getNode();
|
control = (Element)pointer.getNode();
|
||||||
}
|
}
|
||||||
@@ -1371,13 +1414,14 @@ public class SchemaFormBuilder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element control =
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX +
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
"select1");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":select1");
|
||||||
String select1_id = this.setXFormsId(control);
|
String select1_id = this.setXFormsId(control);
|
||||||
|
|
||||||
Element choices = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element choices =
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "choices");
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":choices");
|
||||||
this.setXFormsId(choices);
|
this.setXFormsId(choices);
|
||||||
|
|
||||||
//get possible values
|
//get possible values
|
||||||
@@ -1403,7 +1447,7 @@ public class SchemaFormBuilder
|
|||||||
String caption = createCaption(elementDecl.getName() + " Type");
|
String caption = createCaption(elementDecl.getName() + " Type");
|
||||||
Element controlCaption =
|
Element controlCaption =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
control.appendChild(controlCaption);
|
control.appendChild(controlCaption);
|
||||||
this.setXFormsId(controlCaption);
|
this.setXFormsId(controlCaption);
|
||||||
controlCaption.appendChild(xForm.createTextNode(caption));
|
controlCaption.appendChild(xForm.createTextNode(caption));
|
||||||
@@ -1412,30 +1456,30 @@ public class SchemaFormBuilder
|
|||||||
// in the schema - allow the user to choose from
|
// in the schema - allow the user to choose from
|
||||||
// between compatible non-abstract types
|
// between compatible non-abstract types
|
||||||
Element bindElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element bindElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind");
|
||||||
String bindId = this.setXFormsId(bindElement);
|
String bindId = this.setXFormsId(bindElement);
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
pathToRoot + "/@xsi:type");
|
pathToRoot + "/@xsi:type");
|
||||||
|
|
||||||
modelSection.appendChild(bindElement);
|
modelSection.appendChild(bindElement);
|
||||||
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind",
|
||||||
bindId);
|
bindId);
|
||||||
|
|
||||||
//add the "element" bind, in addition
|
//add the "element" bind, in addition
|
||||||
Element bindElement2 = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element bindElement2 = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind");
|
||||||
String bindId2 = this.setXFormsId(bindElement2);
|
String bindId2 = this.setXFormsId(bindElement2);
|
||||||
bindElement2.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement2.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
pathToRoot);
|
pathToRoot);
|
||||||
|
|
||||||
modelSection.appendChild(bindElement2);
|
modelSection.appendChild(bindElement2);
|
||||||
|
|
||||||
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "appearance",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":appearance",
|
||||||
(enumValues.size() < Long.parseLong(getProperty(SELECTONE_LONG_LIST_SIZE_PROP))
|
(enumValues.size() < Long.parseLong(getProperty(SELECTONE_LONG_LIST_SIZE_PROP))
|
||||||
? getProperty(SELECTONE_UI_CONTROL_SHORT_PROP)
|
? getProperty(SELECTONE_UI_CONTROL_SHORT_PROP)
|
||||||
: getProperty(SELECTONE_UI_CONTROL_LONG_PROP)));
|
: getProperty(SELECTONE_UI_CONTROL_LONG_PROP)));
|
||||||
@@ -1463,8 +1507,7 @@ public class SchemaFormBuilder
|
|||||||
: isValidExpr);
|
: isValidExpr);
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":constraint",
|
||||||
+ "constraint",
|
|
||||||
constraint);
|
constraint);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1482,34 +1525,34 @@ public class SchemaFormBuilder
|
|||||||
/////////////////
|
/////////////////
|
||||||
//add a trigger for this control (is there a way to not need it ?)
|
//add a trigger for this control (is there a way to not need it ?)
|
||||||
Element trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "trigger");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":trigger");
|
||||||
formSection.appendChild(trigger);
|
formSection.appendChild(trigger);
|
||||||
this.setXFormsId(trigger);
|
this.setXFormsId(trigger);
|
||||||
Element label_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element label_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
this.setXFormsId(label_trigger);
|
this.setXFormsId(label_trigger);
|
||||||
trigger.appendChild(label_trigger);
|
trigger.appendChild(label_trigger);
|
||||||
String trigger_caption = createCaption("validate choice");
|
String trigger_caption = createCaption("validate choice");
|
||||||
label_trigger.appendChild(xForm.createTextNode(trigger_caption));
|
label_trigger.appendChild(xForm.createTextNode(trigger_caption));
|
||||||
Element action_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element action_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "action");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":action");
|
||||||
this.setXFormsId(action_trigger);
|
this.setXFormsId(action_trigger);
|
||||||
trigger.appendChild(action_trigger);
|
trigger.appendChild(action_trigger);
|
||||||
Element dispatch_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element dispatch_trigger = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "dispatch");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":dispatch");
|
||||||
this.setXFormsId(dispatch_trigger);
|
this.setXFormsId(dispatch_trigger);
|
||||||
action_trigger.appendChild(dispatch_trigger);
|
action_trigger.appendChild(dispatch_trigger);
|
||||||
dispatch_trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
dispatch_trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "name",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":name",
|
||||||
"DOMActivate");
|
"DOMActivate");
|
||||||
dispatch_trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
dispatch_trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "target",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":target",
|
||||||
select1_id);
|
select1_id);
|
||||||
|
|
||||||
/////////////////
|
/////////////////
|
||||||
//add switch
|
//add switch
|
||||||
Element switchElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element switchElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "switch");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":switch");
|
||||||
this.setXFormsId(switchElement);
|
this.setXFormsId(switchElement);
|
||||||
|
|
||||||
Element switchControlWrapper =
|
Element switchControlWrapper =
|
||||||
@@ -1553,8 +1596,8 @@ public class SchemaFormBuilder
|
|||||||
type.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE)
|
type.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Element caseElement = (Element) xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + "case");
|
//Element caseElement = (Element) xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + ":case");
|
||||||
//caseElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + "id",bindId + "_" + type.getName() +"_case");
|
//caseElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + ":id",bindId + "_" + type.getName() +"_case");
|
||||||
//String case_id=this.setXFormsId(caseElement);
|
//String case_id=this.setXFormsId(caseElement);
|
||||||
Element caseElement = caseTypes.get(type.getName());
|
Element caseElement = caseTypes.get(type.getName());
|
||||||
switchElement.appendChild(caseElement);
|
switchElement.appendChild(caseElement);
|
||||||
@@ -1621,7 +1664,7 @@ public class SchemaFormBuilder
|
|||||||
") and " + newRelevant);
|
") and " + newRelevant);
|
||||||
if (newRelevant != null && newRelevant.length() != 0)
|
if (newRelevant != null && newRelevant.length() != 0)
|
||||||
subBind.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
subBind.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "relevant",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":relevant",
|
||||||
newRelevant);
|
newRelevant);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1663,10 +1706,10 @@ public class SchemaFormBuilder
|
|||||||
// create the <xforms:bind> element and add it to the model.
|
// create the <xforms:bind> element and add it to the model.
|
||||||
final Element bindElement =
|
final Element bindElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind");
|
||||||
final String bindId = this.setXFormsId(bindElement);
|
final String bindId = this.setXFormsId(bindElement);
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
pathToRoot);
|
pathToRoot);
|
||||||
|
|
||||||
modelSection.appendChild(bindElement);
|
modelSection.appendChild(bindElement);
|
||||||
@@ -2023,8 +2066,7 @@ public class SchemaFormBuilder
|
|||||||
final JXPathContext context =
|
final JXPathContext context =
|
||||||
JXPathContext.newContext(formSection.getOwnerDocument());
|
JXPathContext.newContext(formSection.getOwnerDocument());
|
||||||
final Pointer pointer =
|
final Pointer pointer =
|
||||||
context.getPointer("//*[@" + SchemaFormBuilder.XFORMS_NS_PREFIX +
|
context.getPointer("//*[@" + SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind='" + bindId + "']");
|
||||||
"bind='" + bindId + "']");
|
|
||||||
if (pointer != null)
|
if (pointer != null)
|
||||||
control = (Element) pointer.getNode();
|
control = (Element) pointer.getNode();
|
||||||
}
|
}
|
||||||
@@ -2069,7 +2111,8 @@ public class SchemaFormBuilder
|
|||||||
LOGGER.debug("adding " + (this.getOccurance(element).maximum == 1
|
LOGGER.debug("adding " + (this.getOccurance(element).maximum == 1
|
||||||
? 1
|
? 1
|
||||||
: this.getOccurance(element).minimum + 1) +
|
: this.getOccurance(element).minimum + 1) +
|
||||||
" default instance element for " + elementName);
|
" default instance element for " + elementName +
|
||||||
|
" at path " + path);
|
||||||
// update the default instance
|
// update the default instance
|
||||||
if (this.getOccurance(element).maximum == 1)
|
if (this.getOccurance(element).maximum == 1)
|
||||||
{
|
{
|
||||||
@@ -2083,7 +2126,7 @@ public class SchemaFormBuilder
|
|||||||
if (i == this.getOccurance(element).minimum)
|
if (i == this.getOccurance(element).minimum)
|
||||||
{
|
{
|
||||||
e.setAttributeNS(SchemaFormBuilder.ALFRESCO_NS,
|
e.setAttributeNS(SchemaFormBuilder.ALFRESCO_NS,
|
||||||
SchemaFormBuilder.ALFRESCO_NS_PREFIX + "prototype",
|
SchemaFormBuilder.ALFRESCO_NS_PREFIX + ":prototype",
|
||||||
"true");
|
"true");
|
||||||
}
|
}
|
||||||
defaultInstanceElement.appendChild(e);
|
defaultInstanceElement.appendChild(e);
|
||||||
@@ -2123,10 +2166,10 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
final Element repeatSection =
|
final Element repeatSection =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "repeat");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":repeat");
|
||||||
|
|
||||||
//bind instead of repeat
|
//bind instead of repeat
|
||||||
//repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",pathToRoot);
|
//repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",pathToRoot);
|
||||||
// bind -> last element in the modelSection
|
// bind -> last element in the modelSection
|
||||||
Element bind = DOMUtil.getLastChildElement(modelSection);
|
Element bind = DOMUtil.getLastChildElement(modelSection);
|
||||||
String bindId = null;
|
String bindId = null;
|
||||||
@@ -2152,13 +2195,13 @@ public class SchemaFormBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind",
|
||||||
bindId);
|
bindId);
|
||||||
this.setXFormsId(repeatSection);
|
this.setXFormsId(repeatSection);
|
||||||
|
|
||||||
//appearance=full is more user friendly
|
//appearance=full is more user friendly
|
||||||
repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
repeatSection.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "appearance",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":appearance",
|
||||||
"full");
|
"full");
|
||||||
|
|
||||||
final Element controlWrapper =
|
final Element controlWrapper =
|
||||||
@@ -2167,7 +2210,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
//add a group inside the repeat?
|
//add a group inside the repeat?
|
||||||
final Element group = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
final Element group = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "group");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":group");
|
||||||
this.setXFormsId(group);
|
this.setXFormsId(group);
|
||||||
repeatSection.appendChild(group);
|
repeatSection.appendChild(group);
|
||||||
return group;
|
return group;
|
||||||
@@ -2200,7 +2243,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
// create the <xforms:bind> element and add it to the model.
|
// create the <xforms:bind> element and add it to the model.
|
||||||
Element bindElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element bindElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind");
|
||||||
String bindId = this.setXFormsId(bindElement);
|
String bindId = this.setXFormsId(bindElement);
|
||||||
modelSection.appendChild(bindElement);
|
modelSection.appendChild(bindElement);
|
||||||
bindElement = this.startBindElement(bindElement, schema, controlType, owner, pathToRoot, o);
|
bindElement = this.startBindElement(bindElement, schema, controlType, owner, pathToRoot, o);
|
||||||
@@ -2238,10 +2281,10 @@ public class SchemaFormBuilder
|
|||||||
//if there is a repeat -> create another bind with "."
|
//if there is a repeat -> create another bind with "."
|
||||||
Element bindElement2 =
|
Element bindElement2 =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind");
|
||||||
String bindId2 = this.setXFormsId(bindElement2);
|
String bindId2 = this.setXFormsId(bindElement2);
|
||||||
bindElement2.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement2.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
".");
|
".");
|
||||||
bindElement.appendChild(bindElement2);
|
bindElement.appendChild(bindElement2);
|
||||||
|
|
||||||
@@ -2267,7 +2310,7 @@ public class SchemaFormBuilder
|
|||||||
//
|
//
|
||||||
// if (!repeatSection.equals(formSection))
|
// if (!repeatSection.equals(formSection))
|
||||||
// formControl.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
// formControl.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
// SchemaFormBuilder.XFORMS_NS_PREFIX + "ref",
|
// SchemaFormBuilder.XFORMS_NS_PREFIX + ":ref",
|
||||||
// ".");
|
// ".");
|
||||||
|
|
||||||
Element hint = createHint(xForm, owner);
|
Element hint = createHint(xForm, owner);
|
||||||
@@ -2456,7 +2499,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
this.startFormControl(formControl, controlType);
|
this.startFormControl(formControl, controlType);
|
||||||
formControl.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
formControl.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind",
|
||||||
bindId);
|
bindId);
|
||||||
|
|
||||||
// TODO: Enhance alert statement based on facet restrictions.
|
// TODO: Enhance alert statement based on facet restrictions.
|
||||||
@@ -2466,7 +2509,7 @@ public class SchemaFormBuilder
|
|||||||
// e.g. Please provide a valid value for 'Address'. 'Address' is a mandatory decimal field.
|
// e.g. Please provide a valid value for 'Address'. 'Address' is a mandatory decimal field.
|
||||||
//
|
//
|
||||||
final Element alertElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
final Element alertElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "alert");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":alert");
|
||||||
formControl.appendChild(alertElement);
|
formControl.appendChild(alertElement);
|
||||||
this.setXFormsId(alertElement);
|
this.setXFormsId(alertElement);
|
||||||
|
|
||||||
@@ -2539,18 +2582,18 @@ public class SchemaFormBuilder
|
|||||||
final Document xForm = ts.newDocument();
|
final Document xForm = ts.newDocument();
|
||||||
|
|
||||||
final Element envelopeElement = this.wrapper.createEnvelope(xForm);
|
final Element envelopeElement = this.wrapper.createEnvelope(xForm);
|
||||||
|
this.addNamespace(envelopeElement,
|
||||||
final Map<String, String> namespaces = new HashMap<String, String>();
|
SchemaFormBuilder.XFORMS_NS_PREFIX,
|
||||||
namespaces.put(SchemaFormBuilder.CHIBA_NS_PREFIX, SchemaFormBuilder.CHIBA_NS);
|
SchemaFormBuilder.XFORMS_NS);
|
||||||
namespaces.put(SchemaFormBuilder.XFORMS_NS_PREFIX, SchemaFormBuilder.XFORMS_NS);
|
this.addNamespace(envelopeElement,
|
||||||
namespaces.put(SchemaFormBuilder.XLINK_NS_PREFIX, SchemaFormBuilder.XLINK_NS);
|
SchemaFormBuilder.XMLEVENTS_NS_PREFIX,
|
||||||
namespaces.put(SchemaFormBuilder.XMLEVENTS_NS_PREFIX, SchemaFormBuilder.XMLEVENTS_NS);
|
SchemaFormBuilder.XMLEVENTS_NS);
|
||||||
namespaces.put(SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS_PREFIX, SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS);
|
this.addNamespace(envelopeElement,
|
||||||
namespaces.put(SchemaFormBuilder.ALFRESCO_NS_PREFIX, SchemaFormBuilder.ALFRESCO_NS);
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS_PREFIX,
|
||||||
for (String nsPrefix : namespaces.keySet())
|
SchemaFormBuilder.XMLSCHEMA_INSTANCE_NS);
|
||||||
{
|
this.addNamespace(envelopeElement,
|
||||||
this.addNamespace(envelopeElement, nsPrefix, namespaces.get(nsPrefix));
|
SchemaFormBuilder.ALFRESCO_NS_PREFIX,
|
||||||
}
|
SchemaFormBuilder.ALFRESCO_NS);
|
||||||
|
|
||||||
//base
|
//base
|
||||||
if (this.base != null && this.base.length() != 0)
|
if (this.base != null && this.base.length() != 0)
|
||||||
@@ -2558,7 +2601,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
//model element
|
//model element
|
||||||
Element modelElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element modelElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "model");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":model");
|
||||||
this.setXFormsId(modelElement);
|
this.setXFormsId(modelElement);
|
||||||
Element modelWrapper = this.wrapper.createModelWrapper(modelElement);
|
Element modelWrapper = this.wrapper.createModelWrapper(modelElement);
|
||||||
envelopeElement.appendChild(modelWrapper);
|
envelopeElement.appendChild(modelWrapper);
|
||||||
@@ -2578,7 +2621,7 @@ public class SchemaFormBuilder
|
|||||||
// add a group node and recurse
|
// add a group node and recurse
|
||||||
Element groupElement =
|
Element groupElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "group");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":group");
|
||||||
groupElement = startFormGroup(groupElement, owner);
|
groupElement = startFormGroup(groupElement, owner);
|
||||||
|
|
||||||
if (groupElement == null)
|
if (groupElement == null)
|
||||||
@@ -2594,7 +2637,7 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
Element captionElement =
|
Element captionElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
groupElement.appendChild(captionElement);
|
groupElement.appendChild(captionElement);
|
||||||
this.setXFormsId(captionElement);
|
this.setXFormsId(captionElement);
|
||||||
captionElement.appendChild(xForm.createTextNode(createCaption(owner)));
|
captionElement.appendChild(xForm.createTextNode(createCaption(owner)));
|
||||||
@@ -2731,15 +2774,15 @@ public class SchemaFormBuilder
|
|||||||
XSTypeDefinition controlType)
|
XSTypeDefinition controlType)
|
||||||
{
|
{
|
||||||
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "textarea");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":textarea");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
control.setAttributeNS(SchemaFormBuilder.CHIBA_NS,
|
// control.setAttributeNS(SchemaFormBuilder.CHIBA_NS,
|
||||||
SchemaFormBuilder.CHIBA_NS_PREFIX + "height",
|
// SchemaFormBuilder.CHIBA_NS_PREFIX + "height",
|
||||||
"3");
|
// "3");
|
||||||
|
|
||||||
//label
|
//label
|
||||||
Element captionElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element captionElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
control.appendChild(captionElement);
|
control.appendChild(captionElement);
|
||||||
this.setXFormsId(captionElement);
|
this.setXFormsId(captionElement);
|
||||||
captionElement.appendChild(xForm.createTextNode(caption));
|
captionElement.appendChild(xForm.createTextNode(caption));
|
||||||
@@ -2770,7 +2813,7 @@ public class SchemaFormBuilder
|
|||||||
if ("boolean".equals(controlType.getName()))
|
if ("boolean".equals(controlType.getName()))
|
||||||
{
|
{
|
||||||
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "select1");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":select1");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
final String[] values = { "true", "false" };
|
final String[] values = { "true", "false" };
|
||||||
for (String v : values)
|
for (String v : values)
|
||||||
@@ -2782,25 +2825,25 @@ public class SchemaFormBuilder
|
|||||||
else if ("anyURI".equals(controlType.getName()))
|
else if ("anyURI".equals(controlType.getName()))
|
||||||
{
|
{
|
||||||
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "upload");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":upload");
|
||||||
final Element e = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
final Element e = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "filename");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":filename");
|
||||||
control.appendChild(e);
|
control.appendChild(e);
|
||||||
e.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
e.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "ref",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":ref",
|
||||||
".");
|
".");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + "input");
|
control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS, SchemaFormBuilder.XFORMS_NS_PREFIX + ":input");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
}
|
}
|
||||||
|
|
||||||
//label
|
//label
|
||||||
final Element captionElement =
|
final Element captionElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
control.appendChild(captionElement);
|
control.appendChild(captionElement);
|
||||||
this.setXFormsId(captionElement);
|
this.setXFormsId(captionElement);
|
||||||
captionElement.appendChild(xForm.createTextNode(caption));
|
captionElement.appendChild(xForm.createTextNode(caption));
|
||||||
@@ -2842,18 +2885,18 @@ public class SchemaFormBuilder
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "select1");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":select1");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
|
|
||||||
//label
|
//label
|
||||||
Element captionElement1 = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element captionElement1 = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
control.appendChild(captionElement1);
|
control.appendChild(captionElement1);
|
||||||
this.setXFormsId(captionElement1);
|
this.setXFormsId(captionElement1);
|
||||||
captionElement1.appendChild(xForm.createTextNode(caption));
|
captionElement1.appendChild(xForm.createTextNode(caption));
|
||||||
|
|
||||||
Element choices = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element choices = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "choices");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":choices");
|
||||||
this.setXFormsId(choices);
|
this.setXFormsId(choices);
|
||||||
|
|
||||||
final XSObjectList mvFacets = controlType.getMultiValueFacets();
|
final XSObjectList mvFacets = controlType.getMultiValueFacets();
|
||||||
@@ -2874,7 +2917,7 @@ public class SchemaFormBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "appearance",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":appearance",
|
||||||
(enumFacets.getLength() < Long.parseLong(getProperty(SELECTONE_LONG_LIST_SIZE_PROP))
|
(enumFacets.getLength() < Long.parseLong(getProperty(SELECTONE_LONG_LIST_SIZE_PROP))
|
||||||
? getProperty(SELECTONE_UI_CONTROL_SHORT_PROP)
|
? getProperty(SELECTONE_UI_CONTROL_SHORT_PROP)
|
||||||
: getProperty(SELECTONE_UI_CONTROL_LONG_PROP)));
|
: getProperty(SELECTONE_UI_CONTROL_LONG_PROP)));
|
||||||
@@ -2902,7 +2945,7 @@ public class SchemaFormBuilder
|
|||||||
: isValidExpr);
|
: isValidExpr);
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "constraint",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":constraint",
|
||||||
constraint);
|
constraint);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2943,12 +2986,12 @@ public class SchemaFormBuilder
|
|||||||
if (enumFacets.getLength() <= 0)
|
if (enumFacets.getLength() <= 0)
|
||||||
return null;
|
return null;
|
||||||
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element control = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "select");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":select");
|
||||||
this.setXFormsId(control);
|
this.setXFormsId(control);
|
||||||
|
|
||||||
//label
|
//label
|
||||||
Element captionElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element captionElement = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
control.appendChild(captionElement);
|
control.appendChild(captionElement);
|
||||||
this.setXFormsId(captionElement);
|
this.setXFormsId(captionElement);
|
||||||
captionElement.appendChild(xForm.createTextNode(caption));
|
captionElement.appendChild(xForm.createTextNode(caption));
|
||||||
@@ -2977,12 +3020,12 @@ public class SchemaFormBuilder
|
|||||||
// For now, use checkbox if there are < DEFAULT_LONG_LIST_MAX_SIZE items, otherwise use long control
|
// For now, use checkbox if there are < DEFAULT_LONG_LIST_MAX_SIZE items, otherwise use long control
|
||||||
//
|
//
|
||||||
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
control.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "appearance",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":appearance",
|
||||||
(enumValues.size() < Long.parseLong(getProperty(SELECTMANY_LONG_LIST_SIZE_PROP))
|
(enumValues.size() < Long.parseLong(getProperty(SELECTMANY_LONG_LIST_SIZE_PROP))
|
||||||
? getProperty(SELECTMANY_UI_CONTROL_SHORT_PROP)
|
? getProperty(SELECTMANY_UI_CONTROL_SHORT_PROP)
|
||||||
: getProperty(SELECTMANY_UI_CONTROL_LONG_PROP)));
|
: getProperty(SELECTMANY_UI_CONTROL_LONG_PROP)));
|
||||||
Element choices = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element choices = xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "choices");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":choices");
|
||||||
this.setXFormsId(choices);
|
this.setXFormsId(choices);
|
||||||
control.appendChild(choices);
|
control.appendChild(choices);
|
||||||
|
|
||||||
@@ -3013,7 +3056,7 @@ public class SchemaFormBuilder
|
|||||||
return null;
|
return null;
|
||||||
final Element hintElement =
|
final Element hintElement =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "hint");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":hint");
|
||||||
this.setXFormsId(hintElement);
|
this.setXFormsId(hintElement);
|
||||||
hintElement.appendChild(xForm.createTextNode(s));
|
hintElement.appendChild(xForm.createTextNode(s));
|
||||||
return hintElement;
|
return hintElement;
|
||||||
@@ -3090,7 +3133,7 @@ public class SchemaFormBuilder
|
|||||||
nodeset = pathToRoot + "[position() != last()]";
|
nodeset = pathToRoot + "[position() != last()]";
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
nodeset);
|
nodeset);
|
||||||
|
|
||||||
if (!"anyType".equals(controlType.getName()) &&
|
if (!"anyType".equals(controlType.getName()) &&
|
||||||
@@ -3101,7 +3144,7 @@ public class SchemaFormBuilder
|
|||||||
controlType);
|
controlType);
|
||||||
if (typeName != null && typeName.length() != 0)
|
if (typeName != null && typeName.length() != 0)
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "type",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":type",
|
||||||
typeName);
|
typeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3115,11 +3158,11 @@ public class SchemaFormBuilder
|
|||||||
: XSConstants.VC_NONE)));
|
: XSConstants.VC_NONE)));
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "readonly",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":readonly",
|
||||||
(constraintType == XSConstants.VC_FIXED) + "()");
|
(constraintType == XSConstants.VC_FIXED) + "()");
|
||||||
|
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "required",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":required",
|
||||||
(o.minimum != 0) + "()");
|
(o.minimum != 0) + "()");
|
||||||
|
|
||||||
//no more minOccurs & maxOccurs element: add a constraint if maxOccurs>1:
|
//no more minOccurs & maxOccurs element: add a constraint if maxOccurs>1:
|
||||||
@@ -3132,7 +3175,7 @@ public class SchemaFormBuilder
|
|||||||
//if 0 or 1 -> no constraint (managed by "required")
|
//if 0 or 1 -> no constraint (managed by "required")
|
||||||
minConstraint = "count(.) >= " + o.minimum;
|
minConstraint = "count(.) >= " + o.minimum;
|
||||||
bindElement.setAttributeNS(ALFRESCO_NS,
|
bindElement.setAttributeNS(ALFRESCO_NS,
|
||||||
ALFRESCO_NS_PREFIX + "minimum",
|
ALFRESCO_NS_PREFIX + ":minimum",
|
||||||
String.valueOf(o.minimum));
|
String.valueOf(o.minimum));
|
||||||
}
|
}
|
||||||
if (o.maximum > 1)
|
if (o.maximum > 1)
|
||||||
@@ -3140,7 +3183,7 @@ public class SchemaFormBuilder
|
|||||||
//if 1 or unbounded -> no constraint
|
//if 1 or unbounded -> no constraint
|
||||||
maxConstraint = "count(.) <= " + o.maximum;
|
maxConstraint = "count(.) <= " + o.maximum;
|
||||||
bindElement.setAttributeNS(ALFRESCO_NS,
|
bindElement.setAttributeNS(ALFRESCO_NS,
|
||||||
ALFRESCO_NS_PREFIX + "maximum",
|
ALFRESCO_NS_PREFIX + ":maximum",
|
||||||
String.valueOf(o.maximum));
|
String.valueOf(o.maximum));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3151,7 +3194,7 @@ public class SchemaFormBuilder
|
|||||||
: maxConstraint));
|
: maxConstraint));
|
||||||
if (constraint != null)
|
if (constraint != null)
|
||||||
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
bindElement.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "constraint",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":constraint",
|
||||||
constraint);
|
constraint);
|
||||||
return bindElement;
|
return bindElement;
|
||||||
}
|
}
|
||||||
@@ -3275,9 +3318,8 @@ public class SchemaFormBuilder
|
|||||||
final String nsPrefix,
|
final String nsPrefix,
|
||||||
final String ns)
|
final String ns)
|
||||||
{
|
{
|
||||||
final String p = nsPrefix.substring(0, nsPrefix.length() - 1);
|
if (!e.hasAttributeNS(XMLNS_NAMESPACE_URI, nsPrefix))
|
||||||
if (!e.hasAttributeNS(XMLNS_NAMESPACE_URI, p))
|
e.setAttributeNS(XMLNS_NAMESPACE_URI, "xmlns:" + nsPrefix, ns);
|
||||||
e.setAttributeNS(XMLNS_NAMESPACE_URI, "xmlns:" + p, ns);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createTriggersForRepeats(final Document xformsDocument)
|
private void createTriggersForRepeats(final Document xformsDocument)
|
||||||
@@ -3318,7 +3360,7 @@ public class SchemaFormBuilder
|
|||||||
s += "[index(\'" + bindToRepeat.get(bind).getAttributeNS(SchemaFormBuilder.XFORMS_NS, "id") + "\')]";
|
s += "[index(\'" + bindToRepeat.get(bind).getAttributeNS(SchemaFormBuilder.XFORMS_NS, "id") + "\')]";
|
||||||
}
|
}
|
||||||
xpath = s + xpath;
|
xpath = s + xpath;
|
||||||
bind = ((SchemaFormBuilder.XFORMS_NS_PREFIX + "bind").equals(bind.getParentNode().getNodeName())
|
bind = ((SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind").equals(bind.getParentNode().getNodeName())
|
||||||
? (Element)bind.getParentNode()
|
? (Element)bind.getParentNode()
|
||||||
: null);
|
: null);
|
||||||
}
|
}
|
||||||
@@ -3338,17 +3380,17 @@ public class SchemaFormBuilder
|
|||||||
{
|
{
|
||||||
final Element trigger =
|
final Element trigger =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "trigger");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":trigger");
|
||||||
this.setXFormsId(trigger, id != null ? id : null);
|
this.setXFormsId(trigger, id != null ? id : null);
|
||||||
|
|
||||||
//copy the bind attribute
|
//copy the bind attribute
|
||||||
trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
trigger.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "bind",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":bind",
|
||||||
bindId);
|
bindId);
|
||||||
//label insert
|
//label insert
|
||||||
final Element triggerLabel =
|
final Element triggerLabel =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
this.setXFormsId(triggerLabel);
|
this.setXFormsId(triggerLabel);
|
||||||
trigger.appendChild(triggerLabel);
|
trigger.appendChild(triggerLabel);
|
||||||
|
|
||||||
@@ -3357,7 +3399,7 @@ public class SchemaFormBuilder
|
|||||||
//insert action
|
//insert action
|
||||||
final Element actionWrapper =
|
final Element actionWrapper =
|
||||||
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xForm.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "action");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":action");
|
||||||
actionWrapper.appendChild(action);
|
actionWrapper.appendChild(action);
|
||||||
trigger.appendChild(action);
|
trigger.appendChild(action);
|
||||||
this.setXFormsId(action);
|
this.setXFormsId(action);
|
||||||
@@ -3380,15 +3422,15 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
Element action =
|
Element action =
|
||||||
xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "insert");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":insert");
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
nodeset);
|
nodeset);
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "position",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":position",
|
||||||
"before");
|
"before");
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "at",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":at",
|
||||||
"1");
|
"1");
|
||||||
|
|
||||||
final Element trigger_insert_before =
|
final Element trigger_insert_before =
|
||||||
@@ -3399,16 +3441,16 @@ public class SchemaFormBuilder
|
|||||||
action);
|
action);
|
||||||
|
|
||||||
action = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
action = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "insert");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":insert");
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
nodeset);
|
nodeset);
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "position",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":position",
|
||||||
"after");
|
"after");
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "at",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":at",
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "index('" + repeatId + "')");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":index('" + repeatId + "')");
|
||||||
|
|
||||||
final Element trigger_insert_after =
|
final Element trigger_insert_after =
|
||||||
this.createTriggerForRepeat(xformsDocument,
|
this.createTriggerForRepeat(xformsDocument,
|
||||||
@@ -3419,13 +3461,13 @@ public class SchemaFormBuilder
|
|||||||
|
|
||||||
//trigger delete
|
//trigger delete
|
||||||
action = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
action = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "delete");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":delete");
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "nodeset",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":nodeset",
|
||||||
nodeset);
|
nodeset);
|
||||||
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
action.setAttributeNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "at",
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":at",
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "index('" + repeatId + "')");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":index('" + repeatId + "')");
|
||||||
|
|
||||||
final Element trigger_delete =
|
final Element trigger_delete =
|
||||||
this.createTriggerForRepeat(xformsDocument,
|
this.createTriggerForRepeat(xformsDocument,
|
||||||
@@ -3464,16 +3506,16 @@ public class SchemaFormBuilder
|
|||||||
final String value)
|
final String value)
|
||||||
{
|
{
|
||||||
final Element item = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
final Element item = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "item");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":item");
|
||||||
this.setXFormsId(item);
|
this.setXFormsId(item);
|
||||||
Element e = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
Element e = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "label");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":label");
|
||||||
this.setXFormsId(e);
|
this.setXFormsId(e);
|
||||||
e.appendChild(xformsDocument.createTextNode(label));
|
e.appendChild(xformsDocument.createTextNode(label));
|
||||||
item.appendChild(e);
|
item.appendChild(e);
|
||||||
|
|
||||||
e = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
e = xformsDocument.createElementNS(SchemaFormBuilder.XFORMS_NS,
|
||||||
SchemaFormBuilder.XFORMS_NS_PREFIX + "value");
|
SchemaFormBuilder.XFORMS_NS_PREFIX + ":value");
|
||||||
this.setXFormsId(e);
|
this.setXFormsId(e);
|
||||||
e.appendChild(xformsDocument.createTextNode(value));
|
e.appendChild(xformsDocument.createTextNode(value));
|
||||||
item.appendChild(e);
|
item.appendChild(e);
|
||||||
|
Reference in New Issue
Block a user