Added elementParent tag also to elementInterface and fixed eld
elementParent namespace uri bug and updated elddoc and xsd for extra search.
This commit is contained in:
parent
4a700f98a6
commit
bcce73b2ad
|
@ -294,6 +294,7 @@ public class EldModuleLoaderCore implements ElementLanguageModuleLoader {
|
|||
|
||||
ec = new DefaultElementClass("elementParent",null,ElementClassAddParentElement.class);
|
||||
ec.addElementParent(CEL_CORE_URI, "element");
|
||||
ec.addElementParent(CEL_CORE_URI, "elementInterface");
|
||||
try {
|
||||
attr = (ElementClassAttribute)X4OLanguageClassLoader.newInstance(elementLanguage.getLanguageConfiguration().getDefaultElementClassAttribute());
|
||||
attr.setName("tag");
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
package org.x4o.xml.eld.lang;
|
||||
|
||||
import org.x4o.xml.element.AbstractElement;
|
||||
import org.x4o.xml.element.ElementClass;
|
||||
import org.x4o.xml.element.ElementClassBase;
|
||||
import org.x4o.xml.element.ElementException;
|
||||
|
||||
/**
|
||||
|
@ -48,10 +48,10 @@ public class ElementClassAddParentElement extends AbstractElement {
|
|||
if (namespaceUri==null) {
|
||||
namespaceUri = getParent().getParent().getAttributes().get("uri"); // copy uri from namespace element.
|
||||
}
|
||||
if (getParent().getElementObject() instanceof ElementClass) {
|
||||
((ElementClass)getParent().getElementObject()).addElementParent(namespaceUri,tag);
|
||||
if (getParent().getElementObject() instanceof ElementClassBase) {
|
||||
((ElementClassBase)getParent().getElementObject()).addElementParent(namespaceUri,tag);
|
||||
} else {
|
||||
throw new ElementException("Wrong parent class is not ElementClass but: "+getParent().getElementObject());
|
||||
throw new ElementException("Wrong parent class is not ElementClassBase but: "+getParent().getElementObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ import org.x4o.xml.element.ElementAttributeHandler;
|
|||
import org.x4o.xml.element.ElementBindingHandler;
|
||||
import org.x4o.xml.element.ElementClass;
|
||||
import org.x4o.xml.element.ElementClassAttribute;
|
||||
import org.x4o.xml.element.ElementInterface;
|
||||
import org.x4o.xml.element.ElementLanguage;
|
||||
import org.x4o.xml.element.ElementLanguageModule;
|
||||
import org.x4o.xml.element.ElementNamespaceContext;
|
||||
|
@ -129,6 +130,12 @@ public class EldXsdXmlWriter {
|
|||
}
|
||||
}
|
||||
}
|
||||
for (ElementInterface ei:context.findElementInterfaces(objectClass)) {
|
||||
List<String> eiTags = ei.getElementParents(namespaceUri);
|
||||
if (eiTags!=null) {
|
||||
startNamespace(nsContext.getUri(),nsContext.getSchemaPrefix());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -261,9 +268,10 @@ public class EldXsdXmlWriter {
|
|||
|
||||
if (ec.getSchemaContentBase()==null) {
|
||||
atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "minOccurs", "", "", "0"); // make unordered elements
|
||||
atts.addAttribute ("", "minOccurs", "", "", "0"); // TODO: make unordered elements
|
||||
atts.addAttribute ("", "maxOccurs", "", "", "unbounded");
|
||||
xmlWriter.startElement (SCHEMA_URI, "choice", "", atts);
|
||||
|
||||
for (ElementLanguageModule mod:context.getElementLanguageModules()) {
|
||||
for (ElementNamespaceContext ns:mod.getElementNamespaceContexts()) {
|
||||
writeElementClassNamespaces(ec,nsWrite,ns);
|
||||
|
@ -361,27 +369,36 @@ public class EldXsdXmlWriter {
|
|||
}
|
||||
}
|
||||
|
||||
private void writeElementClassNamespaces(ElementClass ec,ElementNamespaceContext nsWrite,ElementNamespaceContext ns) throws SAXException {
|
||||
private void writeElementClassNamespaces(ElementClass ecWrite,ElementNamespaceContext nsWrite,ElementNamespaceContext ns) throws SAXException {
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
List<String> refElements = new ArrayList<String>(20);
|
||||
for (ElementClass checkClass:ns.getElementClasses()) {
|
||||
List<String> parents = checkClass.getElementParents(nsWrite.getUri());
|
||||
if (parents!=null && parents.contains(ec.getTag())) {
|
||||
if (parents!=null && parents.contains(ecWrite.getTag())) {
|
||||
refElements.add(checkClass.getTag());
|
||||
}
|
||||
if (ec.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
if (checkClass.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
Class<?> objectClass = ec.getObjectClass();
|
||||
for (ElementInterface ei:context.findElementInterfaces(checkClass.getObjectClass())) {
|
||||
parents = ei.getElementParents(nsWrite.getUri());
|
||||
if (parents!=null && parents.contains(ecWrite.getTag())) {
|
||||
refElements.add(checkClass.getTag());
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ecWrite.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
Class<?> objectClass = ecWrite.getObjectClass();
|
||||
Class<?> checkObjectClass = checkClass.getObjectClass();
|
||||
List<ElementBindingHandler> b = context.findElementBindingHandlers(objectClass,checkObjectClass);
|
||||
if (b.isEmpty()==false) {
|
||||
refElements.add(checkClass.getTag());
|
||||
}
|
||||
}
|
||||
|
||||
if (refElements.isEmpty()==false) {
|
||||
Set<String> s = new HashSet<String>(refElements.size());
|
||||
s.addAll(refElements);
|
||||
|
|
|
@ -40,14 +40,12 @@ public abstract class AbstractElementClass extends AbstractElementClassBase impl
|
|||
private Class<?> objectClass = null;
|
||||
private Class<?> elementClass = null;
|
||||
private Boolean autoAttributes = true;
|
||||
private Map<String,List<String>> elementParents = null;
|
||||
private String schemaContentBase = null;
|
||||
private Boolean schemaContentComplex = null;
|
||||
private Boolean schemaContentMixed = null;
|
||||
private List<String> skipPhases = null;
|
||||
|
||||
public AbstractElementClass() {
|
||||
elementParents = new HashMap<String,List<String>>(5);
|
||||
skipPhases = new ArrayList<String>(3);
|
||||
}
|
||||
|
||||
|
@ -107,42 +105,6 @@ public abstract class AbstractElementClass extends AbstractElementClassBase impl
|
|||
this.autoAttributes = autoAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClass#addElementParent(java.lang.String,java.lang.String)
|
||||
*/
|
||||
public void addElementParent(String namespaceUri,String tag) {
|
||||
if (namespaceUri==null) {
|
||||
throw new NullPointerException("Can't add parent tag with null namespace uri.");
|
||||
}
|
||||
if (namespaceUri.isEmpty()) {
|
||||
throw new IllegalArgumentException("Can't add parent tag with empty namespace uri.");
|
||||
}
|
||||
List<String> tags = elementParents.get(namespaceUri);
|
||||
if (tags==null) {
|
||||
tags = new ArrayList<String>(5);
|
||||
elementParents.put(namespaceUri, tags);
|
||||
}
|
||||
tags.add(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClass#removeElementParent(java.lang.String,java.lang.String)
|
||||
*/
|
||||
public void removeElementParent(String namespaceUri,String tag) {
|
||||
List<String> tags = elementParents.get(namespaceUri);
|
||||
if (tags==null) {
|
||||
return;
|
||||
}
|
||||
tags.remove(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClass#getElementParents(java.lang.String)
|
||||
*/
|
||||
public List<String> getElementParents(String namespaceUri) {
|
||||
return elementParents.get(namespaceUri);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the schemaContentBase
|
||||
*/
|
||||
|
|
|
@ -39,13 +39,14 @@ public abstract class AbstractElementClassBase extends AbstractElementMetaBase i
|
|||
|
||||
private Map<String,ElementClassAttribute> elementClassAttributes = null;
|
||||
private List<ElementConfigurator> elementConfigurators = null;
|
||||
private Map<String,List<String>> elementParents = null;
|
||||
|
||||
public AbstractElementClassBase() {
|
||||
elementConfigurators = new ArrayList<ElementConfigurator>(5);
|
||||
elementClassAttributes = new HashMap<String,ElementClassAttribute>(15);
|
||||
elementParents = new HashMap<String,List<String>>(5);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see ElementClass#getElementConfigurators()
|
||||
*/
|
||||
|
@ -77,4 +78,40 @@ public abstract class AbstractElementClassBase extends AbstractElementMetaBase i
|
|||
public ElementClassAttribute getElementClassAttributeByName(String attributeName) {
|
||||
return elementClassAttributes.get(attributeName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClassBase#addElementParent(java.lang.String,java.lang.String)
|
||||
*/
|
||||
public void addElementParent(String namespaceUri,String tag) {
|
||||
if (namespaceUri==null) {
|
||||
throw new NullPointerException("Can't add parent tag with null namespace uri.");
|
||||
}
|
||||
if (namespaceUri.isEmpty()) {
|
||||
throw new IllegalArgumentException("Can't add parent tag with empty namespace uri.");
|
||||
}
|
||||
List<String> tags = elementParents.get(namespaceUri);
|
||||
if (tags==null) {
|
||||
tags = new ArrayList<String>(5);
|
||||
elementParents.put(namespaceUri, tags);
|
||||
}
|
||||
tags.add(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClassBase#removeElementParent(java.lang.String,java.lang.String)
|
||||
*/
|
||||
public void removeElementParent(String namespaceUri,String tag) {
|
||||
List<String> tags = elementParents.get(namespaceUri);
|
||||
if (tags==null) {
|
||||
return;
|
||||
}
|
||||
tags.remove(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.ElementClassBase#getElementParents(java.lang.String)
|
||||
*/
|
||||
public List<String> getElementParents(String namespaceUri) {
|
||||
return elementParents.get(namespaceUri);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -130,11 +130,12 @@ public abstract class AbstractElementLanguageModule extends AbstractElementMetaB
|
|||
throw new NullPointerException("Can't add with null id property.");
|
||||
}
|
||||
// Check so doc tree does not loop; see EldDocHtmlWriter.findChilderen()
|
||||
/*
|
||||
for (Class<?> cl:elementBindingHandler.getBindChildClasses()) {
|
||||
if (elementBindingHandler.getBindParentClass().equals(cl)) {
|
||||
throw new IllegalStateException("Can't add binding handler: "+elementBindingHandler.getId()+" with same parent as child class.");
|
||||
}
|
||||
}
|
||||
}*/
|
||||
logger.finer("Adding ElementBindingHandler: "+elementBindingHandler);
|
||||
elementBindingHandlers.add(elementBindingHandler);
|
||||
}
|
||||
|
|
|
@ -78,29 +78,6 @@ public interface ElementClass extends ElementClassBase {
|
|||
*/
|
||||
void setAutoAttributes(Boolean autoAttributes);
|
||||
|
||||
/**
|
||||
* Add an parent element tag.
|
||||
* Used: for xsd only.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @param tag The parent element tag.
|
||||
*/
|
||||
void addElementParent(String namespaceUri,String tag);
|
||||
|
||||
/**
|
||||
* Remove and parent element
|
||||
* Used: for xsd only.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @param tag The parent element tag.
|
||||
*/
|
||||
void removeElementParent(String namespaceUri,String tag);
|
||||
|
||||
/**
|
||||
* Returns list of parent element tags.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @return The list of tags.
|
||||
*/
|
||||
List<String> getElementParents(String namespaceUri);
|
||||
|
||||
/**
|
||||
* @return the schemaContentBase
|
||||
*/
|
||||
|
|
|
@ -41,4 +41,28 @@ public interface ElementClassBase extends ElementMetaBase {
|
|||
Collection<ElementClassAttribute> getElementClassAttributes();
|
||||
ElementClassAttribute getElementClassAttributeByName(String attributeName);
|
||||
void addElementClassAttribute(ElementClassAttribute elementClassAttribute);
|
||||
|
||||
/**
|
||||
* Add an parent element tag.
|
||||
* Used: for xsd/doc only.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @param tag The parent element tag.
|
||||
*/
|
||||
void addElementParent(String namespaceUri,String tag);
|
||||
|
||||
/**
|
||||
* Remove and parent element
|
||||
* Used: for xsd/doc only.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @param tag The parent element tag.
|
||||
*/
|
||||
void removeElementParent(String namespaceUri,String tag);
|
||||
|
||||
/**
|
||||
* Returns list of parent element tags.
|
||||
* Used: for xsd/doc only.
|
||||
* @param namespaceUri The namespace uri of this tag relation.
|
||||
* @return The list of tags.
|
||||
*/
|
||||
List<String> getElementParents(String namespaceUri);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
ModuleName: Core Element Languag Module
|
||||
Namespaces: 2
|
||||
Namespace: http://cel.x4o.org/xml/ns/cel-core
|
||||
Created on: Thu Dec 20 22:30:55 CET 2012
|
||||
Created on: Tue Jan 08 06:02:28 CET 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:this="http://cel.x4o.org/xml/ns/cel-core"
|
||||
|
@ -44,11 +44,11 @@
|
|||
</choice>
|
||||
<attribute name="objectClass" type="string"/>
|
||||
<attribute name="elementClass" type="string"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
<attribute name="autoAttributes" type="boolean"/>
|
||||
<attribute name="schemaContentComplex" type="boolean"/>
|
||||
<attribute name="schemaContentMixed" type="boolean"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
</complexType>
|
||||
|
@ -81,12 +81,12 @@
|
|||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="runResolveEL" type="boolean"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="runBeanFill" type="boolean"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
</complexType>
|
||||
|
@ -107,6 +107,7 @@
|
|||
<element name="bindingHandler" type="this:bindingHandlerType"/>
|
||||
<element name="configurator" type="this:configuratorType"/>
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
<element name="elementParent" type="this:elementParentType"/>
|
||||
</choice>
|
||||
<attribute name="interfaceClass" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
ModuleName: Core Element Languag Module
|
||||
Namespaces: 2
|
||||
Namespace: http://cel.x4o.org/xml/ns/cel-root
|
||||
Created on: Thu Dec 20 22:30:55 CET 2012
|
||||
Created on: Tue Jan 08 06:02:28 CET 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:cel-core="http://cel.x4o.org/xml/ns/cel-core"
|
||||
|
@ -25,8 +25,8 @@
|
|||
</choice>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="providerName" type="string"/>
|
||||
<attribute name="elementLanguageModuleLoader" type="string"/>
|
||||
<attribute name="sourceResource" type="string"/>
|
||||
<attribute name="elementLanguageModuleLoader" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
</complexType>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
ModuleName: Element Language Definition
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-conv
|
||||
Created on: Thu Dec 20 22:30:10 CET 2012
|
||||
Created on: Tue Jan 08 06:03:20 CET 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:this="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
ModuleName: Element Language Definition
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-lang
|
||||
Created on: Thu Dec 20 22:30:10 CET 2012
|
||||
Created on: Tue Jan 08 06:03:20 CET 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
@ -55,10 +55,10 @@
|
|||
<attribute name="objectClass" type="string"/>
|
||||
<attribute name="elementClass" type="string"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
<attribute name="autoAttributes" type="boolean"/>
|
||||
<attribute name="schemaContentComplex" type="boolean"/>
|
||||
<attribute name="schemaContentMixed" type="boolean"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
|
@ -128,11 +128,11 @@
|
|||
</choice>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="runResolveEL" type="boolean"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="runBeanFill" type="boolean"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="id" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
|
@ -169,6 +169,7 @@
|
|||
<element name="classBindingHandler" type="this:classBindingHandlerType"/>
|
||||
<element name="configurator" type="this:configuratorType"/>
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
<element name="elementParent" type="this:elementParentType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="interfaceClass" type="string" use="required"/>
|
||||
|
@ -177,7 +178,7 @@
|
|||
<complexType name="elementParentType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="namespaceUri" type="string"/>
|
||||
<attribute name="uri" type="string"/>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<element name="namespace" type="this:namespaceType">
|
||||
|
|
|
@ -180,11 +180,12 @@
|
|||
<element tag="elementParent" elementClass="org.x4o.xml.eld.lang.ElementClassAddParentElement">
|
||||
<description>Adds an parent element tag for xsd</description>
|
||||
<elementParent tag="element"/>
|
||||
<elementParent tag="elementInterface"/>
|
||||
<attribute name="tag">
|
||||
<description>The parent tag to have object for.</description>
|
||||
</attribute>
|
||||
<attribute name="namespaceUri">
|
||||
<description>The element namespace uri if non local.</description>
|
||||
<attribute name="uri">
|
||||
<description>The element namespace uri if non local parent.</description>
|
||||
</attribute>
|
||||
</element>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
ModuleName: Element Language Definition
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-root
|
||||
Created on: Thu Dec 20 22:30:10 CET 2012
|
||||
Created on: Tue Jan 08 06:03:20 CET 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
@ -30,8 +30,8 @@
|
|||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="providerName" type="string"/>
|
||||
<attribute name="elementLanguageModuleLoader" type="string"/>
|
||||
<attribute name="sourceResource" type="string"/>
|
||||
<attribute name="elementLanguageModuleLoader" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
</element>
|
||||
|
|
|
@ -46,6 +46,12 @@
|
|||
<eld:classBindingHandler id="Root-Bean" parentClass="org.x4o.xml.test.models.TestObjectRoot" childClass="org.x4o.xml.test.models.TestBean" method="addTestBean">
|
||||
<eld:description>Binds the TestBean to the TestObjectRoot</eld:description>
|
||||
</eld:classBindingHandler>
|
||||
<eld:classBindingHandler id="JComponent-JComponent" parentClass="javax.swing.JComponent" childClass="javax.swing.JComponent" method="addComponent">
|
||||
<eld:description>Binds j components.</eld:description>
|
||||
</eld:classBindingHandler>
|
||||
<eld:classBindingHandler id="JFrame-JPanel" parentClass="javax.swing.JFrame" childClass="javax.swing.JPanel" method="add">
|
||||
<eld:description>Binds panel to frame components as unit check.</eld:description>
|
||||
</eld:classBindingHandler>
|
||||
|
||||
<eld:elementInterface id="Component" interfaceClass="java.awt.Component">
|
||||
<eld:description>Configs the Component based objects.</eld:description>
|
||||
|
@ -132,7 +138,9 @@
|
|||
-->
|
||||
</eld:element>
|
||||
|
||||
<eld:element tag="JFrame" objectClass="javax.swing.JFrame"/>
|
||||
<eld:element tag="JFrame" objectClass="javax.swing.JFrame">
|
||||
<eld:elementParent tag="root" uri="http://test.x4o.org/xml/ns/test-root"/>
|
||||
</eld:element>
|
||||
<eld:element tag="JFrameContentPane" elementClass="org.x4o.xml.test.element.ContentPaneElement"/>
|
||||
<eld:element tag="JLabel" objectClass="javax.swing.JLabel"/>
|
||||
<eld:element tag="JPanel" objectClass="javax.swing.JPanel"/>
|
||||
|
|
|
@ -298,7 +298,6 @@ public class EldDocHtmlWriter {
|
|||
if (node.indent>20) {
|
||||
return result; // hard fail limit
|
||||
}
|
||||
|
||||
for (ElementLanguageModule mod:node.context.getElementLanguageModules()) {
|
||||
for (ElementNamespaceContext ns:mod.getElementNamespaceContexts()) {
|
||||
for (ElementClass ec:ns.getElementClasses()) {
|
||||
|
@ -313,7 +312,25 @@ public class EldDocHtmlWriter {
|
|||
n.indent=node.indent+1;
|
||||
n.parent=node;
|
||||
} else {
|
||||
if (node.elementClass.getObjectClass()==null | ec.getObjectClass()==null) {
|
||||
if (ec.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
// Check interfaces of child , and see if parent tag is there.
|
||||
for (ElementInterface ei:node.context.findElementInterfaces(ec.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(node.namespace.getUri());
|
||||
if (eiTags!=null && eiTags.contains(node.elementClass.getTag())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
n.namespace=ns;
|
||||
n.elementClass=ec;
|
||||
n.indent=node.indent+1;
|
||||
n.parent=node;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (node.elementClass.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
List<ElementBindingHandler> binds = node.context.findElementBindingHandlers(node.elementClass.getObjectClass(), ec.getObjectClass());
|
||||
|
@ -372,7 +389,25 @@ public class EldDocHtmlWriter {
|
|||
}
|
||||
}
|
||||
for (ElementClass ec:ns.getElementClasses()) {
|
||||
if (node.elementClass.getObjectClass()==null | ec.getObjectClass()==null) {
|
||||
if (ec.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
// Check interfaces of child , and see if parent tag is there.
|
||||
for (ElementInterface ei:node.context.findElementInterfaces(ec.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(node.namespace.getUri());
|
||||
if (eiTags!=null && eiTags.contains(node.elementClass.getTag())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
n.namespace=ns;
|
||||
n.elementClass=ec;
|
||||
n.indent=node.indent+1;
|
||||
n.parent=node;
|
||||
result.add(n);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (node.elementClass.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
List<ElementBindingHandler> binds = node.context.findElementBindingHandlers(ec.getObjectClass(),node.elementClass.getObjectClass());
|
||||
|
|
Loading…
Reference in a new issue