You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/12/23 08:31:52 UTC
[isis] branch master updated: ISIS-2929: [wkt] extract boolean value binding idiom for reuse
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 27d38b7 ISIS-2929: [wkt] extract boolean value binding idiom for reuse
27d38b7 is described below
commit 27d38b7df7a6203d4bb9c59ba74152acbc719c9f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 23 09:31:41 2021 +0100
ISIS-2929: [wkt] extract boolean value binding idiom for reuse
---
.../model/models/binding/BooleanBinding.java} | 29 +++++++++++++---------
.../models/interaction/coll/DataRowToggleWkt.java | 20 ++++-----------
.../ajaxtable/columns/BulkToggleWkt.java | 25 +++++++------------
3 files changed, 31 insertions(+), 43 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/binding/BooleanBinding.java
similarity index 61%
copy from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java
copy to viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/binding/BooleanBinding.java
index 4f4881a..2ddf42d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/binding/BooleanBinding.java
@@ -16,37 +16,42 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
+package org.apache.isis.viewer.wicket.model.models.binding;
import org.apache.wicket.model.ChainingModel;
import org.apache.wicket.model.IModel;
-import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataTableModel;
+import org.apache.isis.commons.internal.binding._BindableAbstract;
-public class BulkToggleWkt
+/**
+ * Boolean {@link IModel} to bind to the associated {@code T} model`s
+ * bindable boolean value.
+ */
+public abstract class BooleanBinding<T>
extends ChainingModel<Boolean> {
private static final long serialVersionUID = 1L;
- public BulkToggleWkt(final IModel<DataTableModel> dataTableModelHolder) {
- super(dataTableModelHolder);
+ protected BooleanBinding(final IModel<T> model) {
+ super(model);
}
@Override
- public Boolean getObject() {
- return dataTableModel().getSelectAllToggle().getValue();
+ public final Boolean getObject() {
+ return getBindable(model()).getValue();
}
@Override
- public void setObject(final Boolean value) {
- dataTableModel().getSelectAllToggle().setValue(value);
+ public final void setObject(final Boolean value) {
+ getBindable(model()).setValue(value);
}
- // -- HELPER
+ protected abstract _BindableAbstract<Boolean> getBindable(T model);
@SuppressWarnings("unchecked")
- private DataTableModel dataTableModel() {
- return ((IModel<DataTableModel>) super.getTarget()).getObject();
+ protected T model() {
+ return ((IModel<T>) super.getTarget()).getObject();
}
}
+
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/coll/DataRowToggleWkt.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/coll/DataRowToggleWkt.java
index 8818876..c57acf8 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/coll/DataRowToggleWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/coll/DataRowToggleWkt.java
@@ -18,18 +18,19 @@
*/
package org.apache.isis.viewer.wicket.model.models.interaction.coll;
-import org.apache.wicket.model.ChainingModel;
import org.apache.wicket.model.IModel;
+import org.apache.isis.commons.internal.binding._BindableAbstract;
import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataRow;
import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataTableModel;
+import org.apache.isis.viewer.wicket.model.models.binding.BooleanBinding;
/**
* Boolean {@link IModel} to bind to the associated {@link DataTableModel}'s
* {@link DataRow} model to handle check-box selection.
*/
public class DataRowToggleWkt
-extends ChainingModel<Boolean> {
+extends BooleanBinding<DataRow> {
private static final long serialVersionUID = 1L;
@@ -38,19 +39,8 @@ extends ChainingModel<Boolean> {
}
@Override
- public Boolean getObject() {
- return dataRow().getObject().getSelectToggle().getValue();
- }
-
- @Override
- public void setObject(final Boolean value) {
- dataRow().getObject().getSelectToggle().setValue(value);
- }
-
- // -- HELPER
-
- private DataRowWkt dataRow() {
- return (DataRowWkt) super.getTarget();
+ protected _BindableAbstract<Boolean> getBindable(final DataRow dataRow) {
+ return dataRow.getSelectToggle();
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java
index 4f4881a..df4f273 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/BulkToggleWkt.java
@@ -18,13 +18,18 @@
*/
package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
-import org.apache.wicket.model.ChainingModel;
import org.apache.wicket.model.IModel;
+import org.apache.isis.commons.internal.binding._BindableAbstract;
import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataTableModel;
+import org.apache.isis.viewer.wicket.model.models.binding.BooleanBinding;
+/**
+ * Boolean {@link IModel} to bind to the associated {@link DataTableModel}'s
+ * select-all-toggle model to handle bulk check-box selection.
+ */
public class BulkToggleWkt
-extends ChainingModel<Boolean> {
+extends BooleanBinding<DataTableModel> {
private static final long serialVersionUID = 1L;
@@ -33,20 +38,8 @@ extends ChainingModel<Boolean> {
}
@Override
- public Boolean getObject() {
- return dataTableModel().getSelectAllToggle().getValue();
- }
-
- @Override
- public void setObject(final Boolean value) {
- dataTableModel().getSelectAllToggle().setValue(value);
- }
-
- // -- HELPER
-
- @SuppressWarnings("unchecked")
- private DataTableModel dataTableModel() {
- return ((IModel<DataTableModel>) super.getTarget()).getObject();
+ protected _BindableAbstract<Boolean> getBindable(final DataTableModel dataTable) {
+ return dataTable.getSelectAllToggle();
}
}