edu.caltech.ipac.fftools.core.FireflyToolsEntryPoint.java Source code

Java tutorial

Introduction

Here is the source code for edu.caltech.ipac.fftools.core.FireflyToolsEntryPoint.java

Source

/*
 * License information at https://github.com/Caltech-IPAC/firefly/blob/master/License.txt
 */
package edu.caltech.ipac.fftools.core;
/**
 * User: roby
 * Date: 11/18/11
 * Time: 2:15 PM
 */

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.user.client.Window;
import edu.caltech.ipac.firefly.commands.ImageSelectDropDownCmd;
import edu.caltech.ipac.firefly.core.Application;
import edu.caltech.ipac.firefly.core.Creator;
import edu.caltech.ipac.firefly.core.NetworkMode;
import edu.caltech.ipac.firefly.data.Request;
import edu.caltech.ipac.firefly.fftools.FFToolEnv;
import edu.caltech.ipac.firefly.task.DataSetInfoFactory;
import edu.caltech.ipac.firefly.task.IrsaPlusLsstDataSetsFactory;
import edu.caltech.ipac.firefly.util.BrowserUtil;

/**
 * @author Trey Roby
 */
public class FireflyToolsEntryPoint implements EntryPoint {

    private static final boolean USE_CORS_IF_POSSIBLE = true;
    private Application.EventMode eventMode = Application.EventMode.WebSocket;
    private String appHelpName = null;

    public void setAppHelpName(String appHelpName) {
        this.appHelpName = appHelpName;
    }

    public void setEventMode(Application.EventMode eventMode) {
        this.eventMode = eventMode;
    }

    public void onModuleLoad() {
        start(IrsaPlusLsstDataSetsFactory.getInstance(), 2, "generic_footer_minimal.html",
                ImageSelectDropDownCmd.COMMAND_NAME);
    }

    public void start(DataSetInfoFactory factory, int bannerOffset, String footerHtmlFile, String defCommandName) {

        Application.setEventMode(eventMode); // -- uncomment for testing only, not ready  for production
        boolean useCORSForXS = BrowserUtil.getSupportsCORS() && USE_CORS_IF_POSSIBLE;
        Request home;

        FFToolsDisplayMode displayMode = FFToolsDisplayMode.valueOf(getDisplayMode());
        if (displayMode == FFToolsDisplayMode.embedded) {
            FFToolEnv.loadJS();
            Application.setCreator(new FireflyToolsEmbededCreator());
            Application.getInstance().setNetworkMode(useCORSForXS ? NetworkMode.RPC : NetworkMode.JSONP);
            FFToolEnv.setApiMode(true);
            home = null;
            Window.addResizeHandler(new ResizeHandler() {
                public void onResize(ResizeEvent event) {
                    Application.getInstance().resize();
                }
            });
        } else {
            Creator creator;
            if (displayMode == FFToolsDisplayMode.full) {
                creator = new FFToolsStandaloneCreator(displayMode, factory, bannerOffset, footerHtmlFile,
                        defCommandName);
                home = new Request(ImageSelectDropDownCmd.COMMAND_NAME, "Images", true, false);
            } else {
                creator = new FFToolsStandaloneCreator(displayMode, factory);
                home = new Request(FFToolsPushReceiveCmd.COMMAND);
            }
            Application.setCreator(creator);
            Application.getInstance().setNetworkMode(NetworkMode.RPC);
            FFToolEnv.setApiMode(false);
        }
        Application.getInstance().start(home, new AppReady());
    }

    public class AppReady implements Application.ApplicationReady {
        public void ready() {
            FFToolEnv.postInitialization();
            String displayMode = getDisplayMode();
            if (displayMode.equals("minimal") || displayMode.equals("full")) {
                Application.getInstance().hideDefaultLoadingDiv();
                if (appHelpName != null) {
                    Application.getInstance().getHelpManager().setAppHelpName(appHelpName);
                }
            } else {
                Application.getInstance().getHelpManager().setAppHelpName("fftools-api");
            }
        }
    }

    public void setUseMaskButton(boolean use) {
        StandaloneUI.setUseMaskButton(use);
    }

    /**
     * Display mode can be one of 'full', 'minimal', or 'embedded'
     * @return  returns 'embedded' is one is not present.
     */
    public static native String getDisplayMode() /*-{
                                                 if ("fireflyToolsMode" in $wnd) {
                                                 return $wnd.fireflyToolsMode;
                                                 }
                                                 else {
                                                 return "embedded";
                                                 }
                                                 }-*/;

}