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:10 UTC
[07/13] isis git commit: ISIS-993: responsibility for creating the
default grid moved to GrdNormalizerService. Also Wicket viewer html layout
fixes...
ISIS-993: responsibility for creating the default grid moved to GrdNormalizerService. Also Wicket viewer html layout fixes...
that is:
- tidying up of ScalarPanelAbstract html/layout, adding missing support for 'edit' button (and use fa-icon for that now, instead).
- removing spurious concurrency exception resulting from new implementation of edit functionality (from action whose button is rendered on panel).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5c2b07de
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5c2b07de
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5c2b07de
Branch: refs/heads/ISIS-993
Commit: 5c2b07de4bb30a490f4d3f12bab694e6fba161f5
Parents: e95a46f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Feb 23 12:56:04 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Feb 23 12:56:04 2016 +0000
----------------------------------------------------------------------
.../services/layout/GridNormalizerService.java | 3 +
.../applib/services/layout/GridService.java | 2 +
.../facets/object/grid/GridFacetDefault.java | 102 +-----------------
.../grid/GridNormalizerServiceAbstract.java | 19 ++--
.../services/grid/GridServiceDefault.java | 24 ++---
.../bootstrap3/GridNormalizerServiceBS3.java | 104 +++++++++++++++----
.../spec/feature/ObjectAssociation.java | 23 ++++
.../specimpl/ObjectSpecificationAbstract.java | 6 +-
.../AdditionalLinksAsListInlinePanel.html | 1 +
.../serviceactions/ServiceActionsPanel.css | 5 +
.../entity/fieldset/PropertyGroup.html | 4 +-
.../components/scalars/ScalarPanelAbstract.html | 11 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.html | 29 ++++--
.../scalars/primitive/BooleanPanel.html | 17 ++-
.../scalars/reference/ReferencePanel.html | 27 ++---
.../linkandlabel/ActionLinkFactoryAbstract.java | 14 ++-
.../valuechoices/ValueChoicesSelect2Panel.html | 16 ++-
.../ui/pages/bootstrap-overrides-flatly.css | 5 +
.../wicket/ui/pages/bootstrap-overrides.css | 35 +++++--
.../wicket/ui/pages/entity/EntityPage.java | 17 +--
20 files changed, 272 insertions(+), 192 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridNormalizerService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridNormalizerService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridNormalizerService.java
index a967d95..6eb2383 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridNormalizerService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridNormalizerService.java
@@ -45,4 +45,7 @@ public interface GridNormalizerService<G extends Grid> {
@Programmatic
void minimal(G grid, Class<?> domainClass);
+
+ @Programmatic
+ Grid defaultGrid(Class<?> domainClass);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
index 1606046..d8ce4b4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/GridService.java
@@ -50,6 +50,8 @@ public interface GridService {
Grid minimal(Grid grid);
+ Grid defaultGrid(Class<?> domainClass);
+
enum Style {
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
index e02efde..756938a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
@@ -18,29 +18,16 @@
*/
package org.apache.isis.core.metamodel.facets.object.grid;
-import java.util.Arrays;
-import java.util.List;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.isis.applib.annotation.MemberGroupLayout;
-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.grid.bootstrap3.BS3Col;
-import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
-import org.apache.isis.applib.layout.grid.bootstrap3.BS3Row;
import org.apache.isis.applib.services.layout.GridService;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
public class GridFacetDefault
extends FacetAbstract
@@ -82,97 +69,12 @@ public class GridFacetDefault
final Class<?> domainClass = getSpecification().getCorrespondingClass();
Grid grid = gridService.fromXml(domainClass);
if(grid == null) {
- grid = deriveGrid();
+ grid = gridService.defaultGrid(domainClass);
}
-
- this.grid = normalize(grid);
+ this.grid = gridService.normalize(grid);
return this.grid;
}
- private Grid deriveGrid() {
- final BS3Grid bs3Grid = new BS3Grid();
- bs3Grid.setDomainClass(getSpecification().getCorrespondingClass());
-
- final BS3Row headerRow = new BS3Row();
- bs3Grid.getRows().add(headerRow);
- final BS3Col headerRowCol = new BS3Col();
- headerRowCol.setSpan(12);
- headerRowCol.setUnreferencedActions(true);
- headerRowCol.setDomainObject(new DomainObjectLayoutData());
- headerRow.getCols().add(headerRowCol);
-
- final BS3Row propsRow = new BS3Row();
- bs3Grid.getRows().add(propsRow);
-
- final MemberGroupLayoutFacet memberGroupLayoutFacet =
- getSpecification().getFacet(MemberGroupLayoutFacet.class);
- if(memberGroupLayoutFacet != null) {
- // if have @MemberGroupLayout (or equally, a .layout.json file)
- final MemberGroupLayout.ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
- addFieldSetsToColumn(propsRow, columnSpans.getLeft(), memberGroupLayoutFacet.getLeft(), true);
- addFieldSetsToColumn(propsRow, columnSpans.getMiddle(), memberGroupLayoutFacet.getMiddle(), false);
- addFieldSetsToColumn(propsRow, columnSpans.getRight(), memberGroupLayoutFacet.getRight(), false);
-
- final BS3Col col = new BS3Col();
- final int collectionSpan = columnSpans.getCollections();
- col.setUnreferencedCollections(true);
- col.setSpan(collectionSpan > 0? collectionSpan: 12);
- propsRow.getCols().add(col);
-
- // will already be sorted per @MemberOrder
- final List<OneToManyAssociation> collections = getSpecification().getCollections(Contributed.INCLUDED);
- for (OneToManyAssociation collection : collections) {
- col.getCollections().add(new CollectionLayoutData(collection.getId()));
- }
- } else {
-
- // if no layout hints other than @MemberOrder
- addFieldSetsToColumn(propsRow, 4, Arrays.asList("General"), true);
-
- final BS3Col col = new BS3Col();
- col.setUnreferencedCollections(true);
- col.setSpan(12);
- propsRow.getCols().add(col);
- }
- return bs3Grid;
- }
-
- void addFieldSetsToColumn(
- final BS3Row propsRow,
- final int span,
- final List<String> memberGroupNames,
- final boolean unreferencedProperties) {
-
- if(span > 0 || unreferencedProperties) {
- final BS3Col col = new BS3Col();
- col.setSpan(span); // in case we are here because of 'unreferencedProperties' needs setting
- propsRow.getCols().add(col);
- final List<String> leftMemberGroups = memberGroupNames;
- for (String memberGroup : leftMemberGroups) {
- final FieldSet fieldSet = new FieldSet();
- fieldSet.setName(memberGroup);
- // fieldSet's id will be derived from the name later
- // during normalization phase.
- if(unreferencedProperties && col.getFieldSets().isEmpty()) {
- fieldSet.setUnreferencedProperties(true);
- }
- col.getFieldSets().add(fieldSet);
- }
- }
- }
-
-
-
- private Grid normalize(final Grid grid) {
- if(grid == null) {
- return null;
- }
- // unused... final Class<?> domainClass = getSpecification().getCorrespondingClass();
-
- return gridService.normalize(grid);
- }
-
-
private ObjectSpecification getSpecification() {
return (ObjectSpecification) getFacetHolder();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/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 dd7abc8..8d92c89 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
@@ -20,12 +20,13 @@ import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,7 +50,6 @@ import org.apache.isis.applib.layout.component.HasCssClassFa;
import org.apache.isis.applib.layout.component.HasDescribedAs;
import org.apache.isis.applib.layout.component.HasHidden;
import org.apache.isis.applib.layout.component.HasNamed;
-import org.apache.isis.applib.layout.component.MemberRegionOwner;
import org.apache.isis.applib.layout.component.PropertyLayoutData;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.jaxb.JaxbService;
@@ -480,7 +480,7 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
final Map<String, OneToManyAssociation> oneToManyAssociationById,
final Map<String, ObjectAction> objectActionById) {
- final Map<String, int[]> propertySequenceByGroup = Maps.newHashMap();
+ final AtomicInteger propertySequence = new AtomicInteger(0);
fcGrid.visit(new Grid.VisitorAdapter() {
private int collectionSequence = 1;
@@ -569,9 +569,11 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
FacetUtil.addOrReplaceFacet(TypicalLengthFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
// @MemberOrder#name based on owning property group, @MemberOrder#sequence monotonically increasing
+ // nb for any given field set the sequence won't reset to zero; however this is what we want so that
+ // table columns are shown correctly (by fieldset, then property order within that fieldset).
final FieldSet fieldSet = propertyLayoutData.getOwner();
final String groupName = fieldSet.getName();
- final String sequence = nextInSequenceFor(groupName, propertySequenceByGroup);
+ final String sequence = "" + (propertySequence.incrementAndGet());
FacetUtil.addOrReplaceFacet(
new MemberOrderFacetXml(groupName, sequence, translationService, oneToOneAssociation));
}
@@ -653,20 +655,19 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
}
- SpecificationLoader specificationLookup;
+ protected SpecificationLoader specificationLookup;
public void setSpecificationLoader(final SpecificationLoader specificationLookup) {
this.specificationLookup = specificationLookup;
}
@Inject
- TranslationService translationService;
+ protected TranslationService translationService;
@Inject
- JaxbService jaxbService;
+ protected JaxbService jaxbService;
@Inject
- DomainObjectContainer container;
-
+ protected DomainObjectContainer container;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index e9dc2b2..4ce3f02 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -152,12 +152,20 @@ public class GridServiceDefault
}
@Override
- @Programmatic
- public Grid normalize(final Grid grid) {
+ public Grid defaultGrid(Class<?> domainClass) {
- if(grid == null) {
- return null;
+ for (GridNormalizerService gridNormalizerService : gridNormalizerServices()) {
+ Grid grid = gridNormalizerService.defaultGrid(domainClass);
+ if(grid != null) {
+ return grid;
+ }
}
+ throw new IllegalStateException("No GridNormalizerService available to create grid for '" + domainClass.getName() + "'");
+ }
+
+ @Override
+ @Programmatic
+ public Grid normalize(final Grid grid) {
// if have .layout.json and then add a .layout.xml without restarting, then note that
// the changes won't be picked up. Normalizing would be required
@@ -181,10 +189,6 @@ public class GridServiceDefault
@Programmatic
public Grid complete(final Grid grid) {
- if(grid == null) {
- return null;
- }
-
final Class<?> domainClass = grid.getDomainClass();
for (GridNormalizerService gridNormalizerService : gridNormalizerServices()) {
gridNormalizerService.complete(grid, domainClass);
@@ -197,10 +201,6 @@ public class GridServiceDefault
@Programmatic
public Grid minimal(final Grid grid) {
- if(grid == null) {
- return null;
- }
-
final Class<?> domainClass = grid.getDomainClass();
for (GridNormalizerService gridNormalizerService : gridNormalizerServices()) {
gridNormalizerService.minimal(grid, domainClass);
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridNormalizerServiceBS3.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridNormalizerServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridNormalizerServiceBS3.java
index 283bb49..9ad5161 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridNormalizerServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridNormalizerServiceBS3.java
@@ -16,7 +16,7 @@
*/
package org.apache.isis.core.metamodel.services.grid.bootstrap3;
-import java.util.Comparator;
+import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -37,9 +37,12 @@ import com.google.common.collect.Sets;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.MemberGroupLayout;
import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.layout.component.ActionLayoutData;
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.PropertyLayoutData;
@@ -50,13 +53,14 @@ import org.apache.isis.applib.layout.grid.bootstrap3.BS3RowContent;
import org.apache.isis.applib.layout.grid.bootstrap3.BS3Tab;
import org.apache.isis.applib.layout.grid.bootstrap3.BS3TabGroup;
import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
+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;
+import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
@DomainService(
nature = NatureOfService.DOMAIN
@@ -71,6 +75,84 @@ public class GridNormalizerServiceBS3 extends GridNormalizerServiceAbstract<BS3G
}
+ @Programmatic
+ @Override
+ public Grid defaultGrid(final Class<?> domainClass) {
+ final BS3Grid bs3Grid = new BS3Grid();
+
+ final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
+ bs3Grid.setDomainClass(domainClass);
+
+ final BS3Row headerRow = new BS3Row();
+ bs3Grid.getRows().add(headerRow);
+ final BS3Col headerRowCol = new BS3Col();
+ headerRowCol.setSpan(12);
+ headerRowCol.setUnreferencedActions(true);
+ headerRowCol.setDomainObject(new DomainObjectLayoutData());
+ headerRow.getCols().add(headerRowCol);
+
+ final BS3Row propsRow = new BS3Row();
+ bs3Grid.getRows().add(propsRow);
+
+ final MemberGroupLayoutFacet memberGroupLayoutFacet =
+ objectSpec.getFacet(MemberGroupLayoutFacet.class);
+ if(memberGroupLayoutFacet != null) {
+ // if have @MemberGroupLayout (or equally, a .layout.json file)
+ final MemberGroupLayout.ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
+ addFieldSetsToColumn(propsRow, columnSpans.getLeft(), memberGroupLayoutFacet.getLeft(), true);
+ addFieldSetsToColumn(propsRow, columnSpans.getMiddle(), memberGroupLayoutFacet.getMiddle(), false);
+ addFieldSetsToColumn(propsRow, columnSpans.getRight(), memberGroupLayoutFacet.getRight(), false);
+
+ final BS3Col col = new BS3Col();
+ final int collectionSpan = columnSpans.getCollections();
+ col.setUnreferencedCollections(true);
+ col.setSpan(collectionSpan > 0? collectionSpan: 12);
+ propsRow.getCols().add(col);
+
+ // will already be sorted per @MemberOrder
+ final List<OneToManyAssociation> collections = objectSpec.getCollections(Contributed.INCLUDED);
+ for (OneToManyAssociation collection : collections) {
+ col.getCollections().add(new CollectionLayoutData(collection.getId()));
+ }
+ } else {
+
+ // if no layout hints other than @MemberOrder
+ addFieldSetsToColumn(propsRow, 4, Arrays.asList("General"), true);
+
+ final BS3Col col = new BS3Col();
+ col.setUnreferencedCollections(true);
+ col.setSpan(12);
+ propsRow.getCols().add(col);
+ }
+ return bs3Grid;
+ }
+
+ void addFieldSetsToColumn(
+ final BS3Row propsRow,
+ final int span,
+ final List<String> memberGroupNames,
+ final boolean unreferencedProperties) {
+
+ if(span > 0 || unreferencedProperties) {
+ final BS3Col col = new BS3Col();
+ col.setSpan(span); // in case we are here because of 'unreferencedProperties' needs setting
+ propsRow.getCols().add(col);
+ final List<String> leftMemberGroups = memberGroupNames;
+ for (String memberGroup : leftMemberGroups) {
+ final FieldSet fieldSet = new FieldSet();
+ fieldSet.setName(memberGroup);
+ // fieldSet's id will be derived from the name later
+ // during normalization phase.
+ if(unreferencedProperties && col.getFieldSets().isEmpty()) {
+ fieldSet.setUnreferencedProperties(true);
+ }
+ col.getFieldSets().add(fieldSet);
+ }
+ }
+ }
+
+
+
@Override
protected boolean validateAndDerive(
final Grid grid,
@@ -304,7 +386,7 @@ public class GridNormalizerServiceBS3 extends GridNormalizerServiceAbstract<BS3G
.filter(Predicates.<OneToOneAssociation>notNull())
);
- associations.sort(byMemberOrderSequence());
+ associations.sort(ObjectAssociation.Comparators.byMemberOrderSequence());
addPropertiesTo(fieldSet,
FluentIterable.from(associations)
.transform(ObjectAssociation.Functions.toId())
@@ -337,7 +419,7 @@ public class GridNormalizerServiceBS3 extends GridNormalizerServiceAbstract<BS3G
return oneToManyAssociationById.get(collectionId);
}
})
- .toSortedList(byMemberOrderSequence())
+ .toSortedList(ObjectAssociation.Comparators.byMemberOrderSequence())
);
final ImmutableList<String> sortedMissingCollectionIds = FluentIterable.from(sortedCollections)
@@ -424,20 +506,6 @@ public class GridNormalizerServiceBS3 extends GridNormalizerServiceAbstract<BS3G
return Character.toLowerCase(c) + str.substring(1).replaceAll("\\s+", "");
}
- private static Comparator<ObjectAssociation> byMemberOrderSequence() {
- return 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());
- }
- };
- }
-
protected void addPropertiesTo(
final FieldSet fieldSet,
final List<String> propertyIds) {
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
index 9c87476..50024dc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.spec.feature;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -41,6 +42,7 @@ import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayo
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderComparator;
import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
+import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
/**
* Provides reflective access to a field on a domain object.
@@ -395,6 +397,27 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
}
// //////////////////////////////////////////////////////
+ // Comparators
+ // //////////////////////////////////////////////////////
+
+ public static class Comparators {
+ public static Comparator<ObjectAssociation> byMemberOrderSequence() {
+ return 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());
+ }
+ };
+ }
+
+ }
+
+ // //////////////////////////////////////////////////////
// Util
// //////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 0a2561d..708e700 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -29,6 +29,7 @@ import java.util.Set;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
+import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -709,7 +710,10 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
public List<ObjectAssociation> getAssociations(Contributed contributed, final Filter<ObjectAssociation> filter) {
final List<ObjectAssociation> allAssociations = getAssociations(contributed);
return Lists.newArrayList(
- Iterables.filter(allAssociations, Filters.asPredicate(filter)));
+ FluentIterable.from(allAssociations)
+ .filter(Filters.asPredicate(filter))
+ .toSortedList(ObjectAssociation.Comparators.byMemberOrderSequence())
+ );
}
@SuppressWarnings({ "rawtypes", "unchecked" })
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksAsListInlinePanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksAsListInlinePanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksAsListInlinePanel.html
index 7cc41f1..f7d8db6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksAsListInlinePanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksAsListInlinePanel.html
@@ -31,6 +31,7 @@
</a>
</li>
</ul>
+ <div class="clearfix"/>
</wicket:panel>
</body>
</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.css
index 59f31df..8b16ff9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.css
@@ -237,6 +237,11 @@
margin-right: 10px;
}
+
+.pull-right .additionalLinkListDropDown {
+ margin-left: 0px;
+}
+
.additionalLinkList li {
float:left;
margin-right:10px;
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.html
index 5b402cb..355ed29 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.html
@@ -25,8 +25,8 @@
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
<div class="pull-right additionalLinks">
- <div wicket:id="associatedActionLinksPanel"></div>
- <div wicket:id="associatedActionLinksPanelDropDown"></div>
+ <div class="pull-right" wicket:id="associatedActionLinksPanelDropDown"></div>
+ <div class="pull-right" wicket:id="associatedActionLinksPanel"></div>
</div>
</div>
<div class="properties panel-body">
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
index e7715cd..dcbd683 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
@@ -28,11 +28,18 @@
<div class="form-group" wicket:id="scalarIfRegular">
<label wicket:id="scalarName" class="scalarName control-label">[Label text]</label>
<span class="scalarValueWrapper">
- <span class="editing"><wicket:child/><a wicket:id="editProperty" href="#" class="btn btn-link btn-xs" style="float: right;">edit</a></span>
+ <div class="scalarPlaceholder">
+ <span class="scalarValueInput">
+ <span class="editing">
+ <wicket:child/>
+ <a wicket:id="editProperty" href="#" class="edit fa fa-pencil-square-o"/>
+ </span>
+ </span>
+ </div>
<span wicket:id="feedback" class="help-block"></span>
<span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="associatedActionLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight" class="associatedActionLinksRight">[drop down]</span>
<div class="clearfix"/>
</div>
<wicket:container wicket:id="scalarIfCompact"></wicket:container>
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
index d642f93..92b11a7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
@@ -24,23 +24,30 @@
<div class="form-group" wicket:id="scalarIfRegular">
<label wicket:id="scalarName" class="scalarName control-label">[Label text]</label>
<span class="scalarValueWrapper">
- <img class="scalarImage text-center" width="200px" wicket:id="scalarImage"/>
- <span class="scalarValue text-right">
+ <div class="scalarPlaceholder">
+ <span class="scalarValueInput">
+ <span class="editing">
+ <img class="scalarImage text-center" width="200px" wicket:id="scalarImage"/>
+ <span class="scalarValue text-right">
- <span class="uploadFile help-block">
- <input type="file" name="scalarValue" wicket:id="scalarValue" />
- </span>
- <a wicket:id="scalarIfRegularClear" class="btn btn-primary btn-sm"><span class="clearTitle">Clear</span></a>
+ <span class="uploadFile help-block">
+ <input type="file" name="scalarValue" wicket:id="scalarValue" />
+ </span>
+ <a wicket:id="scalarIfRegularClear" class="btn btn-primary btn-sm"><span class="clearTitle">Clear</span></a>
- <a class="download btn btn-sm btn-primary" wicket:id="scalarIfRegularDownload"><span class="downloadTitle">Download</span></a>
- <span class="fileName" wicket:id="fileName">[filename]</span><span> </span>
- </span>
+ <a class="download btn btn-sm btn-primary" wicket:id="scalarIfRegularDownload"><span class="downloadTitle">Download</span></a>
+ <span class="fileName" wicket:id="fileName">[filename]</span><span> </span>
+ </span>
+ <a wicket:id="editProperty" href="#" class="edit fa fa-pencil-square-o"/>
+ </span>
+ </span>
+ </div>
<span wicket:id="feedback" class="help-block"></span>
<span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="associatedActionLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight" class="associatedActionLinksRight">[drop down]</span>
+ <div class="clearfix"/>
</div>
-
<span wicket:id="scalarIfCompact">
<a wicket:id="scalarIfCompactDownload"><span class="fileName" wicket:id="fileNameIfCompact"></span></a>
</span>
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
index 7809939..8fa08d9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
@@ -27,15 +27,24 @@
<div class="booleanPanel scalarNameAndValueComponentType">
<div class="form-group" wicket:id="scalarIfRegular">
<label wicket:id="scalarName" class="scalarName control-label">[Label text]</label>
- <div class="scalarValueWrapper">
- <input type="checkbox" name="scalarValue" class="scalarValue" wicket:id="scalarValue" />
+ <span class="scalarValueWrapper">
+ <div class="scalarPlaceholder">
+ <span class="scalarValueInput">
+ <span class="editing">
+ <input type="checkbox" name="scalarValue" class="scalarValue" wicket:id="scalarValue" />
+ <a wicket:id="editProperty" href="#" class="edit fa fa-pencil-square-o"/>
+ </span>
+ </span>
+ </div>
<span wicket:id="feedback" class="help-block"></span>
<span wicket:id="associatedActionLinksBelow"></span>
- </div>
- <span wicket:id="associatedActionLinksRight"></span>
+ </span>
+ <span wicket:id="associatedActionLinksRight" class="associatedActionLinksRight"></span>
+ <div class="clearfix"/>
</div>
<input type="checkbox" wicket:id="scalarIfCompact" />
</div>
+ <div class="clearfix"/>
</wicket:panel>
</body>
</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index 0b92105..cfc0ace 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -28,22 +28,25 @@
<div class="form-group" wicket:id="scalarIfRegular">
<label wicket:id="scalarName" class="scalarName control-label">[Label text]</label>
<span class="scalarValueWrapper">
- <span class="entityLink">
- <div class="entityLinkSelect2Panel entityLinkComponentType">
- <div class="wrapper">
- <span class="autoCompletePlaceholder">
- <span wicket:id="entityLink">link or drop down</span>
- <span wicket:id="entityIconAndTitle">[icon and title]</span>
+ <div class="scalarPlaceholder entityLinkSelect2Panel entityLinkComponentType">
+ <span class="entityLink wrapper">
+ <span class="scalarValueInput">
+ <span class="editing">
+ <span class="autoCompletePlaceholder">
+ <span wicket:id="entityLink">link or drop down</span>
+ <span wicket:id="entityIconAndTitle">[icon and title]</span>
+ </span>
+ <span wicket:id="entityTitleIfNull">(none)</span>
+ <a wicket:id="editProperty" href="#" class="edit fa fa-pencil-square-o"/>
</span>
- <span class="clearfix"></span>
- </div>
- <span wicket:id="entityTitleIfNull">(none)</span>
- </div>
- </span>
+ </span>
+ </span>
+ </div>
<span wicket:id="feedback" class="help-block"></span>
<span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="associatedActionLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight" class="associatedActionLinksRight"></span>
+ <div class="clearfix"/>
</div>
<div wicket:id="scalarIfCompact" class="scalarIfCompact">
<div class="scalarValue">
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 1ff6bfc..dd0c68d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -17,6 +17,8 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel;
+import java.util.concurrent.Callable;
+
import org.apache.wicket.Application;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -27,6 +29,7 @@ import org.apache.wicket.request.IRequestHandler;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
@@ -70,8 +73,15 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
else {
final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(getPage());
final ActionPrompt actionPrompt = promptProvider.getActionPrompt();
- ActionPromptHeaderPanel titlePanel = new ActionPromptHeaderPanel(actionPrompt.getTitleId(),
- actionModel);
+ final ActionPromptHeaderPanel titlePanel =
+ PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
+ new Callable<ActionPromptHeaderPanel>() {
+ @Override
+ public ActionPromptHeaderPanel call() throws Exception {
+ final String titleId = actionPrompt.getTitleId();
+ return new ActionPromptHeaderPanel(titleId, actionModel);
+ }
+ });
final ActionPanel actionPanel =
(ActionPanel) getComponentFactoryRegistry().createComponent(
ComponentType.ACTION_PROMPT, actionPrompt.getContentId(), actionModel);
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html
index 3270ec5..7971e56 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html
@@ -27,14 +27,20 @@
<div class="valueChoicesSelect2Panel scalarNameAndValueComponentType">
<div class="form-group" wicket:id="scalarIfRegular">
<label wicket:id="scalarName" class="scalarName control-label">[Label text]</label>
- <div class="scalarValueWrapper">
- <div class="choicesPlaceholder">
- <input wicket:id="scalarValue" type="hidden" class="choices input-sm select2-remote" style="width: 99.8%; padding: 0"/>
+ <span class="scalarValueWrapper">
+ <div class="scalarPlaceholder">
+ <span class="scalarValueInput">
+ <span class="editing">
+ <input wicket:id="scalarValue" type="hidden" class="choices input-sm select2-remote" style="width: 99.8%; padding: 0"/>
+ <a wicket:id="editProperty" href="#" class="edit fa fa-pencil-square-o"/>
+ </span>
+ </span>
</div>
<span wicket:id="feedback" class="help-block"></span>
<span wicket:id="associatedActionLinksBelow"></span>
- </div>
- <span wicket:id="associatedActionLinksRight"></span>
+ </span>
+ <span wicket:id="associatedActionLinksRight" class="associatedActionLinksRight"></span>
+ <div class="clearfix"/>
</div>
<span wicket:id="scalarIfCompact"></span>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
index 626f843..1830f26 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
@@ -26,3 +26,8 @@
.select2-container.select2-container-disabled .select2-choices {
background-color: #ecf0f1;
}
+
+.list-inline > li {
+ padding-left: 0px;
+ padding-right: 0px;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/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 f7b9487..4d7458f 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
@@ -467,6 +467,7 @@ span .fa {
ul.additionalLinkList,
div.additionalLinkList {
+ margin-right: -10px;
padding-bottom: 10px;
}
@@ -539,8 +540,8 @@ div.label-left label.control-label {
}
div.label-top label.control-label {
- padding-left: 10px;
- padding-bottom: 4px;
+ /*padding-left: 10px;*/
+ /*padding-bottom: 4px;*/
}
div.label-none label.control-label {
@@ -564,10 +565,10 @@ div.label-left.actions-right .scalarValueWrapper {
div.label-top .scalarValueWrapper,
div.label-none .scalarValueWrapper {
- width: 99.5%;
+ /*width: 99.5%;*/
display: block;
- padding-left: 8px;
- padding-right: 20px;
+ /*padding-left: 8px;*/
+ /*padding-right: 20px;*/
}
.modal-body div.label-top .scalarValueWrapper,
@@ -680,12 +681,17 @@ div.referencePanel.scalarNameAndValueComponentType {
}
.additionalLinks.pull-right {
- margin-right: 5px;
+ /*margin-right: 5px;*/
}
.additionalLinks.pull-right div {
display: inline-block;
- margin-left: 5px;
+ /*margin-left: 5px;*/
+}
+
+.additionalLinks.pull-right div .additionalLinkListDropDown {
+ margin-left: 10px;
+ margin-right: 0px;
}
@@ -774,3 +780,18 @@ tr.headers th form input {
.propertyEditForm .additionalLinkList {
display: none;
}
+
+.choicesScalarValue {
+ width: 95%;
+ display: inline-block;
+}
+
+.associatedActionLinksRight .additionalLinkListDropDown {
+ padding-right: 10px;
+}
+
+.editing .edit {
+ padding-top: 2px;
+ float: right;
+ margin-bottom: 10px;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/5c2b07de/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 89c6a88..26ab321 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
@@ -142,13 +142,16 @@ public class EntityPage extends PageAbstract {
// the facet should always exist, in fact
// just enough to ask for the metadata.
// This will cause the current ObjectSpec to be updated as a side effect.
- final Grid grid = facet.getGrid();
-//
-// // if none, then fallback to invalidating entire cache
-// // (this is the original LayoutMetadataFromJson behaviour)
-// if(grid == null && !getDeploymentType().isProduction()) {
-// getSpecificationLoader().invalidateCacheFor(objectAdapter.getObject());
-// }
+
+ // if none, then fallback to invalidating entire cache
+ // (this is the original LayoutMetadataFromJson behaviour)
+ if(!getDeploymentType().isProduction()) {
+ getSpecificationLoader().invalidateCacheFor(objectAdapter.getObject());
+ }
+
+ // as a side-effect, this will update facets
+ final Grid unused = facet.getGrid();
+
}