use of org.dashbuilder.navigation.workbench.NavWorkbenchCtx in project kie-wb-common by kiegroup.
the class DefaultWorkbenchFeaturesMenusHelper method buildMenusFromNavTree.
public TopLevelMenusBuilder<MenuBuilder> buildMenusFromNavTree(NavTree navTree) {
MenuBuilder<TopLevelMenusBuilder<MenuBuilder>> builder = null;
for (NavItem navItem : navTree.getRootItems()) {
// Skip dividers
if (navItem instanceof NavDivider) {
continue;
}
// AF-953: Ignore empty groups
if (navItem instanceof NavGroup && ((NavGroup) navItem).getChildren().isEmpty()) {
continue;
}
// Build a top level menu entry
if (builder == null) {
builder = MenuFactory.newTopLevelMenu(navItem.getName());
} else {
builder = builder.endMenu().newTopLevelMenu(navItem.getName());
}
// Append its children
if (navItem instanceof NavGroup) {
List<MenuItem> childItems = buildMenuItemsFromNavGroup((NavGroup) navItem);
builder.withItems(childItems);
}
// Append the place request
NavWorkbenchCtx navCtx = NavWorkbenchCtx.get(navItem);
if (navCtx.getResourceId() != null && ActivityResourceType.PERSPECTIVE.equals(navCtx.getResourceType())) {
PlaceRequest placeRequest = resolvePlaceRequest(navCtx.getResourceId());
builder = builder.place(placeRequest);
}
}
return builder != null ? builder.endMenu() : null;
}
use of org.dashbuilder.navigation.workbench.NavWorkbenchCtx in project kie-wb-common by kiegroup.
the class DefaultWorkbenchFeaturesMenusHelper method buildMenuItemsFromNavGroup.
public List<MenuItem> buildMenuItemsFromNavGroup(NavGroup navGroup) {
List<MenuItem> result = new ArrayList<>();
for (NavItem navItem : navGroup.getChildren()) {
// Skip dividers
if (navItem instanceof NavDivider) {
continue;
}
// Append its children
MenuBuilder<Builder> builder = MenuFactory.newSimpleItem(navItem.getName());
if (navItem instanceof NavGroup) {
List<MenuItem> childItems = buildMenuItemsFromNavGroup((NavGroup) navItem);
builder.withItems(childItems);
}
// Append the place request
NavWorkbenchCtx navCtx = NavWorkbenchCtx.get(navItem);
if (navCtx.getResourceId() != null && ActivityResourceType.PERSPECTIVE.equals(navCtx.getResourceType())) {
PlaceRequest placeRequest = resolvePlaceRequest(navCtx.getResourceId());
builder.place(placeRequest);
}
// Build the menu item & continue with the next one
MenuItem menuItem = builder.endMenu().build().getItems().get(0);
result.add(menuItem);
}
return result;
}
Aggregations