class NavTilesWidget extends BaseNavWidget {

    public void openItem(NavItem navItem) {
        NavItem parent = navItem.getParent();
        if (navItemStack.isEmpty()) {
            if (parent != null) {
                navItemStack.add(parent);
                navItemStack.add(navItem);
            }
        } else {
            navItemStack.add(navItem);
        }
        this.updateBreadcrumb();

        if (navItem instanceof NavGroup) {
            this.show((NavGroup) navItem, false);
        }
        else {
            NavWorkbenchCtx navCtx = NavWorkbenchCtx.get(navItem);
            String resourceId = navCtx.getResourceId();
            if (resourceId != null && ActivityResourceType.PERSPECTIVE.equals(navCtx.getResourceType())) {

                // Runtime perspectives are displayed inline
                if (perspectivePluginManager.isRuntimePerspective(resourceId)) {
                    openPerspective(navItem);
                }
                // Classic UF perspectives take over the entire window
                else {
                    placeManager.goTo(resourceId);
                }
            }
        }
    }

    @Inject public  NavTilesWidget(View view,
                          NavigationManager navigationManager,
                          PerspectivePluginManager perspectivePluginManager,
                          PlaceManager placeManager,
                          SyncBeanManager beanManager);

}