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 2017/12/29 17:41:32 UTC
[isis] 01/02: ISIS-1787: adds 'cssPrefix' configuration property to
append to the CSS class for table columns.
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit da34abfc55a41b8bbbd3fbabfc811fa90b2e25b4
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Dec 29 17:35:08 2017 +0000
ISIS-1787: adds 'cssPrefix' configuration property to append to the CSS class for table columns.
For action link, which also used to add a similar CSS class, just remove the CSS class... there are plenty of other
---
.../asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc | 12 ++++++++++--
.../org/apache/isis/core/commons/lang/StringExtensions.java | 3 ---
.../wicket/viewer/settings/WicketViewerSettingsDefault.java | 5 +++++
.../isis/viewer/wicket/model/isis/WicketViewerSettings.java | 6 ++++++
.../actionmenu/entityactions/AdditionalLinksPanel.java | 5 +----
.../ajaxtable/CollectionContentsAsAjaxTablePanel.java | 5 ++++-
.../ajaxtable/columns/ObjectAdapterPropertyColumn.java | 12 ++++++++++--
.../domainapp/application/manifest/viewer_wicket.properties | 10 ++++++++++
8 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index 254ed01..aa4075d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -57,11 +57,19 @@ If you prefer you can place all configuration properties into `WEB-INF/isis.prop
| Whether to show chooser for Breadcrumbs (bottom-left in the Wicket viewer)
|`isis.viewer.wicket.` +
+`cssPrefix`
+| string +
+(`isis`)
+| (`1.16.0-SNAPSHOT`) Table columns have CSS classes identifying the property; this allows individual table columns to targeted and styled.
+This property defines a prefix to avoid clashes between property names and bootstrap# CSS classes.
+
+For example, if set to "isis" then the CSS class added for an "active" property will be "isis-active" (otherwise,it would be simply have been "active").
+
+|`isis.viewer.wicket.` +
`datePattern`
| date format +
(`dd-MM-yyyy`)
-|The `SimpleDateFormat` used to render dates. For the date picker (which uses `moment.js` library), this is converted
-dynamically into the corresponding `moment.js` format.
+|The `SimpleDateFormat` used to render dates. For the date picker (which uses `moment.js` library), this is converted dynamically into the corresponding `moment.js` format.
|`isis.viewer.wicket.` +
`dateTimePattern`
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
index cf7f978..6393b97 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
@@ -604,7 +604,4 @@ public final class StringExtensions {
return buf.toString();
}
-
-
-
}
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index 6782fd9..c96e428 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -51,6 +51,11 @@ public class WicketViewerSettingsDefault implements WicketViewerSettings {
return getConfiguration().getInteger("isis.viewer.wicket.maxTitleLengthInParentedTables", getMaxTitleLengthInTables());
}
+ @Override
+ public String getCssPrefix() {
+ return getConfiguration().getString("isis.viewer.wicket.cssPrefix", "isis");
+ }
+
/**
* Fallback for either {@link #getMaxTitleLengthInParentedTables()} and {@link #getMaxTitleLengthInParentedTables()}
*/
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index cd9b5ad..af478cc 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -38,6 +38,12 @@ public interface WicketViewerSettings extends Serializable {
int getMaxTitleLengthInParentedTables();
/**
+ * The prefix, if any, of any CSS class name that identifies property columns within tables.
+ * @return
+ */
+ String getCssPrefix();
+
+ /**
* The pattern used for rendering and parsing dates.
*
* <p>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 3761e47..5e0e64c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -33,12 +33,11 @@ import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.Model;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLink;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.links.ListOfLinksModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior;
+import org.apache.isis.viewer.wicket.ui.components.widgets.linkandlabel.ActionLink;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -152,8 +151,6 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
final String cssClass = linkAndLabel.getCssClass();
CssClassAppender.appendCssClassTo(link, cssClass);
- viewTitleLabel.add(new CssClassAppender(StringExtensions.asLowerDashed(linkAndLabel.getLabel())));
-
link.addOrReplace(viewTitleLabel);
final String cssClassFa = linkAndLabel.getCssClassFa();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index dc8d842..5e0a908 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -125,6 +125,9 @@ public class CollectionContentsAsAjaxTablePanel
// perhaps something to tackle in a separate ticket....
ajaxRequestTarget.add(dataTable);
+
+ // hmm... just reading this;
+ // could perhaps use ajaxRequestTarget.addJavaScript(JGrowlUtils....)
}
};
toggleboxColumn.setOnConcurrencyExceptionHandler(handler2);
@@ -258,7 +261,7 @@ public class CollectionContentsAsAjaxTablePanel
final NamedFacet facet = property.getFacet(NamedFacet.class);
final boolean escaped = facet == null || facet.escaped();
- return new ObjectAdapterPropertyColumn(Model.of(property.getName()), property.getId(), property.getId(), escaped);
+ return new ObjectAdapterPropertyColumn(Model.of(property.getName()), property.getId(), property.getId(), escaped, getSettings());
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
index 579e207..cab48a4 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
@@ -19,6 +19,8 @@
package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
+import com.google.common.base.Strings;
+
import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.markup.html.basic.Label;
@@ -27,6 +29,7 @@ import org.apache.wicket.model.IModel;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
@@ -51,15 +54,18 @@ public final class ObjectAdapterPropertyColumn extends ColumnAbstract<ObjectAdap
private final String propertyExpression;
private final boolean escaped;
+ private final String cssPrefix;
public ObjectAdapterPropertyColumn(
final IModel<String> columnNameModel,
final String sortProperty,
final String propertyName,
- final boolean escaped) {
+ final boolean escaped,
+ final WicketViewerSettings settings) {
super(columnNameModel, sortProperty);
this.propertyExpression = propertyName;
this.escaped = escaped;
+ this.cssPrefix = settings.getCssPrefix();
}
public Component getHeader(final String componentId)
@@ -72,7 +78,9 @@ public final class ObjectAdapterPropertyColumn extends ColumnAbstract<ObjectAdap
@Override
public String getCssClass() {
final String cssClass = super.getCssClass();
- return (cssClass != null ? (cssClass + " ") : "") + propertyExpression;
+ return (!Strings.isNullOrEmpty(cssClass) ? (cssClass + " ") : "") +
+ (!Strings.isNullOrEmpty(cssPrefix) ? cssPrefix + "-" : "") +
+ propertyExpression;
}
@Override
diff --git a/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/viewer_wicket.properties b/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/viewer_wicket.properties
index 96fa2ac..2f7325e 100644
--- a/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/viewer_wicket.properties
+++ b/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/viewer_wicket.properties
@@ -33,6 +33,16 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=0
#
+# Table columns have CSS classes identifying the property; this allows individual table columns to targeted and styled.
+# This property defines a prefix to avoid clashes between property names and bootstrap# CSS classes.
+# For example, if set to "isis" then the CSS class added for an "active" property will be "isis-active" (otherwise,
+# it would be simply have been "active").
+# The default value if not specified is simply "isis".
+#
+#isis.viewer.wicket.cssPrefix=isis
+
+
+#
# in Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the
# readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute)
# This behaviour is enabled by default but can be disabled using this flag
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.