Skip to content

Commit 041fdba

Browse files
mlopezFCjavier-godoy
authored andcommitted
feat: make fusion API more similar to flow API
make fusion API to use MenuItems instead of DTOs so it's more similar to flow API
1 parent 528dfa1 commit 041fdba

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

src/main/java/com/flowingcode/addons/applayout/MenuItem.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ public String getLabel() {
115115
return getElement().getAttribute("label");
116116
}
117117

118+
public String getHref() {
119+
return getElement().getProperty("href");
120+
}
121+
118122
public MenuItem setLabel(String label) {
119123
getElement().setAttribute("label", label);
120124
return this;

src/main/java/com/flowingcode/addons/applayout/endpoint/MenuEndpoint.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.List;
44
import java.util.stream.Collectors;
55

6+
import com.flowingcode.addons.applayout.MenuItem;
67
import com.vaadin.flow.server.auth.AnonymousAllowed;
78
import com.vaadin.flow.server.connect.Endpoint;
89

@@ -17,7 +18,16 @@ public MenuEndpoint(List<MenuItemsProvider> menuItemsProviders) {
1718
}
1819

1920
public List<MenuItemDto> getMenuItems() {
20-
return menuItemsProviders.stream().map(mip->mip.getMenuItems()).flatMap(List::stream).collect(Collectors.toList());
21+
List<MenuItem> menuItems = menuItemsProviders.stream().map(MenuItemsProvider::getMenuItems).flatMap(List::stream).collect(Collectors.toList());
22+
return convertMenuItems(menuItems);
23+
}
24+
25+
private List<MenuItemDto> convertMenuItems(List<MenuItem> menuItems) {
26+
return menuItems.stream().map(mi->new MenuItemDto(mi.getLabel(),mi.getHref(),extractMenuItems(mi))).collect(Collectors.toList());
27+
}
28+
29+
private List<MenuItemDto> extractMenuItems(MenuItem mi) {
30+
return convertMenuItems(mi.getChildren().filter(MenuItem.class::isInstance).map(MenuItem.class::cast).collect(Collectors.toList()));
2131
}
2232

2333
}

src/main/java/com/flowingcode/addons/applayout/endpoint/MenuItemsProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import java.util.List;
44

5+
import com.flowingcode.addons.applayout.MenuItem;
6+
57
@FunctionalInterface
68
public interface MenuItemsProvider {
79

8-
List<MenuItemDto> getMenuItems();
10+
List<MenuItem> getMenuItems();
911

1012
}

0 commit comments

Comments
 (0)