Search in sources :

Example 1 with NavGroup

use of org.dashbuilder.navigation.NavGroup 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;
}
Also used : DefaultPlaceRequest(org.uberfire.mvp.impl.DefaultPlaceRequest) PlaceRequest(org.uberfire.mvp.PlaceRequest) TopLevelMenusBuilder(org.uberfire.workbench.model.menu.MenuFactory.TopLevelMenusBuilder) MenuItem(org.uberfire.workbench.model.menu.MenuItem) NavWorkbenchCtx(org.dashbuilder.navigation.workbench.NavWorkbenchCtx) NavItem(org.dashbuilder.navigation.NavItem) NavDivider(org.dashbuilder.navigation.NavDivider) NavGroup(org.dashbuilder.navigation.NavGroup)

Example 2 with NavGroup

use of org.dashbuilder.navigation.NavGroup 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;
}
Also used : DefaultPlaceRequest(org.uberfire.mvp.impl.DefaultPlaceRequest) PlaceRequest(org.uberfire.mvp.PlaceRequest) WorkbenchViewModeSwitcherMenuBuilder(org.uberfire.client.menu.WorkbenchViewModeSwitcherMenuBuilder) AppLauncherMenuBuilder(org.kie.workbench.common.widgets.client.menu.AppLauncherMenuBuilder) MenuBuilder(org.uberfire.workbench.model.menu.MenuFactory.MenuBuilder) ResetPerspectivesMenuBuilder(org.kie.workbench.common.widgets.client.menu.ResetPerspectivesMenuBuilder) AdminCustomMenuBuilder(org.kie.workbench.common.workbench.client.menu.custom.AdminCustomMenuBuilder) TopLevelMenusBuilder(org.uberfire.workbench.model.menu.MenuFactory.TopLevelMenusBuilder) Builder(org.uberfire.workbench.model.menu.MenuFactory.Builder) ArrayList(java.util.ArrayList) MenuItem(org.uberfire.workbench.model.menu.MenuItem) NavWorkbenchCtx(org.dashbuilder.navigation.workbench.NavWorkbenchCtx) NavItem(org.dashbuilder.navigation.NavItem) NavDivider(org.dashbuilder.navigation.NavDivider) NavGroup(org.dashbuilder.navigation.NavGroup)

Aggregations

NavDivider (org.dashbuilder.navigation.NavDivider)2 NavGroup (org.dashbuilder.navigation.NavGroup)2 NavItem (org.dashbuilder.navigation.NavItem)2 NavWorkbenchCtx (org.dashbuilder.navigation.workbench.NavWorkbenchCtx)2 PlaceRequest (org.uberfire.mvp.PlaceRequest)2 DefaultPlaceRequest (org.uberfire.mvp.impl.DefaultPlaceRequest)2 TopLevelMenusBuilder (org.uberfire.workbench.model.menu.MenuFactory.TopLevelMenusBuilder)2 MenuItem (org.uberfire.workbench.model.menu.MenuItem)2 ArrayList (java.util.ArrayList)1 AppLauncherMenuBuilder (org.kie.workbench.common.widgets.client.menu.AppLauncherMenuBuilder)1 ResetPerspectivesMenuBuilder (org.kie.workbench.common.widgets.client.menu.ResetPerspectivesMenuBuilder)1 AdminCustomMenuBuilder (org.kie.workbench.common.workbench.client.menu.custom.AdminCustomMenuBuilder)1 WorkbenchViewModeSwitcherMenuBuilder (org.uberfire.client.menu.WorkbenchViewModeSwitcherMenuBuilder)1 Builder (org.uberfire.workbench.model.menu.MenuFactory.Builder)1 MenuBuilder (org.uberfire.workbench.model.menu.MenuFactory.MenuBuilder)1