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