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/04/18 14:09:57 UTC
[isis] 11/11: Extending popover config with boundary (fixes
flickering or flipping entity link popovers in collections)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 2617_wicketstuff.bs4
in repository https://gitbox.apache.org/repos/asf/isis.git
commit df8242f4cbe12e23df2d9793d29fb683b83cc3c2
Author: mwhesse <mw...@gmail.com>
AuthorDate: Sun Apr 18 16:18:25 2021 +0700
Extending popover config with boundary (fixes flickering or flipping entity link popovers in collections)
---
.../wicket/ui/util/ExtendedPopoverConfig.java | 31 ++++++++++++++++++++++
.../isis/viewer/wicket/ui/util/Tooltips.java | 4 ++-
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/ExtendedPopoverConfig.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/ExtendedPopoverConfig.java
new file mode 100644
index 0000000..0c63135
--- /dev/null
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/ExtendedPopoverConfig.java
@@ -0,0 +1,31 @@
+package org.apache.isis.viewer.wicket.ui.util;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.PopoverConfig;
+import de.agilecoders.wicket.jquery.IKey;
+
+public class ExtendedPopoverConfig extends PopoverConfig {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ /**
+ * Overflow constraint boundary of the popover.
+ * Accepts the values of 'viewport', 'window', 'scrollParent', or an HTMLElement reference (JavaScript only).
+ * For more information refer to Popper.js's preventOverflow docs.
+ */
+ private static final IKey<String> Boundary = newKey("boundary", PopoverBoundary.scrollParent.name());
+
+ public enum PopoverBoundary {
+ viewport, window, scrollParent
+ }
+
+ public ExtendedPopoverConfig withBoundary(PopoverBoundary boundary) {
+ return withBoundary(boundary.name());
+ }
+
+ public ExtendedPopoverConfig withBoundary(String boundary) {
+ put(Boundary, boundary);
+ return this;
+ }
+}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
index 04659d0..1b27640 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
@@ -28,6 +28,7 @@ import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.viewer.common.model.decorator.tooltip.TooltipUiModel;
+import org.apache.isis.viewer.wicket.ui.util.ExtendedPopoverConfig.PopoverBoundary;
import lombok.NonNull;
import lombok.val;
@@ -102,7 +103,8 @@ public class Tooltips {
}
private static PopoverConfig createTooltipConfig() {
- return new PopoverConfig()
+ return new ExtendedPopoverConfig()
+ .withBoundary(PopoverBoundary.viewport)
.withTrigger(OpenTrigger.hover)
.withPlacement(Placement.bottom)
.withAnimation(true);