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 2012/09/11 10:01:25 UTC
svn commit: r1383280 [1/2] - in /incubator/isis/trunk/framework:
core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/
runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/...
Author: danhaywood
Date: Tue Sep 11 08:01:24 2012
New Revision: 1383280
URL: http://svn.apache.org/viewvc?rev=1383280&view=rev
Log:
ISIS-232, ISIS-266, ISIS-267
* new EntityIconAndTitle panel, to factor out commonality (ISIS-232)
* moved responsibility to looking up entity icon from cache into EntityModel (ISIS-232)
* indicate mandatory fields (ISIS-232)
* made show/hide button more discrete (ISIS-232)
* BoundedFacetAbstract fix (ISIS-266)
* Generalized the handling of Memento updating resolved object adapters (ISIS-267)
Added:
incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java
- copied, changed from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCache.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.css
- copied, changed from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.html
- copied, changed from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanelFactory.java
Removed:
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCache.java
Modified:
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/BoundedFacetAbstract.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/persistence/FrameworkSynchronizer.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java
incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java
incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java
incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentType.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCacheAccessor.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForValueMementos.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.css
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.html
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/DropDownChoiceComponentFactory.java
incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Links.java
incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageCacheClassPath.java
incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryListDefault.java
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/BoundedFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/BoundedFacetAbstract.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/BoundedFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/bounded/BoundedFacetAbstract.java Tue Sep 11 08:01:24 2012
@@ -29,6 +29,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.ValidityContext;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public abstract class BoundedFacetAbstract extends MarkerFacetAbstract implements BoundedFacet {
@@ -43,7 +44,7 @@ public abstract class BoundedFacetAbstra
/**
* Hook method for subclasses to override.
*/
- public abstract String disabledReason(ObjectAdapter no);
+ public abstract String disabledReason(ObjectAdapter objectAdapter);
@Override
public String invalidates(final ValidityContext<? extends ValidityEvent> context) {
@@ -51,7 +52,18 @@ public abstract class BoundedFacetAbstra
return null;
}
final ObjectAdapter target = context.getTarget();
- return disabledReason(target);
+ if(target == null) {
+ return null;
+ }
+
+ // ensure that the target is of the correct type
+ if(!(getFacetHolder() instanceof ObjectSpecification)) {
+ // should never be the case
+ return null;
+ }
+
+ final ObjectSpecification objectSpec = (ObjectSpecification) getFacetHolder();
+ return objectSpec == target.getSpecification()? null: "Invalid type";
}
@Override
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/persistence/FrameworkSynchronizer.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/persistence/FrameworkSynchronizer.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/persistence/FrameworkSynchronizer.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/persistence/FrameworkSynchronizer.java Tue Sep 11 08:01:24 2012
@@ -89,7 +89,7 @@ public class FrameworkSynchronizer {
}
if(!adapter.isResolved()) {
PersistorUtil.startResolving(adapter);
- PersistorUtil.endResolving(adapter);
+ PersistorUtil.toEndState(adapter);
}
adapter.setVersion(datastoreVersion);
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java Tue Sep 11 08:01:24 2012
@@ -117,7 +117,7 @@ public class AutoCollectionMapper extend
collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
rs.close();
} finally {
- PersistorUtil.endResolving(collectionAdapter);
+ PersistorUtil.toEndState(collectionAdapter);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java Tue Sep 11 08:01:24 2012
@@ -324,7 +324,7 @@ public class AutoMapper extends Abstract
*/
adapter.setVersion(versionMapping.getLock(rs));
} finally {
- PersistorUtil.endResolving(adapter);
+ PersistorUtil.toEndState(adapter);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java Tue Sep 11 08:01:24 2012
@@ -208,7 +208,7 @@ public class ForeignKeyCollectionMapper
collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
} finally {
- PersistorUtil.endResolving(collectionAdapter);
+ PersistorUtil.toEndState(collectionAdapter);
}
// TODO: Need to finalise this behaviour. At the moment, all
@@ -265,7 +265,7 @@ public class ForeignKeyCollectionMapper
}
adapter.setVersion(versionMapping.getLock(rs));
} finally {
- PersistorUtil.endResolving(adapter);
+ PersistorUtil.toEndState(adapter);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java Tue Sep 11 08:01:24 2012
@@ -126,7 +126,7 @@ public class ReversedAutoAssociationMapp
collectionFacet.init(collectionAdapter, list.toArray(new ObjectAdapter[list.size()]));
rs.close();
} finally {
- PersistorUtil.endResolving(collectionAdapter);
+ PersistorUtil.toEndState(collectionAdapter);
}
}
@@ -149,7 +149,7 @@ public class ReversedAutoAssociationMapp
object.setVersion(versionMapping.getLock(rs));
} finally {
- PersistorUtil.endResolving(object);
+ PersistorUtil.toEndState(object);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java Tue Sep 11 08:01:24 2012
@@ -178,7 +178,7 @@ public class XmlObjectStore implements O
}
adapter.setVersion(data.getVersion());
} finally {
- PersistorUtil.endResolving(adapter);
+ PersistorUtil.toEndState(adapter);
}
}
@@ -254,7 +254,7 @@ public class XmlObjectStore implements O
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collectionAdapter);
facet.init(collectionAdapter, elements);
} finally {
- PersistorUtil.endResolving(collectionAdapter);
+ PersistorUtil.toEndState(collectionAdapter);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java Tue Sep 11 08:01:24 2012
@@ -34,6 +34,7 @@ import org.apache.isis.core.commons.ensu
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.exceptions.UnknownTypeException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ResolveState;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.ParentedOid;
@@ -292,12 +293,11 @@ public class Memento implements Serializ
if (!dataIsTransient) {
try {
- PersistorUtil.startResolving(objectAdapter);
+ PersistorUtil.startResolvingOrUpdating(objectAdapter);
updateFields(objectAdapter, data);
} finally {
- PersistorUtil.endResolving(objectAdapter);
+ PersistorUtil.toEndState(objectAdapter);
}
-
} else if (objectAdapter.isTransient() && dataIsTransient) {
updateFields(objectAdapter, data);
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistorUtil.java Tue Sep 11 08:01:24 2012
@@ -21,7 +21,6 @@ package org.apache.isis.runtimes.dflt.ru
import org.apache.log4j.Logger;
-import org.apache.isis.core.commons.ensure.Assert;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ResolveState;
@@ -36,12 +35,24 @@ public class PersistorUtil {
// update resolve state
// //////////////////////////////////////////////////////////////////
- public static void startResolving(final ObjectAdapter adapter) {
- final ResolveState state = ResolveState.RESOLVING;
- if (LOG.isTraceEnabled()) {
- LOG.trace("start " + adapter + " as " + state.name());
+ public static void startResolvingOrUpdating(ObjectAdapter objectAdapter) {
+ if(objectAdapter.canTransitionToResolving()) {
+ startResolving(objectAdapter);
+ } else {
+ startUpdating(objectAdapter);
}
- adapter.changeState(state);
+ }
+
+ public static void startResolving(final ObjectAdapter adapter) {
+ changeTo(adapter, ResolveState.RESOLVING);
+ }
+
+ public static void startUpdating(final ObjectAdapter adapter) {
+ changeTo(adapter, ResolveState.UPDATING);
+ }
+
+ private static void changeTo(final ObjectAdapter adapter, final ResolveState state) {
+ changeTo("start ", adapter, state);
}
/**
@@ -49,13 +60,16 @@ public class PersistorUtil {
* as specified by the second parameter. Attempting to specify any other
* state throws a run time exception.
*/
- public static void endResolving(final ObjectAdapter adapter) {
- final ResolveState endState = adapter.getResolveState().getEndState();
- Assert.assertNotNull("end state required", endState);
+ public static void toEndState(final ObjectAdapter adapter) {
+ changeTo("end ", adapter, adapter.getResolveState().getEndState());
+ }
+
+ private static void changeTo(final String direction, final ObjectAdapter adapter, final ResolveState state) {
if (LOG.isTraceEnabled()) {
- LOG.trace("end " + adapter + " as " + endState.name());
+ LOG.trace(direction + adapter + " as " + state.name());
}
- adapter.changeState(endState);
+ adapter.changeState(state);
}
+
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java Tue Sep 11 08:01:24 2012
@@ -25,6 +25,7 @@ import java.util.Map;
import com.google.common.collect.Maps;
import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.PackageResource;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
@@ -32,6 +33,7 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -348,7 +350,38 @@ public class EntityModel extends ModelAb
toViewMode();
}
-
+
+ // //////////////////////////////////////////////////////////
+ // lookupImageResource
+ // //////////////////////////////////////////////////////////
+
+ public PackageResource lookupImageResource(final ImageResourceCache imageResourceCache) {
+ PackageResource imageResource = null;
+ try {
+ final ObjectAdapter objectAdapter = getObject();
+ ObjectSpecification typeOfSpec = objectAdapter.getSpecification();
+ final IconFacet iconFacet = typeOfSpec.getFacet(IconFacet.class);
+ if (iconFacet != null) {
+ final String iconName = iconFacet.iconName(objectAdapter);
+ imageResource = imageResourceCache.findImageResource(iconName);
+ }
+ if(imageResource != null) {
+ return imageResource;
+ }
+ typeOfSpec = getTypeOfSpecification();
+ imageResource = imageResourceCache.findImage(typeOfSpec);
+ if(imageResource != null) {
+ return imageResource;
+ }
+ return null;
+ } finally {
+ if(imageResource != null) {
+ imageResource.setCacheable(true);
+ }
+ }
+ }
+
+
// //////////////////////////////////////////////////////////
// Dependencies (from context)
// //////////////////////////////////////////////////////////
Copied: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java (from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCache.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java?p2=incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java&p1=incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCache.java&r1=1383275&r2=1383280&rev=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCache.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ImageResourceCache.java Tue Sep 11 08:01:24 2012
@@ -17,15 +17,15 @@
* under the License.
*/
-package org.apache.isis.viewer.wicket.ui.app.imagecache;
+package org.apache.isis.viewer.wicket.model.models;
import org.apache.wicket.markup.html.PackageResource;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-public interface ImageCache {
+public interface ImageResourceCache {
public PackageResource findImage(ObjectSpecification objectSpec);
- public PackageResource findImage(String imageName);
+ public PackageResource findImageResource(String imageName);
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentType.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentType.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentType.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentType.java Tue Sep 11 08:01:24 2012
@@ -57,6 +57,10 @@ public enum ComponentType {
*/
ENTITY,
/**
+ * Icon and title for a single entity.
+ */
+ ENTITY_ICON_AND_TITLE,
+ /**
* Title, icon and action list for a single entity.
*/
ENTITY_SUMMARY,
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCacheAccessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCacheAccessor.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCacheAccessor.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/imagecache/ImageCacheAccessor.java Tue Sep 11 08:01:24 2012
@@ -19,8 +19,10 @@
package org.apache.isis.viewer.wicket.ui.app.imagecache;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
+
public interface ImageCacheAccessor {
- ImageCache getImageCache();
+ ImageResourceCache getImageCache();
}
Copied: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.css (from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.css?p2=incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.css&p1=incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css&r1=1383275&r2=1383280&rev=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.css Tue Sep 11 08:01:24 2012
@@ -1,48 +1,48 @@
-/*
- * 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.
- */
-.entitySummary {
-}
-
-div.entitySummary {
- /*padding:1em;*/
-}
-
-div.entitySummary .iconAndTitle {
- float: left;
- padding:1em;
-}
-
-div.entitySummary .actions {
- float: left;
- padding:1em;
- padding-top: 1.54em;
- padding-left: 50px;
-}
-
-.entitySummary .entityImage {
-}
-
-.entitySummary .entityTitle {
- font-size: x-large;
-}
-
-div.entitySummary .clear {
- clear: both;
-}
-
+/*
+ * 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.
+ */
+.entitySummary {
+}
+
+div.entitySummary {
+ /*padding:1em;*/
+}
+
+div.entitySummary .iconAndTitle {
+ float: left;
+ padding:1em;
+}
+
+div.entitySummary .actions {
+ float: left;
+ padding:1em;
+ padding-top: 1.54em;
+ padding-left: 50px;
+}
+
+.entitySummary .entityImage {
+}
+
+.entitySummary .entityTitle {
+ font-size: x-large;
+}
+
+div.entitySummary .clear {
+ clear: both;
+}
+
Copied: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.html (from r1383275, incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.html?p2=incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.html&p1=incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html&r1=1383275&r2=1383280&rev=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.html Tue Sep 11 08:01:24 2012
@@ -1,44 +1,32 @@
-<?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>
- <body>
- <wicket:panel>
- <div class="entitySummary">
- <div class="iconAndTitle panel">
- <img wicket:id="entityImage" class="entityImage"/>
- <label wicket:id=entityTitle" class="entityTitle">[title]</label>
- </div>
- <div class="actions panel">
- <table>
- <tbody>
- <tr>
- <td>
- <span class="entityActions" wicket:id="entityActions"/>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="clear"/>
- </div>
- </wicket:panel>
- </body>
-</html>
-
+<?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>
+ <body>
+ <wicket:panel>
+ <span wicket:id="entityLinkWrapper">
+ <a href="#" wicket:id="entityLink">
+ <img wicket:id="entityImage" class="entityImage"/>
+ <span wicket:id="entityTitle" class="entityTitle">[title]</span>
+ </a>
+ </span>
+ </wicket:panel>
+ </body>
+</html>
+
Added: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.java?rev=1383280&view=auto
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.java (added)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanel.java Tue Sep 11 08:01:24 2012
@@ -0,0 +1,146 @@
+/*
+ * 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.entity.blocks.icontitle;
+
+import com.google.inject.Inject;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.PackageResource;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.AbstractLink;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
+import org.apache.isis.viewer.wicket.ui.components.entity.blocks.action.EntityActionLinkFactory;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.ui.pages.PageType;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.isis.viewer.wicket.ui.util.Links;
+
+/**
+ * {@link PanelAbstract Panel} representing the icon and title of an entity,
+ * as per the provided {@link EntityModel}.
+ */
+public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final String ID_ENTITY_LINK_WRAPPER = "entityLinkWrapper";
+ private static final String ID_ENTITY_LINK = "entityLink";
+ private static final String ID_ENTITY_TITLE = "entityTitle";
+ private static final String ID_ENTITY_ICON = "entityImage";
+
+
+ private ImageResourceCache imageCache;
+
+ private Label label;
+ private Image image;
+
+ public EntityIconAndTitlePanel(final String id, final EntityModel entityModel) {
+ super(id, entityModel);
+ }
+
+ /**
+ * For the {@link EntityActionLinkFactory}.
+ */
+ public EntityModel getEntityModel() {
+ return getModel();
+ }
+
+ @Override
+ protected void onBeforeRender() {
+ buildGui();
+ super.onBeforeRender();
+ }
+
+ private void buildGui() {
+ addOrReplaceLinkWrapper();
+ }
+
+ private void addOrReplaceLinkWrapper() {
+ final WebMarkupContainer entityLinkWrapper = addOrReplaceLinkWrapper(getModel());
+ addOrReplace(entityLinkWrapper);
+ }
+
+ private WebMarkupContainer addOrReplaceLinkWrapper(final EntityModel entityModel) {
+ final ObjectAdapter adapter = entityModel.getObject();
+
+ final PageParameters pageParameters = EntityModel.createPageParameters(adapter);
+ final Class<? extends Page> pageClass = getPageClassRegistry().getPageClass(PageType.ENTITY);
+ final AbstractLink link = newLink(ID_ENTITY_LINK, pageClass, pageParameters);
+
+ label = new Label(ID_ENTITY_TITLE, determineTitle());
+ link.add(label);
+ final PackageResource imageResource = entityModel.lookupImageResource(getImageCache());
+
+ if (imageResource != null) {
+ image = new Image(ID_ENTITY_ICON, imageResource);
+ link.addOrReplace(image);
+ } else {
+ permanentlyHide(ID_ENTITY_ICON);
+ }
+
+
+ final WebMarkupContainer entityLinkWrapper = new WebMarkupContainer(ID_ENTITY_LINK_WRAPPER);
+ entityLinkWrapper.addOrReplace(link);
+ return entityLinkWrapper;
+ }
+
+ private String determineTitle() {
+ final ObjectAdapter adapter = getModel().getObject();
+ // TODO: i18n
+ return adapter != null ? adapter.titleString() : "(no object)";
+ }
+
+ private AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
+ return Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
+ }
+
+
+ // ///////////////////////////////////////////////////////////////////
+ // Convenience
+ // ///////////////////////////////////////////////////////////////////
+
+ protected PageClassRegistry getPageClassRegistry() {
+ final PageClassRegistryAccessor pcra = (PageClassRegistryAccessor) getApplication();
+ return pcra.getPageClassRegistry();
+ }
+
+
+ // ///////////////////////////////////////////////
+ // Dependency Injection
+ // ///////////////////////////////////////////////
+
+ protected ImageResourceCache getImageCache() {
+ return imageCache;
+ }
+
+ @Inject
+ public void setImageCache(final ImageResourceCache imageCache) {
+ this.imageCache = imageCache;
+ }
+
+}
Added: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanelFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanelFactory.java?rev=1383280&view=auto
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanelFactory.java (added)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/icontitle/EntityIconAndTitlePanelFactory.java Tue Sep 11 08:01:24 2012
@@ -0,0 +1,46 @@
+/*
+ * 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.entity.blocks.icontitle;
+
+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 EntityIconAndTitlePanel}.
+ */
+public class EntityIconAndTitlePanelFactory extends EntityComponentFactoryAbstract {
+
+ private static final long serialVersionUID = 1L;
+
+ public EntityIconAndTitlePanelFactory() {
+ super(ComponentType.ENTITY_ICON_AND_TITLE);
+ }
+
+ @Override
+ public Component createComponent(final String id, final IModel<?> model) {
+ final EntityModel entityModel = (EntityModel) model;
+ return new EntityIconAndTitlePanel(id, entityModel);
+ }
+}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.css Tue Sep 11 08:01:24 2012
@@ -31,11 +31,14 @@ div.entitySummary .iconAndTitle {
div.entitySummary .actions {
float: left;
padding:1em;
- padding-top: 1.54em;
+
+ padding-top: 1.8em;
padding-left: 50px;
}
.entitySummary .entityImage {
+ width: 32px;
+ height: 32px;
}
.entitySummary .entityTitle {
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.html Tue Sep 11 08:01:24 2012
@@ -22,8 +22,7 @@
<wicket:panel>
<div class="entitySummary">
<div class="iconAndTitle panel">
- <img wicket:id="entityImage" class="entityImage"/>
- <label wicket:id=entityTitle" class="entityTitle">[title]</label>
+ <span wicket:id="entityIconAndTitle">[icon and title]</span>
</div>
<div class="actions panel">
<table>
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/blocks/summary/EntitySummaryPanel.java Tue Sep 11 08:01:24 2012
@@ -23,26 +23,35 @@ import java.util.List;
import com.google.inject.Inject;
+import org.apache.wicket.Component;
+import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.PackageResource;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer.Contributed;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
+import org.apache.isis.viewer.wicket.ui.ComponentFactory;
+import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.actions.ActionInvokeHandler;
import org.apache.isis.viewer.wicket.ui.components.entity.blocks.action.EntityActionLinkFactory;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.ui.pages.PageType;
import org.apache.isis.viewer.wicket.ui.pages.action.ActionPage;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.viewer.wicket.ui.util.Links;
/**
* {@link PanelAbstract Panel} representing the summary details (title, icon and
@@ -52,13 +61,11 @@ public class EntitySummaryPanel extends
private static final long serialVersionUID = 1L;
- private static final String ID_ENTITY_TITLE = "entityTitle";
- private static final String ID_ENTITY_IMAGE = "entityImage";
private static final String ID_ENTITY_ACTIONS = "entityActions";
private final EntityActionLinkFactory linkFactory;
- private ImageCache imageCache;
+ private ImageResourceCache imageCache;
public EntitySummaryPanel(final String id, final EntityModel entityModel) {
super(id, entityModel);
@@ -79,47 +86,17 @@ public class EntitySummaryPanel extends
}
private void buildGui() {
- addOrReplaceTitleAndImage();
+ addOrReplaceIconAndTitle();
buildEntityActionsGui();
}
- private void addOrReplaceTitleAndImage() {
- final String titleString = determineTitle();
- addOrReplace(new Label(ID_ENTITY_TITLE, titleString));
- addOrReplaceImage();
- }
-
- private String determineTitle() {
- final ObjectAdapter adapter = getModel().getObject();
- final String titleString = adapter != null ? adapter.titleString() : "(no object)"; // TODO:
- // i18n
- return titleString;
- }
-
- private void addOrReplaceImage() {
- final ObjectAdapter adapter = getModel().getObject();
- ObjectSpecification typeOfSpec;
- PackageResource imageResource = null;
- if (adapter != null) {
- typeOfSpec = adapter.getSpecification();
- final IconFacet iconFacet = typeOfSpec.getFacet(IconFacet.class);
- if (iconFacet != null) {
- final String iconName = iconFacet.iconName(adapter);
- imageResource = getImageCache().findImage(iconName);
- }
- }
- if (imageResource == null) {
- typeOfSpec = getModel().getTypeOfSpecification();
- imageResource = getImageCache().findImage(typeOfSpec);
- }
-
- if (imageResource != null) {
- addOrReplace(new Image(ID_ENTITY_IMAGE, imageResource));
- } else {
- permanentlyHide(ID_ENTITY_IMAGE);
- }
+ private void addOrReplaceIconAndTitle() {
+ final ComponentFactory componentFactory = getComponentFactoryRegistry().findComponentFactory(ComponentType.ENTITY_ICON_AND_TITLE, getEntityModel());
+ final Component component = componentFactory.createComponent(getEntityModel());
+ addOrReplace(component);
}
+
private void buildEntityActionsGui() {
final EntityModel model = getModel();
final ObjectAdapter adapter = model.getObject();
@@ -142,16 +119,27 @@ public class EntitySummaryPanel extends
setResponsePage(new ActionPage(actionModel));
}
+
+ // ///////////////////////////////////////////////////////////////////
+ // Convenience
+ // ///////////////////////////////////////////////////////////////////
+
+ protected PageClassRegistry getPageClassRegistry() {
+ final PageClassRegistryAccessor pcra = (PageClassRegistryAccessor) getApplication();
+ return pcra.getPageClassRegistry();
+ }
+
+
// ///////////////////////////////////////////////
// Dependency Injection
// ///////////////////////////////////////////////
- protected ImageCache getImageCache() {
+ protected ImageResourceCache getImageCache() {
return imageCache;
}
@Inject
- public void setImageCache(final ImageCache imageCache) {
+ public void setImageCache(final ImageResourceCache imageCache) {
this.imageCache = imageCache;
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java Tue Sep 11 08:01:24 2012
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.ui
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
+import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
import org.apache.wicket.markup.html.form.FormComponentLabel;
@@ -35,6 +36,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facets.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
* Adapter for {@link ScalarPanelAbstract scalar panel}s that are implemented
@@ -70,6 +72,9 @@ public abstract class ScalarPanelTextFie
final FormComponentLabel labelIfRegular = createFormComponentLabel();
addOrReplace(labelIfRegular);
+ if(getModel().isRequired()) {
+ labelIfRegular.add(new CssClassAppender("mandatory"));
+ }
addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, textField));
return labelIfRegular;
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java Tue Sep 11 08:01:24 2012
@@ -58,21 +58,21 @@ public class ReferencePanel extends Scal
protected void onBeforeRenderWhenEnabled() {
super.onBeforeRenderWhenEnabled();
entityLink.setEnabled(true);
- entityLink.syncFindUsingVisibility();
+ entityLink.syncFindUsingAndEntityDetailsLinkVisibility();
}
@Override
protected void onBeforeRenderWhenViewMode() {
super.onBeforeRenderWhenViewMode();
entityLink.setEnabled(false);
- entityLink.syncFindUsingVisibility();
+ entityLink.syncFindUsingAndEntityDetailsLinkVisibility();
}
@Override
protected void onBeforeRenderWhenDisabled(final String disableReason) {
super.onBeforeRenderWhenDisabled(disableReason);
entityLink.setEnabled(false);
- entityLink.syncFindUsingVisibility();
+ entityLink.syncFindUsingAndEntityDetailsLinkVisibility();
}
@Override
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java Tue Sep 11 08:01:24 2012
@@ -63,7 +63,7 @@ public class DropDownChoicesForObjectAda
@Override
protected boolean wantOnSelectionChangedNotifications() {
- return true;
+ return false;//true;
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForValueMementos.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForValueMementos.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForValueMementos.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForValueMementos.java Tue Sep 11 08:01:24 2012
@@ -58,6 +58,6 @@ public class DropDownChoicesForValueMeme
@Override
protected boolean wantOnSelectionChangedNotifications() {
- return false;// true;
+ return false;
}
}
\ No newline at end of file
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.css
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.css?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.css (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.css Tue Sep 11 08:01:24 2012
@@ -16,9 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
+.entityLink .entityImage {
+ width: 16px;
+ height: 16px;
+}
+
.entityLink table.findUsing {
- display: inline;
- float: right;
+ display: block;
+ font-size: smaller;
}
a.entityDetailsLink {
@@ -27,21 +32,27 @@ a.entityDetailsLink {
border: 1px #00477F solid;
white-space:nowrap;
margin:0em;
- padding: 1px;
- padding-right: 1.6em;
- padding-left: 0.4em;
+ margin-left: 10px;
+ padding: 0px;
+ padding-right: 3px;
+ padding-left: 3px;
font-weight: normal;
cursor:default;
color: #00477F;
background-color: #EEEEEE;
text-decoration:none;
-/* -moz-border-radius: 6px;
+ font-size: smaller;
+ font-family: monospace;
+ /*
+ -moz-border-radius: 6px;
-webkit-border-radius: 6px;
- border-radius: 6px; */
+ border-radius: 6px;
+ */
}
a.entityDetailsLink:hover {
color: #D7E7F5;
background-color: #407098;
}
+
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.html
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.html?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.html (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.html Tue Sep 11 08:01:24 2012
@@ -33,13 +33,9 @@
<input type="text" wicket:id="entityOid"/>
<select wicket:id="choices"/>
- <span wicket:id="entityLinkWrapper">
- <a href="#" wicket:id="entityLink">
- <img wicket:id="entityImage" class="entityImage" width="16" height="16"/>
- <span wicket:id="entityTitle">[property or parameter value]</span>
- </a>
- </span>
- <a href="#" wicket:id="entityDetailsLink" class="entityDetailsLink"><span wicket:id="entityDetailsLinkLabel">show/hide</span></a>
+ <span wicket:id="entityIconAndTitle">[icon and title]</span>
+
+ <a href="#" wicket:id="entityDetailsLink" class="entityDetailsLink"><span wicket:id="entityDetailsLinkLabel">[+/-]</span></a>
<span wicket:id="entityTitleNull">(null)</span>
<table wicket:id="findUsing" class="findUsing">
<tbody>
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLink.java Tue Sep 11 08:01:24 2012
@@ -23,25 +23,18 @@ import java.util.List;
import com.google.common.collect.Lists;
-import org.apache.wicket.Page;
-import org.apache.wicket.PageParameters;
+import org.apache.wicket.Component;
import org.apache.wicket.extensions.yui.calendar.DateField;
-import org.apache.wicket.markup.html.PackageResource;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.FormComponentPanel;
-import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -53,6 +46,7 @@ import org.apache.isis.viewer.wicket.mod
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.util.Generics;
import org.apache.isis.viewer.wicket.model.util.Mementos;
+import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.actions.ActionInvokeHandler;
import org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel;
@@ -62,10 +56,7 @@ import org.apache.isis.viewer.wicket.ui.
import org.apache.isis.viewer.wicket.ui.components.widgets.dropdownchoices.DropDownChoicesForObjectAdapterMementos;
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.CancelHintRequired;
import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormComponentPanelAbstract;
-import org.apache.isis.viewer.wicket.ui.pages.PageType;
-import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.Links;
/**
* {@link FormComponentPanel} representing a reference to an entity: a link and
@@ -76,11 +67,8 @@ public class EntityLink extends FormComp
private static final long serialVersionUID = 1L;
private static final String ID_ENTITY_LINK_WRAPPER = "entityLinkWrapper";
- private static final String ID_ENTITY_LINK = "entityLink";
private static final String ID_ENTITY_OID = "entityOid";
- private static final String ID_ENTITY_TITLE = "entityTitle";
private static final String ID_ENTITY_TITLE_NULL = "entityTitleNull";
- private static final String ID_ENTITY_ICON = "entityImage";
private static final String ID_CHOICES = "choices";
private static final String ID_FIND_USING = "findUsing";
private static final String ID_ENTITY_DETAILS_LINK = "entityDetailsLink";
@@ -90,13 +78,15 @@ public class EntityLink extends FormComp
private final FindUsingLinkFactory linkFactory;
private TextField<ObjectAdapterMemento> entityOidField;
+
private WebMarkupContainer findUsing;
+ private Link<String> entityDetailsLink;
+
private PanelAbstract<?> actionFindUsingComponent;
- private Image image;
- private Label label;
private ObjectAdapterMemento pending;
+
public EntityLink(final String id, final EntityModel entityModel) {
super(id, entityModel);
setType(ObjectAdapter.class);
@@ -115,6 +105,7 @@ public class EntityLink extends FormComp
addOrReplaceOidField();
rebuildFindUsingMenu();
syncWithInput();
+
}
private void addOrReplaceOidField() {
@@ -174,7 +165,7 @@ public class EntityLink extends FormComp
/**
* Must be called after {@link #setEnabled(boolean)} to ensure that the
- * <tt>findUsing</tt> button is shown/not shown as required.
+ * <tt>findUsing</tt> button and the <tt>entityDetailsLink</tt> are shown/not shown as required.
*
* <p>
* REVIEW: there ought to be a better way to do this. I'd hoped to override
@@ -182,8 +173,10 @@ public class EntityLink extends FormComp
* seem to be anyway to install a listener. One option might be to move it
* to {@link #onBeforeRender()} ?
*/
- public void syncFindUsingVisibility() {
- findUsing.setVisible(isEnabled() && !getEntityModel().isViewMode());
+ public void syncFindUsingAndEntityDetailsLinkVisibility() {
+ final boolean visibility = isEnabled() && !getEntityModel().isViewMode();
+ findUsing.setVisible(visibility);
+ entityDetailsLink.setVisible(visibility);
}
/**
@@ -198,11 +191,8 @@ public class EntityLink extends FormComp
}
/**
- * Ensures that the link is always enabled and traversable, even if (in the
- * context of an entity property form) the entity model is in view mode.
- *
- * <p>
- * A slight hack, but works...
+ * Always enabled; but subcomponents we disable/hide if required based on the
+ * {@link EntityModel#isEditMode() state} of the {@link EntityModel}.
*/
@Override
public boolean isEnabled() {
@@ -236,7 +226,9 @@ public class EntityLink extends FormComp
// choices drop-down
final IModel<ObjectAdapterMemento> modelObject = entityOidField.getModel();
- addOrReplace(new DropDownChoicesForObjectAdapterMementos(ID_CHOICES, modelObject, choicesMementos));
+ final DropDownChoicesForObjectAdapterMementos dropDownChoices = new DropDownChoicesForObjectAdapterMementos(ID_CHOICES, modelObject, choicesMementos);
+ addOrReplace(dropDownChoices);
+ dropDownChoices.setEnabled(getEntityModel().isEditMode());
// no need for link, since can see in drop-down
permanentlyHide(ID_ENTITY_LINK_WRAPPER);
@@ -260,25 +252,17 @@ public class EntityLink extends FormComp
syncEntityDetailsButtonWithInput(adapter);
syncEntityDetailsWithInput(adapter);
- syncFindUsingVisibility();
+ syncFindUsingAndEntityDetailsLinkVisibility();
}
private void syncLinkWithInput(final ObjectAdapter adapter) {
if (adapter != null) {
- addOrReplaceLink(adapter);
+ addOrReplaceIconAndTitle();
} else {
permanentlyHide(ID_ENTITY_LINK_WRAPPER);
}
}
- private void syncEntityIconWithInput(final ObjectAdapter adapter) {
- if (adapter != null) {
- addOrReplaceImage(adapter);
- } else {
- permanentlyHide(ID_ENTITY_ICON);
- }
- }
-
private void syncEntityTitleNullWithInput(final ObjectAdapter adapter) {
if (adapter != null) {
permanentlyHide(ID_ENTITY_TITLE_NULL);
@@ -288,8 +272,8 @@ public class EntityLink extends FormComp
}
private void syncEntityDetailsButtonWithInput(final ObjectAdapter adapter) {
- if (adapter != null && getEntityModel().isEditMode()) {
- final Link<String> link = new Link<String>(ID_ENTITY_DETAILS_LINK) {
+ if (adapter != null) {
+ entityDetailsLink = new Link<String>(ID_ENTITY_DETAILS_LINK) {
private static final long serialVersionUID = 1L;
@Override
@@ -297,15 +281,15 @@ public class EntityLink extends FormComp
getEntityModel().toggleDetails();
}
};
- addOrReplace(link);
- link.add(new Label(ID_ENTITY_DETAILS_LINK_LABEL, buildEntityDetailsModel()));
+ addOrReplace(entityDetailsLink);
+ entityDetailsLink.add(new Label(ID_ENTITY_DETAILS_LINK_LABEL, buildEntityDetailsModel()));
} else {
permanentlyHide(ID_ENTITY_DETAILS_LINK);
}
}
private Model<String> buildEntityDetailsModel() {
- final String label = getEntityModel().isEntityDetailsVisible() ? "hide" : "show";
+ final String label = getEntityModel().isEntityDetailsVisible() ? "-" : "+";
return Model.of(label);
}
@@ -333,72 +317,12 @@ public class EntityLink extends FormComp
return null;
}
- private void addOrReplaceImage(final ObjectAdapter adapter) {
- final PackageResource imageResource = determineImageResource(adapter);
-
- if (imageResource != null) {
- image = new Image(ID_ENTITY_ICON, imageResource);
- addOrReplace(image);
- } else {
- permanentlyHide(ID_ENTITY_ICON);
- }
+ private void addOrReplaceIconAndTitle() {
+ final ComponentFactory componentFactory = getComponentFactoryRegistry().findComponentFactory(ComponentType.ENTITY_ICON_AND_TITLE, getEntityModel());
+ final Component component = componentFactory.createComponent(getEntityModel());
+ addOrReplace(component);
}
- private PackageResource determineImageResource(final ObjectAdapter adapter) {
- ObjectSpecification typeOfSpec;
- PackageResource imageResource = null;
- if (adapter != null) {
- typeOfSpec = adapter.getSpecification();
- final IconFacet iconFacet = typeOfSpec.getFacet(IconFacet.class);
- if (iconFacet != null) {
- final String iconName = iconFacet.iconName(adapter);
- imageResource = getImageCache().findImage(iconName);
- }
- }
- if (imageResource == null) {
- typeOfSpec = getEntityModel().getTypeOfSpecification();
- imageResource = getImageCache().findImage(typeOfSpec);
- }
- return imageResource;
- }
-
- private void addOrReplaceLink(final ObjectAdapter adapter) {
-
- final PageParameters pageParameters = EntityModel.createPageParameters(adapter);
- final Class<? extends Page> pageClass = getPageClassRegistry().getPageClass(PageType.ENTITY);
-
- final AbstractLink link = newLink(ID_ENTITY_LINK, pageClass, pageParameters);
- label = new Label(ID_ENTITY_TITLE, adapter.titleString());
- link.add(label);
-
-
-// if (adapter != null) {
- final PackageResource imageResource = determineImageResource(adapter);
-
- if (imageResource != null) {
- image = new Image(ID_ENTITY_ICON, imageResource);
- link.addOrReplace(image);
- } else {
- permanentlyHide(ID_ENTITY_ICON);
- }
-// } else {
-// permanentlyHide(ID_ENTITY_ICON);
-// }
-
-
-
-
- final WebMarkupContainer entityLinkWrapper = new WebMarkupContainer(ID_ENTITY_LINK_WRAPPER);
- entityLinkWrapper.addOrReplace(link);
-
- entityLinkWrapper.setEnabled(true);
-
- addOrReplace(entityLinkWrapper);
- }
-
- protected AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
- return Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
- }
private static List<ObjectAction> findServiceActionsFor(final ObjectSpecification scalarTypeSpec) {
final List<ObjectAction> actionList = Lists.newArrayList();
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java Tue Sep 11 08:01:24 2012
@@ -35,8 +35,8 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.Persistor;
import org.apache.isis.viewer.wicket.model.isis.PersistenceSessionProvider;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCacheAccessor;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
@@ -127,7 +127,7 @@ public abstract class FormComponentPanel
return pcra.getPageClassRegistry();
}
- protected ImageCache getImageCache() {
+ protected ImageResourceCache getImageCache() {
final ImageCacheAccessor ica = (ImageCacheAccessor) getApplication();
return ica.getImageCache();
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css Tue Sep 11 08:01:24 2012
@@ -309,3 +309,7 @@ div.scalarPanel {
clear: both;
display: block;
}
+
+.mandatory {
+ font-weight: bold;
+}
\ No newline at end of file
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/DropDownChoiceComponentFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/DropDownChoiceComponentFactory.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/DropDownChoiceComponentFactory.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/DropDownChoiceComponentFactory.java Tue Sep 11 08:01:24 2012
@@ -16,10 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-/**
- *
- */
package org.apache.isis.viewer.wicket.ui.selector;
import java.util.List;
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Links.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Links.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Links.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Links.java Tue Sep 11 08:01:24 2012
@@ -33,7 +33,7 @@ public final class Links {
}
public static <T extends Page> AbstractLink newBookmarkablePageLink(final String linkId, final PageParameters pageParameters, final Class<T> pageClass) {
- return new BookmarkablePageLink<T>(linkId, pageClass, pageParameters);
+ return new BookmarkablePageLink<T>(linkId, pageClass, pageParameters);
}
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java Tue Sep 11 08:01:24 2012
@@ -65,9 +65,9 @@ import org.apache.isis.runtimes.dflt.run
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.webapp.WebAppConstants;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.app.cssrenderer.ApplicationCssRenderer;
-import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCacheAccessor;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryList;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
@@ -371,7 +371,7 @@ public class IsisWicketApplication exten
// /////////////////////////////////////////////////
@Override
- public ImageCache getImageCache() {
+ public ImageResourceCache getImageCache() {
return imageCache;
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketModule.java Tue Sep 11 08:01:24 2012
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.vi
import com.google.inject.AbstractModule;
-import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryList;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
@@ -40,7 +40,7 @@ public class IsisWicketModule extends Ab
bind(PageClassRegistry.class).to(PageClassRegistryDefault.class);
bind(PageClassList.class).to(PageClassListDefault.class);
bind(ComponentFactoryList.class).to(ComponentFactoryListDefault.class);
- bind(ImageCache.class).to(ImageCacheClassPath.class);
+ bind(ImageResourceCache.class).to(ImageCacheClassPath.class);
bindConstant().annotatedWith(ApplicationCssUrl.class).to("application.css");
}
Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java?rev=1383280&r1=1383279&r2=1383280&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java Tue Sep 11 08:01:24 2012
@@ -59,8 +59,8 @@ import org.apache.isis.runtimes.dflt.run
import org.apache.isis.runtimes.dflt.runtime.system.IsisSystem;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.ui.app.cssrenderer.ApplicationCssRenderer;
-import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCacheAccessor;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
@@ -314,7 +314,7 @@ public class IsisWicketUnsecuredApplicat
// /////////////////////////////////////////////////
@Override
- public ImageCache getImageCache() {
+ public ImageResourceCache getImageCache() {
return imageCache;
}