Package $

Source Code of $.ShowcaseEntryPoint

#set($symbol_dollar='$')
        package ${package}.client;

        import java.util.Collection;
        import java.util.Iterator;
        import javax.annotation.PostConstruct;
        import javax.enterprise.event.Observes;
        import javax.inject.Inject;

        import com.google.gwt.animation.client.Animation;
        import com.google.gwt.dom.client.Element;
        import com.google.gwt.dom.client.Style;
        import com.google.gwt.user.client.Window;
        import com.google.gwt.user.client.ui.RootPanel;
        import org.jboss.errai.bus.client.api.ClientMessageBus;
        import org.jboss.errai.ioc.client.api.EntryPoint;
        import org.jboss.errai.ioc.client.container.IOCBeanDef;
        import org.jboss.errai.ioc.client.container.SyncBeanManager;
        import org.uberfire.client.UberFirePreferences;
        import org.uberfire.client.mvp.ActivityManager;
        import org.uberfire.client.mvp.PerspectiveActivity;
        import org.uberfire.client.mvp.PlaceManager;
        import org.uberfire.client.workbench.events.ApplicationReadyEvent;
        import org.uberfire.client.workbench.widgets.menu.WorkbenchMenuBar;
        import org.uberfire.mvp.Command;
        import org.uberfire.mvp.impl.DefaultPlaceRequest;
        import org.uberfire.workbench.model.menu.Menus;

        import static org.uberfire.workbench.model.menu.MenuFactory.*;

@EntryPoint
public class ShowcaseEntryPoint {

    @Inject
    private SyncBeanManager manager;

    @Inject
    private WorkbenchMenuBar menubar;

    @Inject
    private PlaceManager placeManager;

    @Inject
    private ActivityManager activityManager;

    @Inject
    private ClientMessageBus bus;

    @PostConstruct
    public void startApp() {
        hideLoadingPopup();
    }

    private void setupMenu( @Observes final ApplicationReadyEvent event ) {
        final PerspectiveActivity defaultPerspective = getDefaultPerspectiveActivity();

        final Menus menus =
                newTopLevelMenu( "Home" )
                        .respondsWith( new Command() {
                            @Override
                            public void execute() {
                                if ( defaultPerspective != null ) {
                                    placeManager.goTo( new DefaultPlaceRequest( defaultPerspective.getIdentifier() ) );
                                } else {
                                    Window.alert( "Default perspective not found." );
                                }
                            }
                        } )
                        .endMenu()
                        .build();

        menubar.addMenus( menus );
    }

    private PerspectiveActivity getDefaultPerspectiveActivity() {
        PerspectiveActivity defaultPerspective = null;
        final Collection<IOCBeanDef<PerspectiveActivity>> perspectives = manager.lookupBeans( PerspectiveActivity.class );
        final Iterator<IOCBeanDef<PerspectiveActivity>> perspectivesIterator = perspectives.iterator();

        while ( perspectivesIterator.hasNext() ) {
            final IOCBeanDef<PerspectiveActivity> perspective = perspectivesIterator.next();
            final PerspectiveActivity instance = perspective.getInstance();
            if ( instance.isDefault() ) {
                defaultPerspective = instance;
                break;
            } else {
                manager.destroyBean( instance );
            }
        }
        return defaultPerspective;
    }

    //Fade out the "Loading application" pop-up
    private void hideLoadingPopup() {
        final Element e = RootPanel.get( "loading" ).getElement();

        new Animation() {

            @Override
            protected void onUpdate( double progress ) {
                e.getStyle().setOpacity( 1.0 - progress );
            }

            @Override
            protected void onComplete() {
                e.getStyle().setVisibility( Style.Visibility.HIDDEN );
            }
        }.run( 500 );
    }

    public static native void redirect( String url )/*-{
        ${symbol_dollar}
        wnd.location = url;
    }-*/;

}
TOP

Related Classes of $.ShowcaseEntryPoint

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.