You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/08/24 06:59:54 UTC
[causeway] branch master updated: CAUSEWAY-3522: [Wicket Viewer] No need to show a tooltip-title that is equal to the tooltip-body
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/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 478de7d1fe CAUSEWAY-3522: [Wicket Viewer] No need to show a tooltip-title that is equal to the tooltip-body
478de7d1fe is described below
commit 478de7d1fe7e5fdcb626870033fbf1e9d82bd168
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Aug 24 08:59:50 2023 +0200
CAUSEWAY-3522: [Wicket Viewer] No need to show a tooltip-title that is
equal to the tooltip-body
---
.../entity/icontitle/EntityIconAndTitlePanel.java | 46 ++++++++++++++++++----
1 file changed, 38 insertions(+), 8 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index b953937fe5..41b31afc77 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -18,6 +18,8 @@
*/
package org.apache.causeway.viewer.wicket.ui.components.entity.icontitle;
+import java.util.Objects;
+
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.AbstractLink;
@@ -37,7 +39,9 @@ import org.apache.causeway.viewer.wicket.ui.util.Wkt;
import org.apache.causeway.viewer.wicket.ui.util.WktComponents;
import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
+import lombok.Builder;
import lombok.val;
+import lombok.experimental.Accessors;
/**
* {@link PanelAbstract Panel} representing the icon and title of an entity,
@@ -117,13 +121,14 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
Wkt.cssAppend(dummyLabel, cssClassFaFactory.asSpaceSeparatedWithAdditional("fa-2x"));
});
- final String title = determineTitle(linkedDomainObject);
- Wkt.labelAdd(link, ID_ENTITY_TITLE, titleAbbreviated(title));
+ final TitleRecord title = determineTitle(linkedDomainObject);
+ Wkt.labelAdd(link, ID_ENTITY_TITLE, title.abbreviatedTitle());
- final String tooltipTitle = linkedDomainObject.getSpecification().getSingularName();
- final String tooltipBody = _Strings.nonEmpty(getModel().getTypeOfSpecification().getDescription())
- .orElseGet(()->title);
- WktTooltips.addTooltip(link, tooltipTitle, tooltipBody);
+ if(title.suppressTooltipTitle()) {
+ WktTooltips.addTooltip(link, title.tooltipBody());
+ } else {
+ WktTooltips.addTooltip(link, title.tooltipTitle(), title.tooltipBody());
+ }
}
return link;
@@ -157,8 +162,33 @@ extends PanelAbstract<ManagedObject, ObjectAdapterModel> {
return abbreviated(titleString, maxTitleLength);
}
- private String determineTitle(final ManagedObject linkedDomainObject) {
- return MmTitleUtils.getTitleHonoringTitlePartSkipping(linkedDomainObject, this::isContextAdapter);
+ /**
+ * Holder of titles for various UI contexts (Java record candidate).
+ */
+ @Builder
+ @lombok.Value @Accessors(fluent=true)
+ private static class TitleRecord {
+ final String fullTitle;
+ final String abbreviatedTitle;
+ final String tooltipTitle;
+ final String tooltipBody;
+ /**
+ * No need to show a tooltip-title that is equal to the tooltip-body.
+ */
+ final boolean suppressTooltipTitle() {
+ return Objects.equals(tooltipTitle, tooltipBody);
+ }
+ }
+
+ private TitleRecord determineTitle(final ManagedObject linkedDomainObject) {
+ val fullTitle = MmTitleUtils.getTitleHonoringTitlePartSkipping(linkedDomainObject, this::isContextAdapter);
+ return TitleRecord.builder()
+ .fullTitle(fullTitle)
+ .abbreviatedTitle(titleAbbreviated(fullTitle))
+ .tooltipTitle(_Strings.nullToEmpty(linkedDomainObject.getSpecification().getSingularName()))
+ .tooltipBody(_Strings.nonEmpty(linkedDomainObject.getSpecification().getDescription())
+ .orElseGet(()->fullTitle))
+ .build();
}
private void hideTitle() {