net.autosauler.ballance.client.Ballance_autosauler_net.java Source code

Java tutorial

Introduction

Here is the source code for net.autosauler.ballance.client.Ballance_autosauler_net.java

Source

/*******************************************************************************
 * Copyright 2011 Alex 'Ript' Malyshev <alexript@gmail.com>
 * 
 * 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 net.autosauler.ballance.client;

import java.util.Date;

import net.autosauler.ballance.client.databases.StructureFactory;
import net.autosauler.ballance.client.gui.AlertDialog;
import net.autosauler.ballance.client.gui.AuthPanel;
import net.autosauler.ballance.client.gui.LeftMenu;
import net.autosauler.ballance.client.gui.MainPanel;
import net.autosauler.ballance.client.gui.TopPanel;

import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Status;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Viewport;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.extjs.gxt.ui.client.widget.layout.VBoxLayout;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Ballance_autosauler_net implements EntryPoint {

    /** The Constant sessionId. */
    public static final SessionId sessionId = new SessionId();

    /** The isloggedin. */
    static private boolean isloggedin = false;

    /** The main panel. */
    public static MainPanel mainpanel = null;

    /** The Constant COOKIE_TIME. */
    public final static long COOKIE_TIME = 1000 * 60 * 60;

    private static AuthPanel authPanel;
    public static LeftMenu menu;
    public static Status state;

    private static Viewport viewport;

    public static void drawInterface() {
        viewport = new Viewport();
        viewport.setLayout(new BorderLayout());

        TopPanel toppanel = new TopPanel();
        viewport.add(toppanel, new BorderLayoutData(LayoutRegion.NORTH, 25));
        toppanel.startAnimation();

        ContentPanel leftPanel = new ContentPanel();
        leftPanel.setLayout(new VBoxLayout());

        authPanel = new AuthPanel("BalAS", leftPanel);

        menu = new LeftMenu(leftPanel);

        BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 242, 242, 300);
        westData.setMargins(new Margins(5, 5, 5, 5));
        westData.setSplit(true);
        westData.setCollapsible(true);

        viewport.add(leftPanel, westData);

        TabPanel mainpane = new TabPanel();
        mainpane.setAnimScroll(true);
        mainpane.setTabScroll(true);
        mainpane.setCloseContextMenu(true);

        viewport.add(mainpane, new BorderLayoutData(LayoutRegion.CENTER));
        mainpanel = new MainPanel(mainpane);

        state = new Status();
        state.setBox(true);
        viewport.add(state, new BorderLayoutData(LayoutRegion.SOUTH, 25));

        RootPanel.get().add(viewport);
        RootPanel.get("spinner").setVisible(false);
    }

    /**
     * Checks if is logged in.
     * 
     * @return true, if is logged in
     */
    public static boolean isLoggedIn() {
        return isloggedin;
    }

    /**
     * Logout sequence.
     */
    public static void logoutSequence() {
        Ballance_autosauler_net.setLoggedInState(false);
        Ballance_autosauler_net.sessionId.reset();

        Cookies.setCookie("session", "", new Date(System.currentTimeMillis() + COOKIE_TIME));
        authPanel.logoffAction();
        MainPanel.dropMainPane();
        History.newItem("start");
    }

    /**
     * Sets the logged in state.
     * 
     * @param f
     *            the new logged in state
     */
    public static void setLoggedInState(boolean f) {
        isloggedin = f;
    }

    {
        sessionId.setSessionId(Cookies.getCookie("session"));
    }

    /**
     * This is the entry point method.
     */
    @Override
    public void onModuleLoad() {

        AsyncCallback<SessionId> asyncCallback = new AsyncCallback<SessionId>() {
            @Override
            public void onFailure(Throwable caught) {
                isloggedin = false;
                new AlertDialog(caught).show();
            }// end onFailure

            @Override
            public void onSuccess(SessionId result) {
                // Window.alert(sessionId.getSessionId() + " --- " +
                // result.getSessionId() + ": " +
                // sessionId.getSessionId().equals(
                // result.getSessionId()));
                if ((result == null) || !sessionId.getSessionId().equals(result.getSessionId())) {
                    isloggedin = false;
                } else if (sessionId.getSessionId().equals(result.getSessionId())) {
                    isloggedin = true;
                    sessionId.setSession(result);
                }
                StructureFactory.loadData();

            }// end onSucess
        };
        Services.auth.session(sessionId, asyncCallback);

    }
}