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 2020/07/10 12:14:07 UTC
[isis] branch master updated: ISIS-2400: update menubar visitor
(also adding call site stubs)
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 165a781 ISIS-2400: update menubar visitor (also adding call site stubs)
165a781 is described below
commit 165a7813955e770e4f321db3ffcf88ef38a4c6b9
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jul 10 14:01:07 2020 +0200
ISIS-2400: update menubar visitor (also adding call site stubs)
---
.../org/apache/isis/core/commons/internal/base/_Strings.java | 10 ++++++++++
.../isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java | 6 ++++++
.../incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java | 8 ++++++++
.../viewer/common/model/menu/MenuUiModel_buildMenuItems.java | 10 ++++++++--
.../org/apache/isis/viewer/common/model/menu/MenuVisitor.java | 5 +++++
.../actionmenu/serviceactions/ServiceActionUtil.java | 6 ++++++
.../actionmenu/serviceactions/ServiceActionsPanel.html | 8 ++++++++
.../actionmenu/serviceactions/TertiaryActionsPanel.html | 8 ++++++++
8 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/base/_Strings.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/base/_Strings.java
index f860082..b1060b7 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/base/_Strings.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/base/_Strings.java
@@ -142,6 +142,16 @@ public final class _Strings {
public static boolean isNotEmpty(@Nullable final CharSequence x){
return x!=null && x.length()!=0;
}
+
+ // -- OPTIONAL
+
+ /**
+ * @param x - input string
+ * @return optionally the input string based on whether the input is not empty
+ */
+ public static Optional<String> nonEmpty(@Nullable final CharSequence x) {
+ return isEmpty(x) ? Optional.empty() : Optional.of(x.toString());
+ }
// -- BASIC UNARY OPERATORS
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
index f029438..3f5d53d 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/main/MenuBuilderFx.java
@@ -69,5 +69,11 @@ public class MenuBuilderFx implements MenuVisitor {
currentTopLevelMenu.getItems()
.add(new SeparatorMenuItem());
}
+
+ @Override
+ public void addSectionLabel(String named) {
+ log.warn("section labels not supported yet: {}", named);
+ addSectionSpacer(); //TODO this is just a fallback
+ }
}
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
index a1bb1cb..2f58ed1 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MenuBuilderVaa.java
@@ -34,8 +34,10 @@ import org.apache.isis.viewer.common.model.menu.MenuVisitor;
import lombok.RequiredArgsConstructor;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
@RequiredArgsConstructor(staticName = "of")
+@Log4j2
class MenuBuilderVaa implements MenuVisitor {
private final IsisAppCommonContext commonContext;
@@ -73,5 +75,11 @@ class MenuBuilderVaa implements MenuVisitor {
currentTopLevelMenu.getSubMenu()
.addItem(spacer);
}
+
+ @Override
+ public void addSectionLabel(String named) {
+ log.warn("section labels not supported yet: {}", named);
+ addSectionSpacer(); //TODO this is just a fallback
+ }
}
\ No newline at end of file
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
index f0b6d91..be68b12 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModel_buildMenuItems.java
@@ -24,6 +24,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
import org.apache.isis.core.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
@@ -77,7 +78,7 @@ final class MenuUiModel_buildMenuItems {
val isFirstInSection = itemsPerSectionCounter.intValue()==0;
- menuVisitor.addSubMenu(managedAction, isFirstInSection, actionLayoutData);
+ menuVisitor.addSubMenu(menuSection, managedAction, isFirstInSection, actionLayoutData);
itemsPerSectionCounter.increment();
}
@@ -103,6 +104,7 @@ final class MenuUiModel_buildMenuItems {
}
public void addSubMenu(
+ @NonNull BS3MenuSection menuSection,
@NonNull ManagedAction managedAction,
boolean isFirstInSection,
ServiceActionLayoutData actionLayoutData) {
@@ -114,7 +116,11 @@ final class MenuUiModel_buildMenuItems {
pushedCurrentTopLevel = true;
} else {
if(isFirstInSection) {
- menuVisitor.addSectionSpacer();
+ if(_Strings.isNotEmpty(menuSection.getNamed())) {
+ menuVisitor.addSectionLabel(menuSection.getNamed());
+ } else {
+ menuVisitor.addSectionSpacer();
+ }
}
}
val menuDto = MenuItemDto.subMenu(
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuVisitor.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuVisitor.java
index e2df4b4..ba75eb1 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuVisitor.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuVisitor.java
@@ -24,4 +24,9 @@ public interface MenuVisitor {
void addSectionSpacer();
void addSubMenu(MenuItemDto menuDto);
+ /**
+ * @param named - not null and not empty
+ */
+ void addSectionLabel(String named);
+
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 8ff5986..d36ce27 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -168,6 +168,12 @@ public final class ServiceActionUtil {
menuItem.setNeedsSpacerBeforeSelf(true);
}
}
+
+ @Override
+ public void addSectionLabel(String named) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
index e0044d8..882fb6e 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
@@ -29,6 +29,14 @@
</ul>
</li>
+ <wicket:fragment wicket:id="separatorItem">
+ <div class="list-separator"/>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="sectionItem">
+ <span class="sectionLabel" wicket:id="sectionLabel"></span>
+ </wicket:fragment>
+
<wicket:fragment wicket:id="leafItem">
<a class="menuLink" wicket:id="menuLink">
<span class="menuLinkLabel" wicket:id="menuLinkLabel"></span>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
index 8dccb28..510410f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
@@ -24,6 +24,14 @@
<li wicket:id="subMenuItems">
<wicket:container wicket:id="content"></wicket:container>
</li>
+
+ <wicket:fragment wicket:id="separatorItem">
+ <div class="list-separator"/>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="sectionItem">
+ <span class="sectionLabel" wicket:id="sectionLabel"></span>
+ </wicket:fragment>
<wicket:fragment wicket:id="leafItem">
<a class="menuLink" wicket:id="menuLink">