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 2013/02/14 14:44:46 UTC
[2/3] git commit: ISIS-335: abbreviate title in collections.
ISIS-335: abbreviate title in collections.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b0e5a608
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b0e5a608
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b0e5a608
Branch: refs/heads/master
Commit: b0e5a608d58e36e181b41192bc08b7920f4bef37
Parents: 0de1eb4
Author: Dan Haywood <da...@apache.org>
Authored: Thu Feb 14 13:22:46 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Feb 14 13:22:46 2013 +0000
----------------------------------------------------------------------
.../viewer/wicket/model/models/EntityModel.java | 22 ++++++-
.../columns/ObjectAdapterTitleColumn.java | 4 +-
.../entity/icontitle/EntityIconAndTitlePanel.java | 51 +++++++++------
.../ui/components/scalars/ScalarPanelAbstract.java | 2 +-
.../widgets/entitylink/EntityLinkSelect2Panel.java | 4 +-
5 files changed, 58 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b0e5a608/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 5d4103a..8a3b3c9 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -89,7 +89,27 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
public enum RenderingHint {
REGULAR,
- COMPACT
+ COMPACT,
+ /**
+ * icon only
+ */
+ ULTRA_COMPACT;
+
+ public boolean isCompactOrUltraCompact() {
+ return isCompact() || isUltraCompact();
+ }
+
+ public boolean isRegular() {
+ return this == REGULAR;
+ }
+
+ public boolean isCompact() {
+ return this == COMPACT;
+ }
+
+ public boolean isUltraCompact() {
+ return this == ULTRA_COMPACT;
+ }
}
public enum Mode {
http://git-wip-us.apache.org/repos/asf/isis/blob/b0e5a608/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
index 877e918..8cc24d4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
@@ -35,7 +35,7 @@ public class ObjectAdapterTitleColumn extends ColumnAbstract<ObjectAdapter> {
private static final long serialVersionUID = 1L;
public ObjectAdapterTitleColumn() {
- super("Title"); // i18n
+ super("Object"); // i18n
}
@Override
@@ -47,7 +47,7 @@ public class ObjectAdapterTitleColumn extends ColumnAbstract<ObjectAdapter> {
private Component createComponent(final String id, final IModel<ObjectAdapter> rowModel) {
final ObjectAdapter adapter = rowModel.getObject();
final EntityModel model = new EntityModel(adapter);
- model.setRenderingHint(RenderingHint.COMPACT);
+ model.setRenderingHint(RenderingHint.ULTRA_COMPACT);
final ComponentFactory componentFactory = findComponentFactory(ComponentType.ENTITY_LINK, model);
return componentFactory.createComponent(id, model);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b0e5a608/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index cd6bed2..29fad02 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -19,22 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.entity.icontitle;
-import java.io.InputStream;
-
-import images.Images;
-
-import com.google.inject.Inject;
-
-import org.apache.wicket.Page;
-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.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.request.resource.PackageResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-
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;
@@ -44,6 +28,15 @@ 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.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Links;
+import org.apache.wicket.Page;
+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.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ResourceReference;
+
+import com.google.inject.Inject;
/**
* {@link PanelAbstract Panel} representing the icon and title of an entity,
@@ -51,6 +44,7 @@ import org.apache.isis.viewer.wicket.ui.util.Links;
*/
public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
+
private static final long serialVersionUID = 1L;
private static final String ID_ENTITY_LINK_WRAPPER = "entityLinkWrapper";
@@ -58,6 +52,8 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
private static final String ID_ENTITY_TITLE = "entityTitle";
private static final String ID_ENTITY_ICON = "entityImage";
+ private static final int TITLE_MAX_LEN_IF_ULTRA_COMPACT = 12;
+
private Label label;
private Image image;
@@ -94,7 +90,8 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
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());
+ String title = determineTitle();
+ label = new Label(ID_ENTITY_TITLE, title);
link.add(label);
final ResourceReference imageResource = imageCache.resourceReferenceFor(adapter);
@@ -113,10 +110,24 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
}
private String determineTitle() {
- final ObjectAdapter adapter = getModel().getObject();
- // TODO: i18n
- return adapter != null ? adapter.titleString() : "(no object)";
+ EntityModel model = getModel();
+ final ObjectAdapter adapter = model.getObject();
+ if (adapter != null) {
+ String titleString = adapter.titleString();
+ if(model.getRenderingHint().isUltraCompact()) {
+ //return "";
+ return abbreviated(titleString, TITLE_MAX_LEN_IF_ULTRA_COMPACT);
+ }
+ return titleString;
+ } else {
+ return "(no object)";
+ }
}
+
+ private static String abbreviated(final String str, final int maxLength) {
+ return str.length() < maxLength ? str : str.substring(0, maxLength - 3) + "...";
+ }
+
private AbstractLink newLink(final String linkId, final Class<? extends Page> pageClass, final PageParameters pageParameters) {
return Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
http://git-wip-us.apache.org/repos/asf/isis/blob/b0e5a608/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 84b770b..7f70813 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -91,7 +91,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
public abstract Where getWhere();
private static Rendering renderingFor(RenderingHint renderingHint) {
- return renderingHint==RenderingHint.COMPACT? Rendering.COMPACT: Rendering.REGULAR;
+ return renderingHint.isCompactOrUltraCompact()? Rendering.COMPACT: Rendering.REGULAR;
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b0e5a608/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
index a239df0..6d2aa62 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
@@ -333,12 +333,14 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
private void addOrReplaceIconAndTitle(ObjectAdapter pendingOrCurrentAdapter) {
final EntityModel entityModelForLink = new EntityModel(pendingOrCurrentAdapter);
+ entityModelForLink.setRenderingHint(getEntityModel().getRenderingHint());
final ComponentFactory componentFactory = getComponentFactoryRegistry().findComponentFactory(ComponentType.ENTITY_ICON_AND_TITLE, entityModelForLink);
final Component component = componentFactory.createComponent(entityModelForLink);
addOrReplace(component);
}
+ @SuppressWarnings("unused")
private static List<ObjectAction> findServiceActionsFor(final ObjectSpecification scalarTypeSpec) {
final List<ObjectAction> actionList = Lists.newArrayList();
addServiceActionsFor(scalarTypeSpec, ActionType.USER, actionList);
@@ -381,7 +383,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
private boolean isEditableWithEitherAutoCompleteOrChoices() {
// never doesn't apply in compact rendering contexts (ie tables)
- if(getEntityModel().getRenderingHint() == RenderingHint.COMPACT) {
+ if(getEntityModel().getRenderingHint().isCompactOrUltraCompact()) {
return false;
}
// doesn't apply if not editable, either