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/03/15 00:07:42 UTC

git commit: ISIS-363: max length of titles in tables (for wicket viewer)

Updated Branches:
  refs/heads/master 77aa56878 -> c4de8708f


ISIS-363: max length of titles in tables (for wicket viewer)

* new properties to distinguish between parented and standalone tables.
* also, tiny fix to ToDoItems, specify @Regex on description (was missing in one location).


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c4de8708
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c4de8708
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c4de8708

Branch: refs/heads/master
Commit: c4de8708f717dc44acedacd089b0deb788641269
Parents: 77aa568
Author: Dan Haywood <da...@apache.org>
Authored: Thu Mar 14 23:03:31 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Mar 14 23:03:31 2013 +0000

----------------------------------------------------------------------
 .../settings/WicketViewerSettingsDefault.java      |   23 +++++++++--
 .../wicket/model/isis/WicketViewerSettings.java    |    4 +-
 .../viewer/wicket/model/models/EntityModel.java    |   32 +++++++++------
 .../CollectionContentsAsAjaxTablePanel.java        |    7 ++-
 .../columns/ObjectAdapterPropertyColumn.java       |    2 +-
 .../columns/ObjectAdapterTitleColumn.java          |   12 ++++-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |    7 ++-
 .../ui/components/scalars/ScalarPanelAbstract.java |    2 +-
 .../widgets/entitylink/EntityLinkSelect2Panel.java |    2 +-
 .../dom/src/main/java/dom/todo/ToDoItems.java      |    2 +
 .../main/webapp/WEB-INF/viewer_wicket.properties   |    3 +-
 11 files changed, 66 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index 8dbd147..089a5b8 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -28,11 +28,26 @@ import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 @Singleton
 public class WicketViewerSettingsDefault implements WicketViewerSettings {
 
-    public int getMaxTitleLengthInTables() {
-        return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInTables", 12);
-    }
-
     IsisConfiguration getConfiguration() {
         return IsisContext.getConfiguration();
     }
+
+    @Override
+    public int getTitleLengthInStandaloneTables() {
+        return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInStandaloneTables", getMaxTitleLengthInTables());
+    }
+
+    @Override
+    public int getTitleLengthInParentedTables() {
+        return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInParentedTables", getMaxTitleLengthInTables());
+    }
+    
+    /**
+     * fallback...
+     */
+    private int getMaxTitleLengthInTables() {
+        return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInTables", 12);
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index 8855a02..7a3e557 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -22,5 +22,7 @@ package org.apache.isis.viewer.wicket.model.isis;
 
 public interface WicketViewerSettings {
 
-    public int getMaxTitleLengthInTables();
+    public int getTitleLengthInStandaloneTables();
+
+    public int getTitleLengthInParentedTables();
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/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 8cde3d4..c0f8d76 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,26 +89,32 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
 
     public enum RenderingHint {
         REGULAR,
-        COMPACT,
-        /**
-         * icon only
-         */
-        ULTRA_COMPACT;
-
-        public boolean isCompactOrUltraCompact() {
-            return isCompact() || isUltraCompact();
-        }
+        PROPERTY_COLUMN,
+        PARENTED_TITLE_COLUMN,
+        STANDALONE_TITLE_COLUMN;
 
         public boolean isRegular() {
             return this == REGULAR;
         }
 
-        public boolean isCompact() {
-            return this == COMPACT;
+        public boolean isInTablePropertyColumn() {
+            return this == PROPERTY_COLUMN;
+        }
+
+        public boolean isInTable() {
+            return isInTablePropertyColumn() || isInTableTitleColumn();
+        }
+
+        public boolean isInTableTitleColumn() {
+            return isInParentedTableTitleColumn() || isInStandaloneTableTitleColumn();
+        }
+
+        public boolean isInParentedTableTitleColumn() {
+            return this == PARENTED_TITLE_COLUMN;
         }
 
-        public boolean isUltraCompact() {
-            return this == ULTRA_COMPACT;
+        public boolean isInStandaloneTableTitleColumn() {
+            return this == STANDALONE_TITLE_COLUMN;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index b3aa8f9..4421d7a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -49,6 +49,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
 import org.apache.isis.viewer.wicket.model.common.SelectionHandler;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
+import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ColumnAbstract;
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterPropertyColumn;
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterSelectColumn;
@@ -88,7 +89,7 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
         List<ObjectAction> bulkActions = determineBulkActions();
 
         addToggleboxColumnIfRequired(columns, bulkActions);
-        addTitleColumn(columns);
+        addTitleColumn(columns, model.isParented()? RenderingHint.PARENTED_TITLE_COLUMN: RenderingHint.STANDALONE_TITLE_COLUMN);
         addPropertyColumnsIfRequired(columns);
         addSelectedButtonIfRequired(columns);
 
@@ -153,8 +154,8 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
     }
 
 
-    private static void addTitleColumn(final List<IColumn<ObjectAdapter,String>> columns) {
-        columns.add(new ObjectAdapterTitleColumn());
+    private static void addTitleColumn(final List<IColumn<ObjectAdapter,String>> columns, RenderingHint renderingHint) {
+        columns.add(new ObjectAdapterTitleColumn(renderingHint));
     }
 
     private void addPropertyColumnsIfRequired(final List<IColumn<ObjectAdapter,String>> columns) {

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
index eb303b3..74a8c3d 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
@@ -72,7 +72,7 @@ public final class ObjectAdapterPropertyColumn extends ColumnAbstract<ObjectAdap
         final PropertyMemento pm = new PropertyMemento(property);
         final ScalarModel scalarModel = model.getPropertyModel(pm);
 
-        scalarModel.setRenderingHint(RenderingHint.COMPACT);
+        scalarModel.setRenderingHint(RenderingHint.PROPERTY_COLUMN);
         scalarModel.toViewMode();
 
         final ComponentFactory componentFactory = findComponentFactory(ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/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 8cc24d4..c65ca6e 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
@@ -33,9 +33,15 @@ import org.apache.isis.viewer.wicket.ui.ComponentType;
 public class ObjectAdapterTitleColumn extends ColumnAbstract<ObjectAdapter> {
 
     private static final long serialVersionUID = 1L;
+    private final RenderingHint renderingHint;
 
-    public ObjectAdapterTitleColumn() {
-        super("Object"); // i18n
+    private static String columnName(RenderingHint renderingHint) {
+        return (renderingHint.isInParentedTableTitleColumn()? "Related ":"") + "Object";
+    }
+
+    public ObjectAdapterTitleColumn(RenderingHint renderingHint) {
+        super(columnName(renderingHint)); // i18n
+        this.renderingHint = renderingHint;
     }
 
     @Override
@@ -47,7 +53,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.ULTRA_COMPACT);
+        model.setRenderingHint(renderingHint);
         final ComponentFactory componentFactory = findComponentFactory(ComponentType.ENTITY_LINK, model);
         return componentFactory.createComponent(id, model);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/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 f10a1ed..5a0a5d9 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
@@ -115,8 +115,11 @@ public class EntityIconAndTitlePanel extends PanelAbstract<EntityModel> {
         final ObjectAdapter adapter = model.getObject();
          if (adapter != null) {
             String titleString = adapter.titleString();
-            if(model.getRenderingHint().isUltraCompact()) {
-                return abbreviated(titleString, getSettings().getMaxTitleLengthInTables());
+            if(model.getRenderingHint().isInStandaloneTableTitleColumn()) {
+                return abbreviated(titleString, getSettings().getTitleLengthInStandaloneTables());
+            }
+            if(model.getRenderingHint().isInParentedTableTitleColumn()) {
+                return abbreviated(titleString, getSettings().getTitleLengthInParentedTables());
             }
             return titleString;
         } else {

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/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 bcb6667..1075790 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
@@ -92,7 +92,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
         public abstract Where getWhere();
 
         private static Rendering renderingFor(RenderingHint renderingHint) {
-            return renderingHint.isCompactOrUltraCompact()? Rendering.COMPACT: Rendering.REGULAR;
+            return renderingHint.isInTable()? Rendering.COMPACT: Rendering.REGULAR;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/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 3ef81cd..30c1701 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
@@ -387,7 +387,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
     
     private boolean isEditableWithEitherAutoCompleteOrChoices() {
         // never doesn't apply in compact rendering contexts (ie tables)
-        if(getEntityModel().getRenderingHint().isCompactOrUltraCompact()) {
+        if(getEntityModel().getRenderingHint().isInTable()) {
             return false;
         }
         // doesn't apply if not editable, either

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
index e130d32..dd8879f 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.NotInServiceMenu;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.filter.Filter;
 import org.joda.time.LocalDate;
@@ -97,6 +98,7 @@ public class ToDoItems extends AbstractFactoryAndRepository {
     // {{ newToDo  (action)
     @MemberOrder(sequence = "3")
     public ToDoItem newToDo(
+            @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") // words, spaces and selected punctuation
             @Named("Description") String description, 
             @Named("Category") Category category,
             @Named("Due by") LocalDate dueBy) {

http://git-wip-us.apache.org/repos/asf/isis/blob/c4de8708/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index ce4d72b..b5eee57 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -26,4 +26,5 @@
 # For example, if set to 12, the title
 # "Buy milk on 15-Feb-13" will be truncated to "Buy milk ..."
 #
-isis.viewer.wicket.maxTitleLengthInTables=12
+isis.viewer.wicket.maxTitleLengthInStandaloneTables=12
+isis.viewer.wicket.maxTitleLengthInParentedTables=9