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 2019/12/13 11:31:46 UTC
[isis] branch master updated: ISIS-2227: for visisbility uses
Wicket API directly instead of applying CSS classes
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 1607690 ISIS-2227: for visisbility uses Wicket API directly instead of applying CSS classes
1607690 is described below
commit 160769048c1228d83c40012838964f2455f6cc1a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Dec 13 12:31:34 2019 +0100
ISIS-2227: for visisbility uses Wicket API directly instead of applying
CSS classes
also honors hints only after initialized
---
.../CollectionContentsAsAjaxTablePanel.java | 3 +--
.../ajaxtable/IsisAjaxFallbackDataTable.java | 11 ++++-----
.../CollectionContentsMultipleViewsPanel.java | 26 ++++++----------------
.../selector/links/EntityLinksSelectorPanel.java | 14 ++----------
.../viewer/wicket/ui/panels/PanelAbstract.java | 20 ++++++++++++++---
5 files changed, 33 insertions(+), 41 deletions(-)
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 1ef2447..a0bec7a 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -113,10 +113,9 @@ implements CollectionCountProvider {
addPropertyColumnsIfRequired(columns);
- final CollectionContentsSortableDataProvider dataProvider = new CollectionContentsSortableDataProvider(model);
+ val dataProvider = new CollectionContentsSortableDataProvider(model);
dataTable = new IsisAjaxFallbackDataTable<>(ID_TABLE, columns, dataProvider, model.getPageSize(), toggleboxColumn);
addOrReplace(dataTable);
- dataTable.honourHints();
}
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxFallbackDataTable.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxFallbackDataTable.java
index 51f10ce..84e183d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxFallbackDataTable.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxFallbackDataTable.java
@@ -59,10 +59,10 @@ public class IsisAjaxFallbackDataTable<T, S> extends DataTable<T, S> {
public IsisAjaxFallbackDataTable(
final String id,
final List<? extends IColumn<T, S>> columns,
- final CollectionContentsSortableDataProvider dataProvider,
- final int rowsPerPage,
- final ObjectAdapterToggleboxColumn toggleboxColumn)
- {
+ final CollectionContentsSortableDataProvider dataProvider,
+ final int rowsPerPage,
+ final ObjectAdapterToggleboxColumn toggleboxColumn) {
+
super(id, columns, (ISortableDataProvider<T, S>)dataProvider, rowsPerPage);
this.dataProvider = dataProvider;
this.toggleboxColumn = toggleboxColumn;
@@ -75,6 +75,7 @@ public class IsisAjaxFallbackDataTable<T, S> extends DataTable<T, S> {
protected void onInitialize() {
super.onInitialize();
buildGui();
+ honorHints();
}
private void buildGui() {
@@ -174,7 +175,7 @@ public class IsisAjaxFallbackDataTable<T, S> extends DataTable<T, S> {
}
- public void honourHints() {
+ private void honorHints() {
headersToolbar.honourSortOrderHints();
navigationToolbar.honourHints();
honourPageNumberHint();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/multiple/CollectionContentsMultipleViewsPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/multiple/CollectionContentsMultipleViewsPanel.java
index c2eec73..d5a6e18 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/multiple/CollectionContentsMultipleViewsPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/multiple/CollectionContentsMultipleViewsPanel.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.collectioncontents.multiple;
import java.util.List;
-import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.event.IEvent;
@@ -38,19 +37,19 @@ import org.apache.isis.viewer.wicket.ui.components.collection.selector.Collectio
import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorPanel;
import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorProvider;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import org.apache.isis.viewer.wicket.ui.util.CssClassRemover;
/**
- * Subscribes to events generated by {@link org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorPanel}, rendering the appropriate {@link ComponentType#COLLECTION_CONTENTS}
+ * Subscribes to events generated by
+ * {@link org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorPanel},
+ * rendering the appropriate {@link ComponentType#COLLECTION_CONTENTS}
* view for a backing {@link EntityCollectionModel}.
*/
public class CollectionContentsMultipleViewsPanel
-extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider {
+extends PanelAbstract<EntityCollectionModel>
+implements CollectionCountProvider {
private static final long serialVersionUID = 1L;
- private static final String INVISIBLE_CLASS = "link-selector-panel-invisible";
private static final int MAX_NUM_UNDERLYING_VIEWS = 10;
private static final String UIHINT_VIEW = EntityCollectionModel.HINT_KEY_SELECTED_ITEM;
@@ -132,7 +131,7 @@ extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider
Component component = underlyingViews[i];
if(component != null) {
if(i != selectedIdx) {
- component.add(new CssClassAppender(INVISIBLE_CLASS));
+ super.setVisible(component, /*visible*/ false);
} else {
selectedComponent = component;
}
@@ -169,7 +168,7 @@ extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider
continue;
}
final boolean isSelected = i == underlyingViewNum;
- applyCssVisibility(component, isSelected);
+ setVisible(component, isSelected);
component.setDefaultModel(isSelected? getModel(): dummyModel);
}
@@ -181,17 +180,6 @@ extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider
}
}
-
- protected static void applyCssVisibility(final Component component, final boolean visible) {
- if(component == null) {
- return;
- }
- AttributeModifier modifier = visible ? new CssClassRemover(INVISIBLE_CLASS) : new CssClassAppender(INVISIBLE_CLASS);
- component.add(modifier);
- }
-
-
-
@Override
public Integer getCount() {
if(selectedComponent instanceof CollectionCountProvider) {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
index 1253de0..e6ef83d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
@@ -49,7 +49,6 @@ import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.Addi
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;
-import org.apache.isis.viewer.wicket.ui.util.CssClassRemover;
import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
import lombok.val;
@@ -70,7 +69,6 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> {
private static final long serialVersionUID = 1L;
- private static final String INVISIBLE_CLASS = "link-selector-panel-invisible";
private static final int MAX_NUM_UNDERLYING_VIEWS = 10;
private static final String ID_ADDITIONAL_LINKS = "additionalLinks";
@@ -225,7 +223,7 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> {
continue;
}
final boolean isSelected = i == underlyingViewNum;
- applyCssVisibility(component, isSelected);
+ PanelAbstract.setVisible(component, isSelected);
component.setDefaultModel(isSelected? model: dummyModel);
}
@@ -303,7 +301,7 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> {
Component component = underlyingViews[i];
if(component != null) {
if(i != selected) {
- component.add(new CssClassAppender(INVISIBLE_CLASS));
+ super.setVisible(component, /*visible*/ false);
} else {
selectedComponent = component;
}
@@ -335,14 +333,6 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> {
return model;
}
- protected static void applyCssVisibility(final Component component, final boolean visible) {
- if(component == null) {
- return;
- }
- AttributeModifier modifier = visible ? new CssClassRemover(INVISIBLE_CLASS) : new CssClassAppender(INVISIBLE_CLASS);
- component.add(modifier);
- }
-
protected int honourViewHintElseDefault(final List<ComponentFactory> componentFactories, final IModel<?> model) {
// honour hints ...
final UiHintContainer hintContainer = getUiHintContainer();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
index 34111d7..271935e 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
@@ -19,6 +19,8 @@
package org.apache.isis.viewer.wicket.ui.panels;
+import javax.annotation.Nullable;
+
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
@@ -30,11 +32,14 @@ import org.apache.isis.viewer.wicket.ui.util.Components;
/**
* Convenience adapter for {@link Panel}s built up using {@link ComponentType}s.
* @param <M>
+ * @apiNote using raw-types here, to not further complicate generic type constraints on PanelAbstract
*/
-public abstract class PanelAbstract<T extends IModel<?>> extends PanelBase/*<IModel<X>>*/ {
+@SuppressWarnings("rawtypes")
+public abstract class PanelAbstract<T extends IModel<?>>
+extends PanelBase/*<IModel<X>>*/ {
private static final long serialVersionUID = 1L;
-
+
private ComponentType componentType;
public PanelAbstract(final ComponentType componentType) {
@@ -49,6 +54,7 @@ public abstract class PanelAbstract<T extends IModel<?>> extends PanelBase/*<IMo
this(componentType.getWicketId(), model);
}
+ @SuppressWarnings("unchecked")
public PanelAbstract(final String id, final IModel<?> model) {
super(id, model);
this.componentType = ComponentType.lookup(id);
@@ -91,11 +97,19 @@ public abstract class PanelAbstract<T extends IModel<?>> extends PanelBase/*<IMo
Components.permanentlyHide(this, ids);
}
+ protected static void setVisible(@Nullable Component component, boolean visible) {
+ if(component == null) {
+ return;
+ }
+ component.setVisible(visible);
+ }
+
protected void addConfirmationDialogIfAreYouSureSemantics(
Component component,
SemanticsOf semanticsOf) {
- PanelUtil.addConfirmationDialogIfAreYouSureSemantics(super.getTranslationService(), component, semanticsOf);
+ PanelUtil.addConfirmationDialogIfAreYouSureSemantics(
+ super.getTranslationService(), component, semanticsOf);
}