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/01/31 11:57:32 UTC
[16/18] isis git commit: ISIS-993: bootstrap3 schema now properly
defined and serializing ok. Also juggling around with the common (nee
members)
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/provider/PageNormalizerServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/provider/PageNormalizerServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/provider/PageNormalizerServiceDefault.java
index 789821b..918faa2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/provider/PageNormalizerServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/provider/PageNormalizerServiceDefault.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.layout.bootstrap3.BS3Page;
import org.apache.isis.applib.layout.fixedcols.FCPage;
-import org.apache.isis.applib.layout.members.v1.Page;
+import org.apache.isis.applib.layout.common.Page;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
@@ -42,11 +42,11 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
)
public class PageNormalizerServiceDefault implements PageNormalizerService, SpecificationLoaderAware {
- public static final String MEMBERS_TNS = "http://isis.apache.org/schema/applib/layout/members/v1";
- public static final String MEMBERS_SCHEMA_LOCATION = "http://isis.apache.org/schema/applib/layout/members/v1/members.xsd";
+ private static final Logger LOG = LoggerFactory.getLogger(PageNormalizerServiceDefault.class);
+ public static final String COMMON_TNS = "http://isis.apache.org/schema/applib/layout/common";
+ public static final String COMMON_SCHEMA_LOCATION = "http://isis.apache.org/schema/applib/layout/common/common.xsd";
- private static final Logger LOG = LoggerFactory.getLogger(PageNormalizerServiceDefault.class);
private SpecificationLoader specificationLookup;
private PageNormalizerFC pageNormalizerFC;
@@ -86,8 +86,8 @@ public class PageNormalizerServiceDefault implements PageNormalizerService, Spec
@Override
public String schemaLocationsFor(final Page page) {
final List<String> parts = Lists.newArrayList();
- parts.add(MEMBERS_TNS);
- parts.add(MEMBERS_SCHEMA_LOCATION);
+ parts.add(COMMON_TNS);
+ parts.add(COMMON_SCHEMA_LOCATION);
if(page instanceof FCPage) {
parts.add(PageNormalizerFC.TNS);
parts.add(PageNormalizerFC.SCHEMA_LOCATION);
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/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 6f307f7..519867b 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
@@ -42,7 +42,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.layout.members.v1.Page;
+import org.apache.isis.applib.layout.common.Page;
import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.layout.PageService;
import org.apache.isis.applib.value.Blob;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/layoutxml/PageFacetDefaultTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/layoutxml/PageFacetDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/layoutxml/PageFacetDefaultTest.java
index ca65e96..2ca8356 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/layoutxml/PageFacetDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/layoutxml/PageFacetDefaultTest.java
@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.junit.Test;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.common.FieldSet;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/bootstrap3/BS3PageTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/bootstrap3/BS3PageTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/bootstrap3/BS3PageTest.java
new file mode 100644
index 0000000..c5a81d6
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/bootstrap3/BS3PageTest.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.metamodel.layout.bootstrap3;
+
+import java.util.Map;
+
+import javax.xml.bind.Marshaller;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.isis.applib.layout.bootstrap3.BS3Col;
+import org.apache.isis.applib.layout.bootstrap3.BS3Page;
+import org.apache.isis.applib.layout.bootstrap3.BS3Row;
+import org.apache.isis.applib.layout.bootstrap3.BS3Tab;
+import org.apache.isis.applib.layout.bootstrap3.BS3TabGroup;
+import org.apache.isis.applib.layout.common.ActionLayoutData;
+import org.apache.isis.applib.layout.common.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.DomainObjectLayoutData;
+import org.apache.isis.applib.layout.common.FieldSet;
+import org.apache.isis.applib.layout.common.PropertyLayoutData;
+import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.core.metamodel.services.layout.provider.PageNormalizerServiceDefault;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class BS3PageTest {
+
+ private JaxbService jaxbService;
+
+ @Before
+ public void setUp() throws Exception {
+ jaxbService = new JaxbService.Simple();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+
+ }
+
+ @Test
+ public void xxx() throws Exception {
+
+ final BS3Page bs3Page = new BS3Page();
+
+ // header
+ final BS3Row headerRow = bs3Page.getRows().get(0);
+ final BS3Col headerCol = (BS3Col) headerRow.getCols().get(0);
+ headerCol.setSpan(12);
+
+ final DomainObjectLayoutData objectLayoutData = new DomainObjectLayoutData();
+ headerCol.setDomainObject(objectLayoutData);
+
+ final ActionLayoutData deleteActionLayoutData = new ActionLayoutData();
+ deleteActionLayoutData.setId("delete");
+ headerCol.setActions(Lists.<ActionLayoutData>newArrayList());
+ headerCol.getActions().add(deleteActionLayoutData);
+
+ // content
+ final BS3Row contentRow = new BS3Row();
+ bs3Page.getRows().add(contentRow);
+
+ final BS3Col contentCol = (BS3Col) contentRow.getCols().get(0);
+ contentCol.setSpan(12);
+
+ // a tabgroup containing a 'Common' tab
+ final BS3TabGroup tabGroup = new BS3TabGroup();
+ contentCol.getTabGroups().add(tabGroup);
+ BS3Tab bs3Tab = tabGroup.getTabs().get(0);
+ bs3Tab.setName("Common");
+
+ // with a left col...
+ final BS3Row tabRow = bs3Tab.getRows().get(0);
+ final BS3Col tabLeftCol = (BS3Col) tabRow.getCols().get(0);
+ tabLeftCol.setSpan(6);
+
+ // containing a fieldset
+ final FieldSet leftPropGroup = new FieldSet("General");
+ tabLeftCol.setFieldSets(Lists.<FieldSet>newArrayList());
+ tabLeftCol.getFieldSets().add(leftPropGroup);
+ leftPropGroup.setName("General");
+
+ // with a single property
+ final PropertyLayoutData namePropertyLayoutData = leftPropGroup.getProperties().get(0);
+ namePropertyLayoutData.setNamed("name");
+
+ // and its associated action
+ final ActionLayoutData updateNameActionLayoutData = new ActionLayoutData();
+ updateNameActionLayoutData.setId("updateName");
+ namePropertyLayoutData.setActions(Lists.<ActionLayoutData>newArrayList());
+ namePropertyLayoutData.getActions().add(updateNameActionLayoutData);
+
+ // and the tab also has a right col...
+ final BS3Col tabRightCol = (BS3Col) tabRow.getCols().get(0);
+ tabRightCol.setSpan(6);
+
+ // containing a collection
+ final CollectionLayoutData similarToColl = new CollectionLayoutData();
+ tabRightCol.setCollections(Lists.<CollectionLayoutData>newArrayList());
+ tabRightCol.getCollections().add(similarToColl);
+ similarToColl.setId("similarTo");
+
+
+ final String schemaLocations = new PageNormalizerServiceDefault().schemaLocationsFor(bs3Page);
+ String xml = jaxbService.toXml(bs3Page,
+ ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
+ System.out.println(xml);
+
+ BS3Page bs3Pageroundtripped = jaxbService.fromXml(BS3Page.class, xml);
+ String xmlRoundtripped = jaxbService.toXml(bs3Pageroundtripped,
+ ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
+ assertThat(xml, is(equalTo(xmlRoundtripped)));
+
+
+ System.out.println("==========");
+
+ dumpXsd(bs3Page);
+ }
+
+ protected void dumpXsd(final BS3Page bs3Page) {
+ Map<String, String> schemas = jaxbService.toXsd(bs3Page, JaxbService.IsisSchemas.INCLUDE);
+ for (Map.Entry<String, String> entry : schemas.entrySet()) {
+ System.out.println(entry.getKey() + ":");
+ System.out.println(entry.getValue());
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/fixedcols/FCPageTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/fixedcols/FCPageTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/fixedcols/FCPageTest.java
new file mode 100644
index 0000000..9bce74b
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layout/fixedcols/FCPageTest.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.metamodel.layout.fixedcols;
+
+import java.util.Map;
+
+import javax.xml.bind.Marshaller;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.isis.applib.layout.fixedcols.FCColumn;
+import org.apache.isis.applib.layout.fixedcols.FCPage;
+import org.apache.isis.applib.layout.fixedcols.FCTab;
+import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
+import org.apache.isis.applib.layout.common.ActionLayoutData;
+import org.apache.isis.applib.layout.common.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.FieldSet;
+import org.apache.isis.applib.layout.common.PropertyLayoutData;
+import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.core.metamodel.services.layout.provider.PageNormalizerServiceDefault;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class FCPageTest {
+
+ private JaxbService jaxbService;
+
+ @Before
+ public void setUp() throws Exception {
+ jaxbService = new JaxbService.Simple();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+
+ }
+
+ @Test
+ public void xxx() throws Exception {
+
+ final FCPage fcPage = new FCPage();
+
+ fcPage.setTabGroups(Lists.<FCTabGroup>newArrayList());
+ fcPage.getTabGroups().add(new FCTabGroup());
+ FCTabGroup tabGroup = fcPage.getTabGroups().get(0);
+ FCTab FCTab = tabGroup.getTabs().get(0);
+ FCTab.setName("Common");
+ FCColumn left = FCTab.getLeft();
+
+ FieldSet leftPropGroup = new FieldSet();
+ left.setFieldSets(Lists.<FieldSet>newArrayList());
+ left.getFieldSets().add(leftPropGroup);
+ leftPropGroup.setName("General");
+
+ CollectionLayoutData similarToColl = new CollectionLayoutData();
+ left.setCollections(Lists.<CollectionLayoutData>newArrayList());
+ left.getCollections().add(similarToColl);
+ similarToColl.setId("similarTo");
+
+ left.getFieldSets().add(new FieldSet("General"));
+ PropertyLayoutData namePropertyLayoutData = new PropertyLayoutData("name");
+ left.getFieldSets().get(0).getProperties().add(namePropertyLayoutData);
+
+ ActionLayoutData updateNameActionLayoutData = new ActionLayoutData();
+ updateNameActionLayoutData.setId("updateName");
+ namePropertyLayoutData.setActions(Lists.<ActionLayoutData>newArrayList());
+ namePropertyLayoutData.getActions().add(updateNameActionLayoutData);
+
+ ActionLayoutData deleteActionLayoutData = new ActionLayoutData();
+ deleteActionLayoutData.setId("delete");
+ fcPage.setActions(Lists.<ActionLayoutData>newArrayList());
+ fcPage.getActions().add(deleteActionLayoutData);
+
+ final String schemaLocations = new PageNormalizerServiceDefault().schemaLocationsFor(fcPage);
+ String xml = jaxbService.toXml(fcPage,
+ ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
+ System.out.println(xml);
+
+ FCPage fcPageRoundtripped = jaxbService.fromXml(FCPage.class, xml);
+ String xmlRoundtripped = jaxbService.toXml(fcPageRoundtripped,
+ ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
+ assertThat(xml, is(equalTo(xmlRoundtripped)));
+
+
+ System.out.println("==========");
+
+ dumpXsd(fcPage);
+ }
+
+ protected void dumpXsd(final FCPage fcPage) {
+ Map<String, String> schemas = jaxbService.toXsd(fcPage, JaxbService.IsisSchemas.INCLUDE);
+ for (Map.Entry<String, String> entry : schemas.entrySet()) {
+ System.out.println(entry.getKey() + ":");
+ System.out.println(entry.getValue());
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layoutxml/v1_0/FCPageTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layoutxml/v1_0/FCPageTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layoutxml/v1_0/FCPageTest.java
deleted file mode 100644
index 29bd0c4..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/layoutxml/v1_0/FCPageTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.metamodel.layoutxml.v1_0;
-
-import java.util.Map;
-
-import javax.xml.bind.Marshaller;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.isis.applib.layout.members.v1.ActionLayoutData;
-import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
-import org.apache.isis.applib.layout.fixedcols.FCColumn;
-import org.apache.isis.applib.layout.fixedcols.FCPage;
-import org.apache.isis.applib.layout.members.v1.PropertyLayoutData;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
-import org.apache.isis.applib.layout.fixedcols.FCTab;
-import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
-import org.apache.isis.applib.services.jaxb.JaxbService;
-import org.apache.isis.core.metamodel.services.layout.provider.PageNormalizerServiceDefault;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class FCPageTest {
-
- private JaxbService jaxbService;
-
- @Before
- public void setUp() throws Exception {
- jaxbService = new JaxbService.Simple();
- }
-
- @After
- public void tearDown() throws Exception {
-
- }
-
- @Test
- public void xxx() throws Exception {
-
- final FCPage fcPage = new FCPage();
-
- fcPage.setTabGroups(Lists.<FCTabGroup>newArrayList());
- fcPage.getTabGroups().add(new FCTabGroup());
- FCTabGroup tabGroup = fcPage.getTabGroups().get(0);
- FCTab FCTab = tabGroup.getTabs().get(0);
- FCTab.setName("Common");
- FCColumn left = FCTab.getLeft();
-
- FieldSet leftPropGroup = new FieldSet();
- left.setFieldSets(Lists.<FieldSet>newArrayList());
- left.getFieldSets().add(leftPropGroup);
- leftPropGroup.setName("General");
-
- CollectionLayoutData similarToColl = new CollectionLayoutData();
- left.setCollections(Lists.<CollectionLayoutData>newArrayList());
- left.getCollections().add(similarToColl);
- similarToColl.setId("similarTo");
-
- left.getFieldSets().add(new FieldSet("General"));
- PropertyLayoutData namePropertyLayoutData = new PropertyLayoutData("name");
- left.getFieldSets().get(0).getProperties().add(namePropertyLayoutData);
-
- ActionLayoutData updateNameActionLayoutData = new ActionLayoutData();
- updateNameActionLayoutData.setId("updateName");
- namePropertyLayoutData.setActions(Lists.<ActionLayoutData>newArrayList());
- namePropertyLayoutData.getActions().add(updateNameActionLayoutData);
-
- ActionLayoutData deleteActionLayoutData = new ActionLayoutData();
- deleteActionLayoutData.setId("delete");
- fcPage.setActions(Lists.<ActionLayoutData>newArrayList());
- fcPage.getActions().add(deleteActionLayoutData);
-
- final String schemaLocations = new PageNormalizerServiceDefault().schemaLocationsFor(fcPage);
- String xml = jaxbService.toXml(fcPage,
- ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
- System.out.println(xml);
-
- FCPage FCPageRoundtripped = jaxbService.fromXml(FCPage.class, xml);
- String xmlRoundtripped = jaxbService.toXml(FCPageRoundtripped,
- ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
- assertThat(xml, is(equalTo(xmlRoundtripped)));
-
-
- System.out.println("==========");
-
- dumpXsd(fcPage);
- }
-
- protected void dumpXsd(final FCPage FCPage) {
- Map<String, String> schemas = jaxbService.toXsd(FCPage, JaxbService.IsisSchemas.INCLUDE);
- for (Map.Entry<String, String> entry : schemas.entrySet()) {
- System.out.println(entry.getKey() + ":");
- System.out.println(entry.getValue());
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index 6f39c53..d27f624 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -31,7 +31,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.CollectionLayoutData;
import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.commons.lang.ClassUtil;
import org.apache.isis.core.commons.lang.Closure;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index d54f13b..debcd80 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -30,10 +30,10 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.CollectionLayoutData;
import org.apache.isis.applib.layout.fixedcols.FCColumn;
import org.apache.isis.applib.layout.fixedcols.FCColumn.Hint;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.common.FieldSet;
import org.apache.isis.applib.layout.fixedcols.FCTabGroup;
import org.apache.isis.applib.layout.fixedcols.FCTab;
import org.apache.isis.applib.services.memento.MementoService.Memento;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
index 0430f42..c187f2a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityPanelFactory.java
@@ -23,7 +23,7 @@ import org.apache.wicket.Component;
import org.apache.wicket.model.IModel;
import org.apache.isis.applib.layout.fixedcols.FCPage;
-import org.apache.isis.applib.layout.members.v1.Page;
+import org.apache.isis.applib.layout.common.Page;
import org.apache.isis.core.metamodel.facets.object.layoutmetadata.PageFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
index 6e390ac..f846e26 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/PropUtil.java
@@ -27,7 +27,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.applib.layout.fixedcols.FCColumn;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
+import org.apache.isis.applib.layout.common.FieldSet;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index d7f8240..5bd57d0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -31,7 +31,7 @@ import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
-import org.apache.isis.applib.layout.members.v1.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.CollectionLayoutData;
import org.apache.isis.applib.layout.fixedcols.FCColumn;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
index 4cda729..66bc4c6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/column/EntityColumn.java
@@ -32,8 +32,8 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.isis.applib.layout.fixedcols.FCColumn;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
-import org.apache.isis.applib.layout.members.v1.PropertyLayoutData;
+import org.apache.isis.applib.layout.common.FieldSet;
+import org.apache.isis.applib.layout.common.PropertyLayoutData;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
index e595806..6a13547 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/propgroup/PropertyGroup.java
@@ -27,8 +27,8 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.layout.members.v1.FieldSet;
-import org.apache.isis.applib.layout.members.v1.PropertyLayoutData;
+import org.apache.isis.applib.layout.common.FieldSet;
+import org.apache.isis.applib.layout.common.PropertyLayoutData;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
index dd192d1..235b356 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
@@ -749,3 +749,7 @@ tr.headers th form input {
.tabGroups > .row {
padding-bottom: 10px;
}
+
+.entityPage .middleColumn .tabbable {
+ padding-bottom: 10px;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 563434a..45c42d7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -29,7 +29,7 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.Strings;
-import org.apache.isis.applib.layout.members.v1.Page;
+import org.apache.isis.applib.layout.common.Page;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout-BS3.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout-BS3.xml b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout-BS3.xml
new file mode 100644
index 0000000..7bc7d20
--- /dev/null
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.layout-BS3.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<bs3:page 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:common="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="12">
+ <common:domainObject/>
+ <common:action id="delete"/>
+ </bs3:col>
+ </bs3:row>
+
+ <bs3:row>
+ <bs3:col span="12">
+ <bs3:tabGroup>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="7">
+ <common:fieldSet name="General">
+ <common:action id="downloadJdoMetadata" position="PANEL"/>
+ <common:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
+ <common:property id="name" labelPosition="TOP">
+ <common:action id="updateName">
+ <common:describedAs>This allows the name to be updated</common:describedAs>
+ </common:action>
+ </common:property>
+ </common:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ <bs3:tabGroup>
+ <bs3:tab name="SimilarTo">
+ <bs3:row>
+ <bs3:col span="12">
+ <common:collection id="similarTo" defaultView="table"/>
+ <common:collection id="others" defaultView="hide"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ </bs3:col>
+ </bs3:row>
+</bs3:page>
http://git-wip-us.apache.org/repos/asf/isis/blob/65f7d320/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 4284f73..9e6d5ac 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,38 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<page xsi:schemaLocation="http://isis.apache.org/schema/applib/layout/members/v1 http://isis.apache.org/schema/applib/layout/members/v1/members.xsd http://isis.apache.org/schema/applib/layout/fixedcols http://isis.apache.org/schema/applib/layout/fixedcols/fixedcols.xsd" xmlns="http://isis.apache.org/schema/applib/layout/fixedcols" xmlns:ns2="http://isis.apache.org/schema/applib/layout/members/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<page 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/fixedcols http://isis.apache.org/schema/applib/layout/fixedcols/fixedcols.xsd" xmlns="http://isis.apache.org/schema/applib/layout/fixedcols" xmlns:c="http://isis.apache.org/schema/applib/layout/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <action id="delete"/>
<left span="0">
</left>
<tabGroup>
- <tab name="Metadata">
- <left span="12">
- <fieldSet name="Foo">
- <ns2:property id="versionSequence"/>
- </fieldSet>
+ <tab name="Properties">
+ <left span="8">
+ <c:fieldSet name="General">
+ <c:action id="delete"/>
+ <c:property id="name" labelPosition="TOP">
+ <c:action id="updateName">
+ <c:describedAs>This allows the name to be updated</c:describedAs>
+ </c:action>
+ </c:property>
+ </c:fieldSet>
</left>
+ <middle span="4">
+ <c:fieldSet name="Foo">
+ <c:action id="downloadJdoMetadata" position="PANEL"/>
+ <c:action id="downloadLayoutXml" position="PANEL"/>
+ <c:property id="versionSequence"/>
+ </c:fieldSet>
+ </middle>
</tab>
- <tab name="General">
- <left span="12">
- <fieldSet name="General">
- <ns2:action id="downloadJdoMetadata" position="PANEL"/>
- <ns2:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <ns2:property id="name" labelPosition="TOP">
- <ns2:action id="updateName">
- <ns2:describedAs>This allows the name to be updated</ns2:describedAs>
- </ns2:action>
- </ns2:property>
- </fieldSet>
- </left>
- </tab>
- </tabGroup>
- <tabGroup>
- <tab name="SimilarTo">
- <left span="12">
- <collection id="similarTo" defaultView="table"/>
- <collection id="others" defaultView="hide"/>
+ <tab name="Collections">
+ <left span="6">
+ <c:collection id="similarTo" defaultView="table"/>
</left>
+ <right span="6">
+ <c:collection id="others" defaultView="table"/>
+ </right>
</tab>
</tabGroup>
</page>
\ No newline at end of file