ISIS-993: no longer show edit buttons for tabbed panel; sorted out a rendering issue of Blob/Clob when in tabbed view.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/45291271 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/45291271 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/45291271 Branch: refs/heads/ISIS-993 Commit: 45291271b44c9284b0598153ae7943cc5985e213 Parents: 2e8c094 Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Tue Jan 12 21:04:15 2016 +0000 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Mon Jan 25 15:06:07 2016 +0000 ---------------------------------------------------------------------- .../org/apache/isis/applib/services/jaxb/JaxbService.java | 2 +- .../services/layout/ObjectLayoutMetadataServiceDefault.java | 7 ------- .../ui/components/entity/properties/EntityPropertiesForm.java | 5 ++--- .../scalars/isisapplib/IsisBlobOrClobPanelAbstract.html | 2 +- .../scalars/isisapplib/IsisBlobOrClobPanelAbstract.java | 7 +++++-- .../apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java | 6 ++++++ 6 files changed, 15 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java ---------------------------------------------------------------------- diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java index ae0be24..450011a 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java +++ b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java @@ -111,7 +111,7 @@ public interface JaxbService { return (T) unmarshal; } catch (final JAXBException ex) { - throw new NonRecoverableException("Error unmarshalling domain object from XML; domain object class is '" + domainClass.getName() + "'", ex); + throw new NonRecoverableException("Error unmarshalling XML to class '" + domainClass.getName() + "'", ex); } } http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java index 6431486..35010c2 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/ObjectLayoutMetadataServiceDefault.java @@ -46,22 +46,15 @@ public class ObjectLayoutMetadataServiceDefault private static final Logger LOG = LoggerFactory.getLogger(ObjectLayoutMetadataServiceDefault.class); - private final Set<Class<?>> blacklisted = Sets.newConcurrentHashSet(); - @Programmatic public ObjectLayoutMetadata fromXml(Class<?> domainClass) { - if(blacklisted.contains(domainClass)) { - return null; - } - final String xml; final String resourceName = domainClass.getSimpleName() + ".layout.xml"; try { xml = resourceContentOf(domainClass, resourceName); } catch (IOException | IllegalArgumentException ex) { - blacklisted.add(domainClass); final String message = String .format( "Failed to locate file %s (relative to %s.class); ex: %s)", resourceName, domainClass.getName(), ex.getMessage()); http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java ---------------------------------------------------------------------- diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java index 31c54a1..94c191c 100644 --- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java +++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java @@ -188,11 +188,10 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements addClassForSpan(rightColumn, Hint.RIGHT.from(columnSpans)); } - // edit buttons and feedback + // edit buttons and feedback (not supported on tabbed view) final Hint leftHint = Hint.LEFT; final Column leftColumnMetaDataIfAny = leftHint.from(tabMetaDataIfAny); - final List<String> groupNames = PropUtil.propertyGroupNames(entityModel, leftHint, leftColumnMetaDataIfAny); - final boolean hasProperties = !groupNames.isEmpty(); + final boolean hasProperties = leftColumnMetaDataIfAny == null && !PropUtil.propertyGroupNames(entityModel, leftHint, leftColumnMetaDataIfAny).isEmpty(); if (hasProperties) { addButtons(leftColumn); addFeedbackGui(leftColumn); http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/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 bd5724c..d642f93 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 @@ -33,7 +33,7 @@ <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"></span> + <span class="fileName" wicket:id="fileName">[filename]</span><span> </span> </span> <span wicket:id="feedback" class="help-block"></span> <span wicket:id="associatedActionLinksBelow"></span> http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java ---------------------------------------------------------------------- diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java index 5f6ad62..3b21b46 100644 --- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java +++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java @@ -18,14 +18,14 @@ */ package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib; -import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField; - import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.List; + import javax.activation.MimeType; import javax.imageio.ImageIO; + import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -45,6 +45,7 @@ import org.apache.wicket.model.Model; import org.apache.wicket.request.resource.IResource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.isis.applib.value.Blob; import org.apache.isis.applib.value.NamedWithMimeType; import org.apache.isis.core.commons.lang.CloseableExtensions; @@ -56,6 +57,8 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract; import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup; import org.apache.isis.viewer.wicket.ui.util.Components; +import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField; + public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> extends ScalarPanelAbstract { http://git-wip-us.apache.org/repos/asf/isis/blob/45291271/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 d12a496..609be99 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 @@ -143,6 +143,12 @@ public class EntityPage extends PageAbstract { // it's sufficient to simply call reloadMetadata(). // The facet checks the ObjectLayoutMetadataService to determine if dynamic reloading is enabled. facet.reloadMetadata(); + if(facet.getMetadata() == null) { + // fallback to invalidating entire cache + if(!getDeploymentType().isProduction()) { + getSpecificationLoader().invalidateCacheFor(objectAdapter.getObject()); + } + } }