Package org.drools.guvnor.client

Source Code of org.drools.guvnor.client.JBRMSEntryPoint

/**
* 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;

import org.drools.guvnor.client.common.GenericCallback;
import org.drools.guvnor.client.explorer.ExplorerLayoutManager;
import org.drools.guvnor.client.messages.Constants;
import org.drools.guvnor.client.resources.GuvnorResources;
import org.drools.guvnor.client.resources.RoundedCornersResource;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.UserSecurityContext;
import org.drools.guvnor.client.ruleeditor.StandaloneEditorManager;
import org.drools.guvnor.client.security.Capabilities;
import org.drools.guvnor.client.security.CapabilitiesManager;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RootLayoutPanel;

/**
* This is the main launching/entry point for the JBRMS web console.
* It essentially sets the initial layout.
*
* If you hadn't noticed, this is using GWT from google. Refer to GWT docs
* if GWT is new to you (it is quite a different way of building web apps).
*/
public class JBRMSEntryPoint
    implements
    EntryPoint {

    private LoggedInUserInfo loggedInUserInfo;

    public void onModuleLoad() {

        GuvnorResources.INSTANCE.headerCss().ensureInjected();
        RoundedCornersResource.INSTANCE.roundCornersCss().ensureInjected();

        loggedInUserInfo = new LoggedInUserInfo();
        loggedInUserInfo.setVisible( false );
        checkLoggedIn();
    }

    /**
     * Creates the main view of Guvnor.
     * The path used to invoke guvnor is used to identify the
     * view to show:
     * If the path contains "StandaloneEditor.html" then the StandaloneGuidedEditorManager is used
     * to render the view.
     * If not, the default view (created by ExplorerLayoutManager) is shown.
     * @return Guvnor's main view.
     */
    private Panel createMain() {
        if ( Window.Location.getPath().contains( "StandaloneEditor.html" ) ) {
            return (new StandaloneEditorManager().getBaseLayout());
        }
        return (new ExplorerLayoutManager( loggedInUserInfo )).getBaseLayout();
    }

    /**
     * Check if user is logged in, if not, then show prompt.
     * If it is, then we show the app, in all its glory !
     */
    private void checkLoggedIn() {
        RepositoryServiceFactory.getSecurityService().getCurrentUser( new GenericCallback<UserSecurityContext>() {
            public void onSuccess(UserSecurityContext ctx) {
                if ( ctx.userName != null ) {
                    showMain();
                    loggedInUserInfo.setUserName( ctx.userName );
                    loggedInUserInfo.setVisible( true );
                } else {
                    final LoginWidget lw = new LoginWidget();
                    lw.setLoggedInEvent( new Command() {
                        public void execute() {
                            showMain();
                            loggedInUserInfo.setUserName( lw.getUserName() );
                            loggedInUserInfo.setVisible( true );
                        }
                    } );
                    lw.show();
                }
            }
        } );
    }

    private void showMain() {
        Window.setStatus( ((Constants) GWT.create( Constants.class )).LoadingUserPermissions() );

        CapabilitiesManager.getInstance().refreshAllowedCapabilities( new Command() {

            public void execute() {
                Window.setStatus( " " );
                RootLayoutPanel.get().add( createMain() );
            }
        } );

        // Setup a history handler to reselect the associate menu item
        final ValueChangeHandler<String> historyHandler = new ValueChangeHandler<String>() {
            public void onValueChange(ValueChangeEvent<String> event) {
                //TODO: Handle History
            }
        };
        History.addValueChangeHandler( historyHandler );
    }
}
TOP

Related Classes of org.drools.guvnor.client.JBRMSEntryPoint

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.