/* * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.guvnor.client.explorer; import org.drools.guvnor.client.security.Capabilities; import org.drools.guvnor.client.security.CapabilitiesManager; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.StackLayoutPanel; /** * Navigation panel for the west area. * * @author rikkola * */ public class NavigationPanel extends StackLayoutPanel { public NavigationPanel() { super( Unit.EM ); addCategoriesPanel(); if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) { addPackagesPanel(); } if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_QA ) ) { addQAPanel(); } if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_DEPLOYMENT, Capabilities.SHOW_DEPLOYMENT_NEW ) ) { addDeploymentPanel(); } if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_ADMIN ) ) { addAdminPanel(); } } private void addAdminPanel() { DockLayoutPanel adminDockLayoutPanel = new DockLayoutPanel( Unit.EM ); AdministrationTree deploymentTreeItem = new AdministrationTree(); ScrollPanel adminTreeItemPanel = new ScrollPanel( deploymentTreeItem ); adminDockLayoutPanel.add( adminTreeItemPanel ); add( adminDockLayoutPanel, deploymentTreeItem.getHeaderHTML(), 2 ); } private void addDeploymentPanel() { DockLayoutPanel deploymentDockLayoutPanel = new DockLayoutPanel( Unit.EM ); DeploymentTree deploymentTreeItem = new DeploymentTree(); ScrollPanel deploymentTreeItemPanel = new ScrollPanel( deploymentTreeItem ); if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) { deploymentDockLayoutPanel.addNorth( DeploymentNewMenu.getMenu( deploymentTreeItem ), 2 ); } deploymentDockLayoutPanel.add( deploymentTreeItemPanel ); add( deploymentDockLayoutPanel, deploymentTreeItem.getHeaderHTML(), 2 ); } private void addQAPanel() { DockLayoutPanel qaDockLayoutPanel = new DockLayoutPanel( Unit.EM ); QATree qaTreeItem = new QATree(); ScrollPanel qaTreeItemPanel = new ScrollPanel( qaTreeItem ); qaDockLayoutPanel.add( qaTreeItemPanel ); add( qaDockLayoutPanel, qaTreeItem.getHeaderHTML(), 2 ); } private void addPackagesPanel() { DockLayoutPanel packageDockLayoutPanel = new DockLayoutPanel( Unit.EM ); final PackagesTree packagesTreeItem = new PackagesTree(); ScrollPanel packagesTreeItemPanel = new ScrollPanel( packagesTreeItem ); if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) { packageDockLayoutPanel.addNorth( PackagesNewMenu.getMenu( packagesTreeItem ), 2 ); } packageDockLayoutPanel.add( packagesTreeItemPanel ); add( packageDockLayoutPanel, packagesTreeItem.getHeaderHTML(), 2 ); //lazy loaded to easy startup wait time. DeferredCommand.addCommand( new Command() { public void execute() { packagesTreeItem.loadPackageList(); } } ); } private void addCategoriesPanel() { DockLayoutPanel browseDockLayoutPanel = new DockLayoutPanel( Unit.EM ); BrowseTree categoriesTreeItem = new BrowseTree(); ScrollPanel categoriesTreeItemPanel = new ScrollPanel( categoriesTreeItem ); if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) { browseDockLayoutPanel.addNorth( RulesNewMenu.getMenu( categoriesTreeItem ), 2 ); } browseDockLayoutPanel.add( categoriesTreeItemPanel ); add( browseDockLayoutPanel, categoriesTreeItem.getHeaderHTML(), 2 ); } }