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/24 00:40:06 UTC
[03/13] isis git commit: isis-993: deleting the original layout grids
(including the first-cut fixed column stuff that preceded the bootstrap3
grids).
isis-993: deleting the original layout grids (including the first-cut fixed column stuff that preceded the bootstrap3 grids).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/69ed9c5e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/69ed9c5e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/69ed9c5e
Branch: refs/heads/ISIS-993
Commit: 69ed9c5e46ad4edad63c1c46498c03bdaa00192d
Parents: 7488f51
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Feb 17 16:37:36 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Feb 17 16:37:36 2016 +0000
----------------------------------------------------------------------
.../grid/GridNormalizerServiceAbstract.java | 24 +-
.../grid/fixedcols/GridNormalizerServiceFC.java | 172 -----
.../grid/fixedcols/applib/FCColumn.java | 135 ----
.../grid/fixedcols/applib/FCColumnOwner.java | 25 -
.../services/grid/fixedcols/applib/FCGrid.java | 204 ------
.../services/grid/fixedcols/applib/FCTab.java | 159 -----
.../grid/fixedcols/applib/FCTabGroup.java | 94 ---
.../grid/fixedcols/applib/FCTabGroupOwner.java | 25 -
.../services/grid/fixedcols/applib/Hint.java | 12 -
.../grid/fixedcols/applib/package-info.java | 44 --
.../metamodel/services/grid/FCGridTest.java | 128 ----
.../ComponentFactoryRegistrarDefault.java | 4 -
.../links/EntityLinksSelectorPanelFactory.java | 5 -
.../layout/fixedcols/FCGridPanel.html | 34 -
.../layout/fixedcols/FCGridPanel.java | 114 ---
.../components/layout/fixedcols/PropUtil.java | 92 ---
.../collections/EntityCollectionsPanel.html | 32 -
.../collections/EntityCollectionsPanel.java | 151 ----
.../EntityCollectionsPanelFactory.java | 49 --
.../layout/fixedcols/columns/EntityColumn.html | 31 -
.../layout/fixedcols/columns/EntityColumn.java | 191 -----
.../propsandcolls/EntityPropsAndCollsForm.java | 710 -------------------
.../EntityPropsAndCollsForm.properties | 22 -
.../propsandcolls/EntityPropsAndCollsPanel.html | 54 --
.../propsandcolls/EntityPropsAndCollsPanel.java | 67 --
.../EntityPropsAndCollsPanelFactory.java | 53 --
.../tabgrouplist/TabGroupListPanel.html | 28 -
.../tabgrouplist/TabGroupListPanel.java | 67 --
.../layout/fixedcols/tabs/TabGroupPanel.java | 105 ---
.../layout/fixedcols/tabs/TabPanel.html | 31 -
.../layout/fixedcols/tabs/TabPanel.java | 24 -
31 files changed, 3 insertions(+), 2883 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/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 d8b1742..dd7abc8 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
@@ -96,10 +96,6 @@ import org.apache.isis.core.metamodel.facets.properties.propertylayout.MultiLine
import org.apache.isis.core.metamodel.facets.properties.propertylayout.NamedFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.RenderedAdjustedFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.TypicalLengthFacetForPropertyXml;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumnOwner;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTab;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
@@ -185,7 +181,7 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
- grid.visit(new FCGrid.VisitorAdapter() {
+ grid.visit(new Grid.VisitorAdapter() {
@Override
public void visit(final ActionLayoutData actionLayoutData) {
final ObjectAction objectAction = objectSpec.getObjectAction(actionLayoutData.getId());
@@ -438,7 +434,7 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
@Override
public void minimal(final G grid, final Class<?> domainClass) {
normalize(grid, domainClass);
- grid.visit(new FCGrid.VisitorAdapter() {
+ grid.visit(new Grid.VisitorAdapter() {
@Override
public void visit(final ActionLayoutData actionLayoutData) {
actionLayoutData.getOwner().getActions().remove(actionLayoutData);
@@ -485,7 +481,7 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
final Map<String, ObjectAction> objectActionById) {
final Map<String, int[]> propertySequenceByGroup = Maps.newHashMap();
- fcGrid.visit(new FCGrid.VisitorAdapter() {
+ fcGrid.visit(new Grid.VisitorAdapter() {
private int collectionSequence = 1;
private int actionDomainObjectSequence = 1;
@@ -602,20 +598,6 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
final String sequence = "" + collectionSequence++;
FacetUtil.addOrReplaceFacet(
new MemberOrderFacetXml(groupName, sequence, translationService, oneToManyAssociation));
-
- // if there is only a single column and no other contents, then copy the collection Id onto the tab'
- final MemberRegionOwner memberRegionOwner = collectionLayoutData.getOwner();
- if(memberRegionOwner instanceof FCColumn) {
- final FCColumn FCColumn = (FCColumn) memberRegionOwner;
- final FCColumnOwner holder = FCColumn.getOwner();
- if(holder instanceof FCTab) {
- final FCTab FCTab = (FCTab) holder;
- if(FCTab.getContents().size() == 1 && Strings.isNullOrEmpty(FCTab.getName()) ) {
- final String collectionName = oneToManyAssociation.getName();
- FCTab.setName(collectionName);
- }
- }
- }
}
});
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/GridNormalizerServiceFC.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/GridNormalizerServiceFC.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/GridNormalizerServiceFC.java
deleted file mode 100644
index bf3b5a2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/GridNormalizerServiceFC.java
+++ /dev/null
@@ -1,172 +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.services.grid.fixedcols;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicReference;
-
-import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.layout.component.ActionLayoutData;
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.Grid;
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTab;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTabGroup;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
-import org.apache.isis.core.metamodel.services.grid.GridNormalizerServiceAbstract;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-@DomainService(
- nature = NatureOfService.DOMAIN
-)
-public class GridNormalizerServiceFC extends GridNormalizerServiceAbstract {
-
- public static final String TNS = "http://isis.apache.org/schema/applib/layout/fixedcols";
- public static final String SCHEMA_LOCATION = "http://isis.apache.org/schema/applib/layout/fixedcols/fixedcols.xsd";
-
- public GridNormalizerServiceFC() {
- super(FCGrid.class, TNS, SCHEMA_LOCATION);
- }
-
-
- /**
- * Ensures that all object members (properties, collections and actions) are in the metadata.
- *
- * <p>
- * If they are missing then they will be added to default tabs (created on the fly if need be).
- * </p>
- */
- @Override
- protected boolean validateAndDerive(
- final Grid grid,
- final Map oneToOneAssociationById,
- final Map oneToManyAssociationById,
- final Map objectActionById, final ObjectSpecification objectSpec) {
-
- final FCGrid fcGrid = (FCGrid) grid;
-
- final LinkedHashMap<String, PropertyLayoutData> propertyIds = fcGrid.getAllPropertiesById();
- final LinkedHashMap<String, CollectionLayoutData> collectionIds = fcGrid.getAllCollectionsById();
- final LinkedHashMap<String, ActionLayoutData> actionIds = fcGrid.getAllActionsById();
-
- final AtomicReference<FieldSet> defaultFieldSetRef = new AtomicReference<>();
- final AtomicReference<FCColumn> firstColumnRef = new AtomicReference<>();
- final AtomicReference<FCTabGroup> lastTabGroupRef = new AtomicReference<>();
-
- // capture the first column, and also
- // capture the first property group (if any) with the default name ('General')
- fcGrid.visit(new FCGrid.VisitorAdapter() {
- @Override
- public void visit(final FCColumn fcColumn) {
- firstColumnRef.compareAndSet(null, fcColumn);
- }
- @Override
- public void visit(final FieldSet fieldSet) {
- if(MemberGroupLayoutFacet.DEFAULT_GROUP.equals(fieldSet.getName())) {
- defaultFieldSetRef.compareAndSet(null, fieldSet);
- }
- }
- @Override
- public void visit(final FCTabGroup fcTabGroup) {
- lastTabGroupRef.set(fcTabGroup);
- }
- });
-
- // any missing properties will be added to the (first) 'General' property group found
- // if there is no default ('General') property group
- // then one will be added to the first Column of the first Tab.
- final Tuple<List<String>> propertyIdTuple = surplusAndMissing(propertyIds.keySet(), oneToOneAssociationById.keySet());
- final List<String> surplusPropertyIds = propertyIdTuple.first;
- final List<String> missingPropertyIds = propertyIdTuple.second;
-
- for (String surplusPropertyId : surplusPropertyIds) {
- propertyIds.get(surplusPropertyId).setMetadataError("No such property");
- }
-
- if(!missingPropertyIds.isEmpty()) {
- // ensure that there is a property group to use
- boolean wasSet = defaultFieldSetRef.compareAndSet(null, new FieldSet(MemberGroupLayoutFacet.DEFAULT_GROUP));
- final FieldSet defaultFieldSet = defaultFieldSetRef.get();
- if(wasSet) {
- firstColumnRef.get().getFieldSets().add(defaultFieldSet);
- }
- for (final String propertyId : missingPropertyIds) {
- defaultFieldSet.getProperties().add(new PropertyLayoutData(propertyId));
- }
- }
-
-
- // any missing collections will be added as tabs to the last TabGroup.
- // If there is only a single tab group then a new TabGroup will be added first
- final Tuple<List<String>> collectionIdTuple = surplusAndMissing(collectionIds.keySet(), oneToManyAssociationById.keySet());
- final List<String> surplusCollectionIds = collectionIdTuple.first;
- final List<String> missingCollectionIds = collectionIdTuple.second;
-
- for (String surplusCollectionId : surplusCollectionIds) {
- collectionIds.get(surplusCollectionId).setMetadataError("No such collection");
- }
-
- if(!missingCollectionIds.isEmpty()) {
- while(fcGrid.getTabGroups().size() < 2) {
- final FCTabGroup tabGroup = new FCTabGroup();
- fcGrid.getTabGroups().add(tabGroup);
- lastTabGroupRef.set(tabGroup);
- }
- final FCTabGroup lastTabGroup = lastTabGroupRef.get();
- for (final String collectionId : missingCollectionIds) {
- final FCTab FCTab = new FCTab();
- lastTabGroup.getTabs().add(FCTab);
- FCColumn left = new FCColumn(12);
- FCTab.setLeft(left);
- final CollectionLayoutData layoutMetadata = new CollectionLayoutData(collectionId);
- layoutMetadata.setDefaultView("table");
- left.getCollections().add(layoutMetadata);
- }
- }
-
- // any missing actions will be added as domain object actions (in the header)
- final Tuple<List<String>> actionIdTuple = surplusAndMissing(actionIds.keySet(), objectActionById.keySet());
- final List<String> surplusActionIds = actionIdTuple.first;
- final List<String> missingActionIds = actionIdTuple.second;
-
- for (String surplusActionId : surplusActionIds) {
- actionIds.get(surplusActionId).setMetadataError("No such action");
- }
-
- if(!missingActionIds.isEmpty()) {
- for (String actionId : missingActionIds) {
- List<ActionLayoutData> actions = fcGrid.getActions();
- if(actions == null) {
- actions = Lists.newArrayList();
- fcGrid.setActions(actions);
- }
- actions.add(new ActionLayoutData(actionId));
- }
- }
- return true;
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumn.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumn.java
deleted file mode 100644
index b2cab4b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumn.java
+++ /dev/null
@@ -1,135 +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.services.grid.fixedcols.applib;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.applib.layout.component.CollectionLayoutDataOwner;
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.FieldSetOwner;
-import org.apache.isis.applib.layout.component.Owned;
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-
-/**
- * The column contains a mixture of {@link FieldSet}s (of {@link PropertyLayoutData properties}) and also
- * {@link CollectionLayoutData collection}s.
- *
- * <p>
- * A column generally is used within a {@link FCTab}; there can be up to three such (left, middle and right). It is
- * also possible for their to be a column far-left on the top-level {@link FCGrid page}, and another far-right.
- * </p>
- *
- */
-@XmlType(
- propOrder = {
- "fieldSets"
- , "collections"
- }
-)
-public class FCColumn implements Serializable, FieldSetOwner, CollectionLayoutDataOwner, Owned<FCColumnOwner> {
-
- private static final long serialVersionUID = 1L;
-
- public FCColumn() {
- }
-
- public FCColumn(final int span) {
- setSpan(span);
- }
-
- private int span = 4;
-
- @XmlAttribute(required = true)
- public int getSpan() {
- return span;
- }
-
- public void setSpan(final int span) {
- this.span = span;
- }
-
-
-
- private List<FieldSet> fieldSets = Lists.newArrayList();
-
- // no wrapper
- @XmlElementRef(type = FieldSet.class, name = "fieldSet", required = false)
- public List<FieldSet> getFieldSets() {
- return fieldSets;
- }
-
- public void setFieldSets(final List<FieldSet> fieldSets) {
- this.fieldSets = fieldSets;
- }
-
-
- private List<CollectionLayoutData> collections = Lists.newArrayList();
-
- // no wrapper
- @XmlElementRef(type = CollectionLayoutData.class, name = "collection", required = false)
- public List<CollectionLayoutData> getCollections() {
- return collections;
- }
-
- public void setCollections(final List<CollectionLayoutData> collections) {
- this.collections = collections;
- }
-
-
- private FCColumnOwner owner;
- /**
- * Owner.
- *
- * <p>
- * Set programmatically by framework after reading in from XML.
- * </p>
- */
- @XmlTransient
- public FCColumnOwner getOwner() {
- return owner;
- }
-
- public void setOwner(final FCColumnOwner owner) {
- this.owner = owner;
- }
-
-
-
-
- private Hint hint;
-
- @XmlTransient
- public Hint getHint() {
- return hint;
- }
-
- public void setHint(final Hint hint) {
- this.hint = hint;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumnOwner.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumnOwner.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumnOwner.java
deleted file mode 100644
index e35621c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCColumnOwner.java
+++ /dev/null
@@ -1,25 +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.services.grid.fixedcols.applib;
-
-import org.apache.isis.applib.layout.component.Owner;
-
-public interface FCColumnOwner extends Owner {
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCGrid.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCGrid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCGrid.java
deleted file mode 100644
index b544fc2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCGrid.java
+++ /dev/null
@@ -1,204 +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.services.grid.fixedcols.applib;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.apache.isis.applib.layout.component.ActionLayoutData;
-import org.apache.isis.applib.layout.component.ActionLayoutDataOwner;
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.Grid;
-import org.apache.isis.applib.layout.component.GridAbstract;
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.applib.services.dto.Dto;
-
-/**
- * Top-level page, consisting of an optional {@link FCColumn column} on the far left and another (also optional) on the
- * far right, with the middle consisting of a number of {@link FCTabGroup tabgroup}s, stacked vertically.
- */
-@XmlRootElement(
- name = "grid"
-)
-@XmlType(
- name = "grid"
- , propOrder = {
- "actions"
- , "left"
- , "tabGroups"
- , "right"
- }
-)
-public class FCGrid extends GridAbstract implements Dto, ActionLayoutDataOwner, Serializable, FCColumnOwner, FCTabGroupOwner {
-
- private static final long serialVersionUID = 1L;
-
- private List<ActionLayoutData> actions;
-
- // no wrapper
- @XmlElementRef(type = ActionLayoutData.class, name="action", required = false)
- public List<ActionLayoutData> getActions() {
- return actions;
- }
-
- public void setActions(List<ActionLayoutData> actionLayoutDatas) {
- this.actions = actionLayoutDatas;
- }
-
-
-
- private FCColumn left;
-
- @XmlElement(required = false)
- public FCColumn getLeft() {
- return left;
- }
-
- public void setLeft(final FCColumn left) {
- this.left = left;
- left.setHint(Hint.LEFT);
- }
-
-
-
- private List<FCTabGroup> tabGroups;
-
- // no wrapper
- @XmlElement(name = "tabGroup", required = true)
- public List<FCTabGroup> getTabGroups() {
- return tabGroups;
- }
-
- public void setTabGroups(List<FCTabGroup> tabGroups) {
- this.tabGroups = tabGroups;
- }
-
-
-
- private FCColumn right;
-
- @XmlElement(required = false)
- public FCColumn getRight() {
- return right;
- }
-
- public void setRight(final FCColumn right) {
- this.right = right;
- right.setHint(Hint.RIGHT);
- }
-
-
-
- interface Visitor extends Grid.Visitor {
- void visit(final FCGrid fcPage);
- void visit(final FCTabGroup fcTabGroup);
- void visit(final FCTab fcTab);
- void visit(final FCColumn fcColumn);
- }
-
- public static class VisitorAdapter extends Grid.VisitorAdapter implements Visitor {
- @Override
- public void visit(final FCGrid fcPage) { }
- @Override
- public void visit(final FCTabGroup fcTabGroup) { }
- @Override
- public void visit(final FCTab fcTab) { }
- @Override
- public void visit(final FCColumn fcColumn) { }
- @Override
- public void visit(final PropertyLayoutData propertyLayoutData) {}
- @Override
- public void visit(final CollectionLayoutData collectionLayoutData) {}
- @Override
- public void visit(final ActionLayoutData actionLayoutData) { }
- }
-
-
- /**
- * Visits all elements of the graph. The {@link Visitor} implementation
- * can assume that all "owner" references are populated.
- */
- public void visit(final Grid.Visitor visitor) {
- FCGrid.Visitor fcVisitor = asFcVisitor(visitor);
- fcVisitor.visit(this);
- traverseActions(this, visitor);
- traverseColumn(getLeft(), this, visitor);
- final List<FCTabGroup> tabGroups = getTabGroups();
- for (final FCTabGroup fcTabGroup : tabGroups) {
- fcTabGroup.setOwner(this);
- fcVisitor.visit(fcTabGroup);
- final List<FCTab> tabs = fcTabGroup.getTabs();
- for (final FCTab fcTab : tabs) {
- fcTab.setOwner(fcTabGroup);
- fcVisitor.visit(fcTab);
- traverseColumn(fcTab.getLeft(), fcTab, visitor);
- traverseColumn(fcTab.getMiddle(), fcTab, visitor);
- traverseColumn(fcTab.getRight(), fcTab, visitor);
- }
- }
- traverseColumn(getRight(), this, visitor);
- }
-
- private void traverseColumn(
- final FCColumn fcColumn,
- final FCColumnOwner fcColumnOwner,
- final Grid.Visitor visitor) {
- if(fcColumn == null) {
- return;
- }
- FCGrid.Visitor fcVisitor = asFcVisitor(visitor);
- fcColumn.setOwner(fcColumnOwner);
- fcVisitor.visit(fcColumn);
- traverseFieldSets(fcColumn, visitor);
- traverseCollections(fcColumn, visitor);
- }
-
- private static Visitor asFcVisitor(final Grid.Visitor visitor) {
- return visitor instanceof Visitor? (Visitor) visitor : new VisitorAdapter() {
- @Override public void visit(final DomainObjectLayoutData domainObjectLayoutData) {
- visitor.visit(domainObjectLayoutData);
- }
-
- @Override public void visit(final ActionLayoutData actionLayoutData) {
- visitor.visit(actionLayoutData);
- }
-
- @Override public void visit(final PropertyLayoutData propertyLayoutData) {
- visitor.visit(propertyLayoutData);
- }
-
- @Override public void visit(final CollectionLayoutData collectionLayoutData) {
- visitor.visit(collectionLayoutData);
- }
-
- @Override public void visit(final FieldSet fieldSet) {
- visitor.visit(fieldSet);
- }
- };
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTab.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTab.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTab.java
deleted file mode 100644
index 49e4489..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTab.java
+++ /dev/null
@@ -1,159 +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.services.grid.fixedcols.applib;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.applib.layout.component.MemberRegion;
-import org.apache.isis.applib.layout.component.Owned;
-import org.apache.isis.applib.layout.component.FieldSet;
-
-@XmlType(
- name="tab"
- , propOrder = {
- "name"
- , "left"
- , "middle"
- , "right"
- }
-)
-public class FCTab implements FCColumnOwner, Serializable, Owned<FCTabGroup> {
-
- private static final long serialVersionUID = 1L;
-
- private String name;
-
- @XmlAttribute(required = true)
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
-
-
- private FCColumn left = new FCColumn();
-
- @XmlElement(required = true)
- public FCColumn getLeft() {
- return left;
- }
-
- public void setLeft(final FCColumn left) {
- this.left = left;
- left.setHint(Hint.LEFT);
- }
-
-
- private FCColumn middle;
-
- @XmlElement(required = false)
- public FCColumn getMiddle() {
- return middle;
- }
-
- public void setMiddle(final FCColumn middle) {
- this.middle = middle;
- middle.setHint(Hint.MIDDLE);
- }
-
-
- private FCColumn right;
-
- @XmlElement(required = false)
- public FCColumn getRight() {
- return right;
- }
-
- public void setRight(final FCColumn right) {
- this.right = right;
- right.setHint(Hint.RIGHT);
- }
-
-
-
- private FCTabGroup owner;
- /**
- * Owner.
- *
- * <p>
- * Set programmatically by framework after reading in from XML.
- * </p>
- */
- @XmlTransient
- public FCTabGroup getOwner() {
- return owner;
- }
-
- public void setOwner(final FCTabGroup owner) {
- this.owner = owner;
- }
-
- /**
- * Aggregates the contents of all collections on this tab.
- */
- @Programmatic
- public List<MemberRegion> getContents() {
- final List<MemberRegion> contents = Lists.newArrayList();
- appendContent(contents, getLeft());
- appendContent(contents, getMiddle());
- appendContent(contents, getRight());
- return contents;
- }
-
-
-
- private static void appendContent(final List<MemberRegion> contents, final FCColumn FCColumn) {
- if(FCColumn == null) {
- return;
- }
- final List<FieldSet> fieldSets = FCColumn.getFieldSets();
- if(fieldSets != null) {
- contents.addAll(fieldSets);
- }
- final List<CollectionLayoutData> collectionLayoutDatas = FCColumn.getCollections();
- if(collectionLayoutDatas != null) {
- contents.addAll(collectionLayoutDatas);
- }
- }
-
- public static class Predicates {
- public static Predicate<FCTab> notEmpty() {
- return new Predicate<FCTab>() {
- @Override
- public boolean apply(final FCTab FCTab) {
- return !FCTab.getContents().isEmpty();
- }
- };
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroup.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroup.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroup.java
deleted file mode 100644
index 771db47..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroup.java
+++ /dev/null
@@ -1,94 +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.services.grid.fixedcols.applib;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.layout.component.Owned;
-
-@XmlType(
- propOrder = {
- "tabs"
- }
-
-)
-public class FCTabGroup implements FCColumnOwner, Serializable, Owned<FCTabGroupOwner> {
-
- private static final long serialVersionUID = 1L;
-
- private List<FCTab> tabs = Lists.newArrayList();
-
- // no wrapper
- @XmlElement(name = "tab", required = false)
- public List<FCTab> getTabs() {
- return tabs;
- }
-
- public void setTabs(List<FCTab> tabs) {
- this.tabs = tabs;
- }
-
-
-
- private FCTabGroupOwner owner;
-
- /**
- * Owner.
- *
- * <p>
- * Set programmatically by framework after reading in from XML.
- * </p>
- */
- @XmlTransient
- public FCTabGroupOwner getOwner() {
- return owner;
- }
-
- public void setOwner(final FCTabGroupOwner owner) {
- this.owner = owner;
- }
-
-
-
-
-
-
- public static class Predicates {
- public static Predicate<FCTabGroup> notEmpty() {
- return new Predicate<FCTabGroup>() {
- @Override
- public boolean apply(final FCTabGroup tabGroup) {
- return FluentIterable
- .from(tabGroup.getTabs())
- .anyMatch(FCTab.Predicates.notEmpty());
- }
- };
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroupOwner.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroupOwner.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroupOwner.java
deleted file mode 100644
index 165a32b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/FCTabGroupOwner.java
+++ /dev/null
@@ -1,25 +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.services.grid.fixedcols.applib;
-
-import org.apache.isis.applib.layout.component.Owner;
-
-public interface FCTabGroupOwner extends Owner {
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
index a4b0555..8ac2c32 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
@@ -35,17 +35,5 @@ public enum Hint {
throw new IllegalStateException();
}
- public FCColumn from(final FCTab fcTab) {
- if (fcTab == null) {
- return null;
- }
- if (this == LEFT)
- return fcTab.getLeft();
- if (this == MIDDLE)
- return fcTab.getMiddle();
- if (this == RIGHT)
- return fcTab.getRight();
- throw new IllegalStateException();
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/package-info.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/package-info.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/package-info.java
deleted file mode 100644
index 3cdd1f1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/package-info.java
+++ /dev/null
@@ -1,44 +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.
- */
-
-/**
- * THIS STUFF ALL WORKS, BUT REMOVED FROM PUBLIC APPLIB BECAUSE IT LOOKS
- * LIKE THE BOOTSTRAP3 GRID WILL BE SUFFICIENT.
- *
- * The benefit of keeping this stuff around is that it reinforces where
- * separation of responsibilities are for grid components (tab etc)
- * vs common components (fieldset, action, property, collection, domainobject).
- *
- * --------------------
- *
- * The classes in this package define how to layout the properties, collections and actions of a domain object - the
- * building blocks - as defined in the <code>members.v1</code> package.
- *
- * <p>
- * The layout is reasonably flexible, being a half-way house between the annotation/JSON style layouts (pre 1.12.0)
- * vs the fully flexible layouts provided by the <code>bootstrap3</code> layouts. In particular, they allow
- * property fieldsets and collections to be grouped into tabs, with collections being laid out in any column.
- * However, tab groups only appear in the central area of the page, and may only have a maximum of three columns.
- * </p>
- */
-@javax.xml.bind.annotation.XmlSchema(
- namespace = "http://isis.apache.org/schema/applib/layout/fixedcols",
- elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
-)
-package org.apache.isis.core.metamodel.services.grid.fixedcols.applib;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/FCGridTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/FCGridTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/FCGridTest.java
deleted file mode 100644
index 6b67072..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/FCGridTest.java
+++ /dev/null
@@ -1,128 +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.services.grid;
-
-import java.util.Arrays;
-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.services.layout.GridNormalizerService;
-import org.apache.isis.applib.layout.component.ActionLayoutData;
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTab;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTabGroup;
-import org.apache.isis.applib.services.jaxb.JaxbService;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.GridNormalizerServiceFC;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class FCGridTest {
-
- private JaxbService jaxbService;
- private GridServiceDefault gridServiceDefault;
- private GridNormalizerServiceFC gridNormalizerServiceFC;
-
- @Before
- public void setUp() throws Exception {
- jaxbService = new JaxbService.Simple();
- gridServiceDefault = new GridServiceDefault();
- gridNormalizerServiceFC = new GridNormalizerServiceFC();
- gridServiceDefault.gridNormalizerServices = Arrays.<GridNormalizerService>asList(gridNormalizerServiceFC);
- }
-
- @After
- public void tearDown() throws Exception {
-
- }
-
- @Test
- public void xxx() throws Exception {
-
- final FCGrid fcPage = new FCGrid();
-
- fcPage.setTabGroups(Lists.<FCTabGroup>newArrayList());
- fcPage.getTabGroups().add(new FCTabGroup());
- FCTabGroup tabGroup = fcPage.getTabGroups().get(0);
- FCTab fcTab = new FCTab();
- tabGroup.getTabs().add(fcTab);
- 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 = gridServiceDefault.tnsAndSchemaLocation(fcPage);
- String xml = jaxbService.toXml(fcPage,
- ImmutableMap.<String,Object>of(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations));
- System.out.println(xml);
-
- FCGrid fcPageRoundtripped = jaxbService.fromXml(FCGrid.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 FCGrid 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/69ed9c5e/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
index 7120113..408a914 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
@@ -46,8 +46,6 @@ import org.apache.isis.viewer.wicket.ui.components.entity.selector.links.EntityL
import org.apache.isis.viewer.wicket.ui.components.footer.FooterPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.header.HeaderPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.layout.EntityPanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.collections.EntityCollectionsPanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.propsandcolls.EntityPropsAndCollsPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobPanelFactory;
@@ -175,8 +173,6 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
componentFactories.add(new EntityIconAndTitlePanelFactory());
componentFactories.add(new EntityIconTitleAndCopyLinkPanelFactory());
componentFactories.add(new EntityHeaderPanelFactory());
- componentFactories.add(new EntityPropsAndCollsPanelFactory());
- componentFactories.add(new EntityCollectionsPanelFactory());
}
protected void addComponentFactoriesForEntityCollectionContents(final ComponentFactoryList componentFactories) {
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
index d83915c..0057a30 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
@@ -24,7 +24,6 @@ import org.apache.wicket.model.IModel;
import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
import org.apache.isis.applib.layout.component.Grid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -32,7 +31,6 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.entity.EntityComponentFactoryAbstract;
import org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3GridPanel;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.FCGridPanel;
/**
* {@link ComponentFactory} for {@link EntityLinksSelectorPanel}.
@@ -55,9 +53,6 @@ public class EntityLinksSelectorPanelFactory extends EntityComponentFactoryAbstr
final Grid grid = facet.getGrid();
if (grid != null) {
final EntityModel entityModelWithLayoutMetadata = entityModel.cloneWithLayoutMetadata(grid);
- if(grid instanceof FCGrid) {
- return new FCGridPanel(id, entityModelWithLayoutMetadata);
- }
if(grid instanceof BS3Grid) {
return new BS3GridPanel(id, entityModelWithLayoutMetadata);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.html
deleted file mode 100644
index 7b172aa..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<html xmlns:wicket="http://wicket.apache.org">
-<body>
-<wicket:panel>
- <div class="entityTabbed">
- <div wicket:id="entitySummary"></div>
-
- <div class="row">
- <div wicket:id="leftColumn" class = "leftColumn"/>
- <div wicket:id="middleColumn" class="middleColumn"/>
- <div wicket:id="rightColumn" class = "rightColumn"/>
- </div>
- </div>
-</wicket:panel>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.java
deleted file mode 100644
index 4623028..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/FCGridPanel.java
+++ /dev/null
@@ -1,114 +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.viewer.wicket.ui.components.layout.fixedcols;
-
-import java.util.List;
-
-import com.google.common.collect.FluentIterable;
-
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTabGroup;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.columns.EntityColumn;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.tabgrouplist.TabGroupListPanel;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-
-/**
- * {@link PanelAbstract Panel} to represent an entity on a single page made up
- * of several <div> regions.
- */
-public class FCGridPanel extends PanelAbstract<EntityModel> {
-
- private static final long serialVersionUID = 1L;
-
- private static final String ID_LEFT_COLUMN = "leftColumn";
- private static final String ID_MIDDLE_COLUMN = "middleColumn";
- private static final String ID_RIGHT_COLUMN = "rightColumn";
-
- public FCGridPanel(final String id, final EntityModel entityModel) {
- super(id, entityModel);
- buildGui();
- }
-
- private void buildGui() {
- final EntityModel model = getModel();
- final ObjectAdapter objectAdapter = model.getObject();
- final CssClassFacet facet = objectAdapter.getSpecification().getFacet(CssClassFacet.class);
- if(facet != null) {
- final String cssClass = facet.cssClass(objectAdapter);
- CssClassAppender.appendCssClassTo(this, cssClass);
- }
-
- // forces metadata to be derived && synced
- final GridFacet GridFacet = model.getTypeOfSpecification().getFacet(GridFacet.class);
- final FCGrid page = (FCGrid) GridFacet.getGrid();
-
-
- addOrReplace(ComponentType.ENTITY_SUMMARY, model);
-
- final int leftSpan = addColumnIfRequired(ID_LEFT_COLUMN, page.getLeft());
-
- final TabGroupListPanel middleTabs = addTabGroups(ID_MIDDLE_COLUMN, page.getTabGroups());
-
- final int rightSpan = addColumnIfRequired(ID_RIGHT_COLUMN, page.getRight());
-
- final int columnSpans = leftSpan + rightSpan;
- int tabGroupSpan = columnSpans < 12 ? 12 - (columnSpans) : 12;
- CssClassAppender.appendCssClassTo(middleTabs, "col-xs-" + tabGroupSpan);
-
- }
-
- private TabGroupListPanel addTabGroups(
- final String id, final List<FCTabGroup> tabGroupList) {
- final EntityModel model = getModel();
- final List<FCTabGroup> tabGroups = FluentIterable
- .from(tabGroupList)
- .filter(FCTabGroup.Predicates.notEmpty())
- .toList();
- final EntityModel entityModelWitHints = model.cloneWithLayoutMetadata(tabGroups);
- final TabGroupListPanel middleComponent = new TabGroupListPanel(id, entityModelWitHints);
- addOrReplace(middleComponent);
- return middleComponent;
- }
-
- private int addColumnIfRequired(final String id, final FCColumn col) {
- if(col != null) {
- final EntityModel entityModel =
- getModel().cloneWithLayoutMetadata(col);
- final FCColumn fcColumn = (FCColumn) entityModel.getLayoutMetadata();
- final int span = fcColumn.getSpan();
- if(span > 0) {
- final EntityColumn entityColumn = new EntityColumn(id, entityModel);
- addOrReplace(entityColumn);
- CssClassAppender.appendCssClassTo(entityColumn, "col-xs-" + span);
- return span;
- }
- }
- permanentlyHide(id);
- return 0;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/PropUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/PropUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/PropUtil.java
deleted file mode 100644
index 7fdd5ec..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/PropUtil.java
+++ /dev/null
@@ -1,92 +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.viewer.wicket.ui.components.layout.fixedcols;
-
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.collect.FluentIterable;
-
-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.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.Hint;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-
-public final class PropUtil {
-
- private PropUtil() {
- }
-
- public static List<String> propertyGroupNames(
- final EntityModel entityModel,
- final Hint hint, final FCColumn columnMetaDataIfAny) {
- final ObjectAdapter adapter = entityModel.getObject();
- final ObjectSpecification objSpec = adapter.getSpecification();
-
- final Map<String, List<ObjectAssociation>> associationsByGroup =
- propertiesByMemberOrder(adapter);
-
- return columnMetaDataIfAny != null
- ? FluentIterable
- .from(columnMetaDataIfAny.getFieldSets())
- .transform(FieldSet.Util.nameOf())
- .toList()
- : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(),
- hint);
- }
-
- public static Map<String, List<ObjectAssociation>> propertiesByMemberOrder(final ObjectAdapter adapter) {
- final List<ObjectAssociation> properties = visibleProperties(adapter);
- return ObjectAssociation.Util.groupByMemberOrderName(properties);
- }
-
- private static List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter) {
- return visibleProperties(adapter, Filters.<ObjectAssociation>any());
- }
-
- private static List<ObjectAssociation> visibleProperties(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- final ObjectSpecification objSpec = adapter.getSpecification();
-
- return objSpec.getAssociations(
- Contributed.INCLUDED, visiblePropertiesFilter(adapter, filter));
- }
-
- @SuppressWarnings("unchecked")
- private static Filter<ObjectAssociation> visiblePropertiesFilter(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- return Filters.and(
- ObjectAssociation.Filters.PROPERTIES,
- ObjectAssociation.Filters.dynamicallyVisible(
- adapter, InteractionInitiatedBy.USER, Where.OBJECT_FORMS),
- filter);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.html
deleted file mode 100644
index 0e03ea9..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<html xmlns:wicket="http://wicket.apache.org">
- <body>
- <wicket:panel>
- <div class="entityCollectionsPanel entityCollectionsComponentType">
- <div wicket:id="collections">
- <div wicket:id="collection">
- [collection]
- </div>
- </div>
- </div>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.java
deleted file mode 100644
index 09337dc..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanel.java
+++ /dev/null
@@ -1,151 +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.viewer.wicket.ui.components.layout.fixedcols.collections;
-
-import java.util.Comparator;
-import java.util.List;
-
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-
-import org.apache.wicket.markup.html.WebMarkupContainer;
-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.component.CollectionLayoutData;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.components.entity.collection.EntityCollectionPanel;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-
-/**
- * {@link PanelAbstract Panel} representing the properties of an entity, as per
- * the provided {@link EntityModel}.
- */
-public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
-
- private static final long serialVersionUID = 1L;
-
- private static final String ID_ENTITY_COLLECTIONS = "entityCollections";
- private static final String ID_COLLECTIONS = "collections";
- private static final String ID_COLLECTION = "collection";
-
- // view metadata (if any available)
- private final FCColumn fcColumnIfAny;
-
- public EntityCollectionsPanel(final String id, final EntityModel entityModel) {
- super(id, entityModel);
-
- fcColumnIfAny = (FCColumn) entityModel.getLayoutMetadata();
-
- buildGui();
- }
-
- private void buildGui() {
- buildEntityPropertiesAndOrCollectionsGui();
- setOutputMarkupId(true); // so can repaint via ajax
- }
-
- private void buildEntityPropertiesAndOrCollectionsGui() {
- final EntityModel model = getModel();
- final ObjectAdapter adapter = model.getObject();
- if (adapter != null) {
- addCollections();
- } else {
- permanentlyHide(ID_ENTITY_COLLECTIONS);
- }
- }
-
- private void addCollections() {
- final EntityModel entityModel = getModel();
- final ObjectAdapter adapter = entityModel.getObject();
-
- final Filter<ObjectAssociation> filter;
- if (fcColumnIfAny != null) {
- final ImmutableList<String> collectionIds = FluentIterable
- .from(fcColumnIfAny.getCollections())
- .transform(CollectionLayoutData.Functions.id())
- .toList();
- filter = new Filter<ObjectAssociation>() {
- @Override
- public boolean accept(final ObjectAssociation objectAssociation) {
- return collectionIds.contains(objectAssociation.getId());
- }
- };
- } else {
- filter = Filters.any();
- }
-
- final List<ObjectAssociation> associations = visibleCollections(adapter, filter);
- associations.sort(new Comparator<ObjectAssociation>() {
- private final DeweyOrderComparator deweyOrderComparator = new DeweyOrderComparator();
- @Override
- public int compare(final ObjectAssociation o1, final ObjectAssociation o2) {
- final MemberOrderFacet o1Facet = o1.getFacet(MemberOrderFacet.class);
- final MemberOrderFacet o2Facet = o2.getFacet(MemberOrderFacet.class);
- return o1Facet == null? +1:
- o2Facet == null? -1:
- deweyOrderComparator.compare(o1Facet.sequence(), o2Facet.sequence());
- }
- });
-
- final RepeatingView collectionRv = new RepeatingView(ID_COLLECTIONS);
- add(collectionRv);
-
- for (final ObjectAssociation association : associations) {
-
- final WebMarkupContainer collectionRvContainer = new WebMarkupContainer(collectionRv.newChildId());
- collectionRv.add(collectionRvContainer);
-
- final CollectionLayoutData collectionLayoutData = new CollectionLayoutData(association.getId());
- final EntityModel entityModelWithCollectionLayoutMetadata =
- entityModel.cloneWithLayoutMetadata(collectionLayoutData);
-
- collectionRvContainer.add(new EntityCollectionPanel(ID_COLLECTION, entityModelWithCollectionLayoutMetadata));
- }
- }
-
- private static List<ObjectAssociation> visibleCollections(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- return adapter.getSpecification().getAssociations(
- Contributed.INCLUDED, visibleCollectionsFilter(adapter, filter));
- }
-
- @SuppressWarnings("unchecked")
- private static Filter<ObjectAssociation> visibleCollectionsFilter(
- final ObjectAdapter adapter,
- final Filter<ObjectAssociation> filter) {
- return Filters.and(
- ObjectAssociation.Filters.COLLECTIONS,
- ObjectAssociation.Filters.dynamicallyVisible(
- adapter, InteractionInitiatedBy.USER, Where.PARENTED_TABLES),
- filter);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanelFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanelFactory.java
deleted file mode 100644
index 797720b..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/collections/EntityCollectionsPanelFactory.java
+++ /dev/null
@@ -1,49 +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.viewer.wicket.ui.components.layout.fixedcols.collections;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.model.IModel;
-
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.entity.EntityComponentFactoryAbstract;
-
-/**
- * {@link ComponentFactory} for {@link EntityCollectionsPanel}.
- */
-public class EntityCollectionsPanelFactory extends EntityComponentFactoryAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public EntityCollectionsPanelFactory() {
- super(ComponentType.ENTITY_COLLECTIONS, EntityCollectionsPanel.class);
- }
-
- @Override
- public Component createComponent(final String id, final IModel<?> model) {
- final EntityModel entityModel = (EntityModel) model;
- return new EntityCollectionsPanel(id, entityModel);
- }
-}
-
-
-
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.html
deleted file mode 100644
index 44e3a23..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<html xmlns:wicket="http://wicket.apache.org">
- <body>
- <wicket:panel>
- <div class="columnMembers">
- <div class="inputFormTable properties">
- <div wicket:id="propertyGroup">[propertyGroup]</div>
- </div>
- <div wicket:id="collections"></div>
- </div>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/69ed9c5e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.java
deleted file mode 100644
index b790d2f..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/fixedcols/columns/EntityColumn.java
+++ /dev/null
@@ -1,191 +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.viewer.wicket.ui.components.layout.fixedcols.columns;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.base.Function;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.repeater.RepeatingView;
-
-import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.Hint;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.runtime.system.DeploymentType;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.layout.fixedcols.PropUtil;
-import org.apache.isis.viewer.wicket.ui.components.entity.fieldset.PropertyGroup;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.Components;
-
-/**
- * Adds properties (in property groups) and collections to a column.
- *
- * <p>
- * If {@link FCColumn} is present, then only those properties and collections for that
- * column metadata are rendered. Otherwise the {@link MemberGroupLayoutFacet} on the
- * {@link ObjectSpecification} in conjunction with the provided {@link Hint} is
- * used to filter down to just those properties/collections in the column.
- * </p>
- */
-public class EntityColumn extends PanelAbstract<EntityModel> {
-
- private static final long serialVersionUID = 1L;
-
- private static final String ID_PROPERTY_GROUP = "propertyGroup";
-
-
- // view metadata (populated for EntityTabbedPanel, absent for EntityEditablePanel)
- private final FCColumn columnMetaDataIfAny;
-
- // which column to render (populated for EntityEditablePanel, not required and so absent for EntityTabbedPanel)
- final Hint hint;
-
- private static Hint hintFrom(final EntityModel entityModel) {
- final FCColumn fcColumn = (FCColumn) entityModel.getLayoutMetadata();
- return fcColumn.getHint();
- }
-
-
- public EntityColumn(
- final String id,
- final EntityModel entityModel) {
-
- this(id, entityModel, hintFrom(entityModel));
- }
-
- public EntityColumn(
- final String id,
- final EntityModel entityModel,
- final Hint hint) {
-
- super(id, entityModel);
-
- columnMetaDataIfAny = (FCColumn) entityModel.getLayoutMetadata();
- this.hint = hint;
-
- buildGui();
- }
-
- private void buildGui() {
- addPropertiesAndCollections(this, getModel());
- }
-
- private void addPropertiesAndCollections(
- final MarkupContainer col,
- final EntityModel entityModel) {
- addPropertiesInColumn(col, entityModel);
- addCollectionsIfRequired(col, entityModel);
- }
-
- private void addPropertiesInColumn(
- final MarkupContainer markupContainer,
- final EntityModel entityModel) {
-
- final ObjectAdapter adapter = entityModel.getObject();
- final ObjectSpecification objSpec = adapter.getSpecification();
-
- final Map<String, List<ObjectAssociation>> associationsByGroup = PropUtil.propertiesByMemberOrder(adapter);
-
- final RepeatingView memberGroupRv = new RepeatingView(ID_PROPERTY_GROUP);
- markupContainer.add(memberGroupRv);
-
- final ImmutableMap<String, FieldSet> propertyGroupMetadataByNameIfAny =
- columnMetaDataIfAny != null
- ? Maps.uniqueIndex(columnMetaDataIfAny.getFieldSets(), FieldSet.Util.nameOf())
- : null;
-
- final Collection<String> groupNames =
- propertyGroupMetadataByNameIfAny != null
- ? propertyGroupMetadataByNameIfAny.keySet()
- : ObjectSpecifications.orderByMemberGroups(objSpec, associationsByGroup.keySet(), hint);
-
- for(final String groupName: groupNames) {
-
-
- final FieldSet fieldSet;
- if (propertyGroupMetadataByNameIfAny != null) {
- fieldSet = propertyGroupMetadataByNameIfAny.get(groupName);
- }
- else {
- final List<ObjectAssociation> associationsInGroup = associationsByGroup.get(groupName);
- fieldSet = new FieldSet(groupName);
- fieldSet.setProperties(
- FluentIterable
- .from(associationsInGroup)
- .transform(
- new Function<ObjectAssociation, PropertyLayoutData>() {
- @Override
- public PropertyLayoutData apply(final ObjectAssociation assoc) {
- return new PropertyLayoutData(assoc.getId());
- }
- }).toList());
- }
-
- if(fieldSet.getProperties().isEmpty()) {
- continue;
- }
-
- final String id = memberGroupRv.newChildId();
-
- final EntityModel entityModelWithHints = entityModel.cloneWithLayoutMetadata(fieldSet);
- final WebMarkupContainer memberGroupRvContainer = new PropertyGroup(id, entityModelWithHints);
-
- memberGroupRv.add(memberGroupRvContainer);
- }
- }
-
- private void addCollectionsIfRequired(
- final MarkupContainer column,
- final EntityModel entityModel) {
-
- if(columnMetaDataIfAny != null) {
- getComponentFactoryRegistry()
- .addOrReplaceComponent(column, "collections", ComponentType.ENTITY_COLLECTIONS, entityModel);
- } else {
- Components.permanentlyHide(column, "collections");
- }
- }
-
-
-
- ///////////////////////////////////////////////////////
- // Dependencies (from context)
- ///////////////////////////////////////////////////////
-
- protected DeploymentType getDeploymentType() {
- return IsisContext.getDeploymentType();
- }
-
-}