You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/02/10 12:33:38 UTC
[5/5] isis git commit: ISIS-993: can now download normalized,
complete or minimal layouts.
ISIS-993: can now download normalized, complete or minimal layouts.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/78943221
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/78943221
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/78943221
Branch: refs/heads/ISIS-993
Commit: 78943221cc6eccc0afed292910bb84a62b8a37bf
Parents: ecf6d17
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Feb 10 11:33:06 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Feb 10 11:33:06 2016 +0000
----------------------------------------------------------------------
.../isis/applib/layout/bootstrap3/BS3Col.java | 3 ++-
.../isis/applib/layout/bootstrap3/BS3Grid.java | 9 ++++----
.../applib/layout/common/ActionLayoutData.java | 2 +-
.../layout/common/DomainObjectLayoutData.java | 8 +++----
.../common/DomainObjectLayoutDataOwner.java | 2 ++
.../isis/applib/layout/common/GridAbstract.java | 10 ++++----
.../applib/services/layout/GridService.java | 2 +-
.../layout/Object_downloadLayoutXml.java | 6 ++---
.../grid/GridNormalizerServiceAbstract.java | 24 ++++++++++++++++----
.../services/grid/GridServiceDefault.java | 12 ++++++++++
.../services/metamodel/MetadataMenu.java | 7 +++---
.../dom/simple/SimpleObject.layout.xml | 2 ++
12 files changed, 60 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Col.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Col.java b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Col.java
index 1a5bec7..d568f05 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Col.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Col.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.layout.common.ActionLayoutDataOwner;
import org.apache.isis.applib.layout.common.CollectionLayoutData;
import org.apache.isis.applib.layout.common.CollectionLayoutDataOwner;
import org.apache.isis.applib.layout.common.DomainObjectLayoutData;
+import org.apache.isis.applib.layout.common.DomainObjectLayoutDataOwner;
import org.apache.isis.applib.layout.common.FieldSet;
import org.apache.isis.applib.layout.common.FieldSetOwner;
@@ -66,7 +67,7 @@ import org.apache.isis.applib.layout.common.FieldSetOwner;
)
public class BS3Col extends BS3RowContent
implements ActionLayoutDataOwner, BS3TabGroupOwner, BS3RowOwner, FieldSetOwner, HasCssId,
- CollectionLayoutDataOwner {
+ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
index 5d0cb47..7ec9665 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
@@ -166,7 +166,8 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
protected void traverseRows(final BS3RowOwner rowOwner, final Grid.Visitor visitor) {
final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
- for (BS3Row bs3Row : rowOwner.getRows()) {
+ final List<BS3Row> rows = rowOwner.getRows();
+ for (BS3Row bs3Row : Lists.newArrayList(rows)) {
bs3Row.setOwner(this);
bs3Visitor.preVisit(bs3Row);
bs3Visitor.visit(bs3Row);
@@ -178,7 +179,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
private void traverseCols(final Grid.Visitor visitor, final BS3Row bs3Row) {
final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
final List<BS3RowContent> cols = bs3Row.getCols();
- for (BS3RowContent rowContent : cols) {
+ for (BS3RowContent rowContent : Lists.newArrayList(cols)) {
rowContent.setOwner(bs3Row);
if(rowContent instanceof BS3Col) {
final BS3Col bs3Col = (BS3Col) rowContent;
@@ -215,7 +216,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
final Grid.Visitor visitor) {
final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
final List<BS3TabGroup> tabGroups = bs3TabGroupOwner.getTabGroups();
- for (BS3TabGroup bs3TabGroup : tabGroups) {
+ for (BS3TabGroup bs3TabGroup : Lists.newArrayList(tabGroups)) {
bs3TabGroup.setOwner(bs3TabGroupOwner);
bs3Visitor.preVisit(bs3TabGroup);
bs3Visitor.visit(bs3TabGroup);
@@ -229,7 +230,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
final Grid.Visitor visitor) {
final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
final List<BS3Tab> tabs = bs3TabOwner.getTabs();
- for (BS3Tab tab : tabs) {
+ for (BS3Tab tab : Lists.newArrayList(tabs)) {
tab.setOwner(bs3TabOwner);
bs3Visitor.preVisit(tab);
bs3Visitor.visit(tab);
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
index 5097349..6bd4113 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
@@ -48,7 +48,7 @@ import org.apache.isis.applib.annotation.Where;
, "metadataError"
}
)
-public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwner>,HasCssClass, HasCssClassFa,
+public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwner>, HasCssClass, HasCssClassFa,
HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
index d15d27b..a0502e3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
@@ -43,7 +43,7 @@ import org.apache.isis.applib.annotation.BookmarkPolicy;
, "metadataError"
}
)
-public class DomainObjectLayoutData implements Serializable,
+public class DomainObjectLayoutData implements Serializable, Owned<DomainObjectLayoutDataOwner>,
HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
private static final long serialVersionUID = 1L;
@@ -185,7 +185,7 @@ public class DomainObjectLayoutData implements Serializable,
- private MemberRegionOwner owner;
+ private DomainObjectLayoutDataOwner owner;
/**
* Owner.
*
@@ -194,11 +194,11 @@ public class DomainObjectLayoutData implements Serializable,
* </p>
*/
@XmlTransient
- public MemberRegionOwner getOwner() {
+ public DomainObjectLayoutDataOwner getOwner() {
return owner;
}
- public void setOwner(final MemberRegionOwner owner) {
+ public void setOwner(final DomainObjectLayoutDataOwner owner) {
this.owner = owner;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutDataOwner.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutDataOwner.java
index 2b719e9..77e9e8c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutDataOwner.java
@@ -20,4 +20,6 @@ package org.apache.isis.applib.layout.common;
public interface DomainObjectLayoutDataOwner extends Owner {
+ DomainObjectLayoutData getDomainObject();
+ void setDomainObject(DomainObjectLayoutData domainObjectLayoutData);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/layout/common/GridAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/GridAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/GridAbstract.java
index d320dff..eac1588 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/GridAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/GridAbstract.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlTransient;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.isis.applib.annotation.Programmatic;
@@ -49,7 +50,6 @@ public abstract class GridAbstract implements Grid {
}
@Programmatic
- @XmlTransient
public void setDomainClass(final Class<?> domainClass) {
this.domainClass = domainClass;
}
@@ -80,7 +80,7 @@ public abstract class GridAbstract implements Grid {
if(actionLayoutDatas == null) {
return;
}
- for (final ActionLayoutData actionLayoutData : actionLayoutDatas) {
+ for (final ActionLayoutData actionLayoutData : Lists.newArrayList(actionLayoutDatas)) {
actionLayoutData.setOwner(actionLayoutDataOwner);
visitor.visit(actionLayoutData);
}
@@ -92,12 +92,12 @@ public abstract class GridAbstract implements Grid {
*/
protected void traverseFieldSets(final FieldSetOwner fieldSetOwner, final GridAbstract.Visitor visitor) {
final List<FieldSet> fieldSets = fieldSetOwner.getFieldSets();
- for (FieldSet fieldSet : fieldSets) {
+ for (FieldSet fieldSet : Lists.newArrayList(fieldSets)) {
fieldSet.setOwner(fieldSetOwner);
visitor.visit(fieldSet);
traverseActions(fieldSet, visitor);
final List<PropertyLayoutData> properties = fieldSet.getProperties();
- for (final PropertyLayoutData property : properties) {
+ for (final PropertyLayoutData property : Lists.newArrayList(properties)) {
property.setOwner(fieldSet);
visitor.visit(property);
traverseActions(property, visitor);
@@ -112,7 +112,7 @@ public abstract class GridAbstract implements Grid {
protected void traverseCollections(
final CollectionLayoutDataOwner owner, final GridAbstract.Visitor visitor) {
final List<CollectionLayoutData> collections = owner.getCollections();
- for (CollectionLayoutData collection : collections) {
+ for (CollectionLayoutData collection : Lists.newArrayList(collections)) {
collection.setOwner(owner);
visitor.visit(collection);
traverseActions(collection, visitor);
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
index fc33df4..8a671a1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
@@ -103,7 +103,7 @@ public interface GridService {
/**
* For all of the available {@link GridNormalizerService}s available, return only the first one for any that
* are for the same grid implementation.
- *
+ *
* <p>
* This allows default implementations (eg for bootstrap3) to be overridden while also allowing for the more
* general idea of multiple implementations.
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
index 10fee16..d3a5128 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_downloadLayoutXml.java
@@ -63,15 +63,15 @@ public class Object_downloadLayoutXml {
gridService.tnsAndSchemaLocation(grid)
));
- return new Clob(Util.withSuffix(fileName, "xml"), "text/xml", xml);
+ return new Clob(Util.withSuffix(fileName, style.name().toLowerCase() + ".xml"), "text/xml", xml);
}
public boolean hide$$() {
// can use either style to determine whether this action should be hidden
- return getGrid(GridService.Style.COMPLETE) == null;
+ return getGrid(GridService.Style.NORMALIZED) == null;
}
public String default0$$() {
- return Util.withSuffix(object.getClass().getSimpleName(), "layout.xml");
+ return Util.withSuffix(object.getClass().getSimpleName(), "layout");
}
public GridService.Style default1$$() {
return GridService.Style.NORMALIZED;
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
index 3c38356..279086c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
@@ -40,6 +40,7 @@ import org.apache.isis.applib.layout.common.ActionLayoutData;
import org.apache.isis.applib.layout.common.ActionLayoutDataOwner;
import org.apache.isis.applib.layout.common.CollectionLayoutData;
import org.apache.isis.applib.layout.common.DomainObjectLayoutData;
+import org.apache.isis.applib.layout.common.DomainObjectLayoutDataOwner;
import org.apache.isis.applib.layout.common.FieldSet;
import org.apache.isis.applib.layout.common.Grid;
import org.apache.isis.applib.layout.common.HasBookmarking;
@@ -180,6 +181,8 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
@Override
public void complete(final G grid, final Class<?> domainClass) {
normalize(grid, domainClass);
+ if(true) {
+
final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
grid.visit(new FCGrid.VisitorAdapter() {
@@ -233,6 +236,7 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
setPluralIfAny(domainObjectLayoutData, objectSpec);
}
});
+ }
}
private static boolean isDoOp(final Facet facet) {
@@ -348,9 +352,11 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
if(isDoOp(namedFacet)) {
final String named = namedFacet.value();
- final boolean escaped = namedFacet.escaped();
if(!Strings.isNullOrEmpty(named)){
hasNamed.setNamed(named);
+ }
+ final boolean escaped = namedFacet.escaped();
+ if(!escaped) {
hasNamed.setNamedEscaped(escaped);
}
}
@@ -438,12 +444,20 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
actionLayoutData.getOwner().getActions().remove(actionLayoutData);
}
- @Override public void visit(final CollectionLayoutData collectionLayoutData) {
- collectionLayoutData.getOwner().getCollections().remove(this);
+ @Override
+ public void visit(final CollectionLayoutData collectionLayoutData) {
+ collectionLayoutData.getOwner().getCollections().remove(collectionLayoutData);
}
- @Override public void visit(final PropertyLayoutData propertyLayoutData) {
- propertyLayoutData.getOwner().getProperties().remove(this);
+ @Override
+ public void visit(final PropertyLayoutData propertyLayoutData) {
+ propertyLayoutData.getOwner().getProperties().remove(propertyLayoutData);
+ }
+
+ @Override
+ public void visit(final DomainObjectLayoutData domainObjectLayoutData) {
+ final DomainObjectLayoutDataOwner owner = domainObjectLayoutData.getOwner();
+ owner.setDomainObject(new DomainObjectLayoutData());
}
});
}
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index 97588b9..f99b84d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -153,6 +153,10 @@ public class GridServiceDefault
@Programmatic
public Grid normalize(final Grid grid) {
+ if(grid == null) {
+ return null;
+ }
+
// if have .layout.json and then add a .layout.xml without restarting, then note that
// the changes won't be picked up. Normalizing would be required
// in order to trample over the .layout.json's original facets
@@ -175,6 +179,10 @@ public class GridServiceDefault
@Programmatic
public Grid complete(final Grid grid) {
+ if(grid == null) {
+ return null;
+ }
+
final Class<?> domainClass = grid.getDomainClass();
for (GridNormalizerService gridNormalizerService : gridNormalizerServices()) {
gridNormalizerService.complete(grid, domainClass);
@@ -187,6 +195,10 @@ public class GridServiceDefault
@Programmatic
public Grid minimal(final Grid grid) {
+ if(grid == null) {
+ return null;
+ }
+
final Class<?> domainClass = grid.getDomainClass();
for (GridNormalizerService gridNormalizerService : gridNormalizerServices()) {
gridNormalizerService.minimal(grid, domainClass);
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetadataMenu.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetadataMenu.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetadataMenu.java
index 76a436e..73a3fab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetadataMenu.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetadataMenu.java
@@ -91,7 +91,7 @@ public class MetadataMenu implements SpecificationLoaderSpiAware {
cssClassFa = "fa-download"
)
@MemberOrder(sequence="500.400.1")
- public Blob downloadLayouts() {
+ public Blob downloadLayouts(final GridService.Style style) {
final Collection<ObjectSpecification> allSpecs = specificationLoader.allSpecifications();
final Collection<ObjectSpecification> domainObjectSpecs = Collections2
.filter(allSpecs, new Predicate<ObjectSpecification>(){
@@ -108,7 +108,7 @@ public class MetadataMenu implements SpecificationLoaderSpiAware {
final OutputStreamWriter writer = new OutputStreamWriter(zos);
for (final ObjectSpecification objectSpec : domainObjectSpecs) {
final Class<?> domainClass = objectSpec.getCorrespondingClass();
- final Grid grid = gridService.toGrid(domainClass, GridService.Style.NORMALIZED);
+ final Grid grid = gridService.toGrid(domainClass, style);
if(grid != null) {
zos.putNextEntry(new ZipEntry(zipEntryNameFor(objectSpec)));
String xml = jaxbService.toXml(grid);
@@ -118,7 +118,8 @@ public class MetadataMenu implements SpecificationLoaderSpiAware {
}
}
writer.close();
- return new Blob("layouts.zip", mimeTypeApplicationZip, baos.toByteArray());
+ final String fileName = "layouts." + style.name().toLowerCase() + ".zip";
+ return new Blob(fileName, mimeTypeApplicationZip, baos.toByteArray());
} catch (final IOException ex) {
throw new FatalException("Unable to create zip of layouts", ex);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/78943221/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
index b076822..9652100 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bs3:grid xsi:schemaLocation="http://isis.apache.org/schema/applib/layout/common http://isis.apache.org/schema/applib/layout/common/common.xsd http://isis.apache.org/schema/applib/layout/bootstrap3 http://isis.apache.org/schema/applib/layout/bootstrap3/bootstrap3.xsd" xmlns:c="http://isis.apache.org/schema/applib/layout/common" xmlns:bs3="http://isis.apache.org/schema/applib/layout/bootstrap3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
<!--
<bs3:row>
<bs3:col span="8" unreferencedActions="false">
@@ -34,6 +35,7 @@
</bs3:col>
</bs3:row>
-->
+
<bs3:row>
<bs3:col span="12" unreferencedActions="false">
<c:domainObject/>