view flys-client/src/main/java/de/intevation/flys/client/client/ui/ScreenLock.java @ 5486:b19f0fd301fc

New ScrenLock class to ease refactoring and reuse of spinning-wheel-show.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 28 Mar 2013 09:24:41 +0100
parents
children
line wrap: on
line source
package de.intevation.flys.client.client.ui;

import com.google.gwt.core.client.GWT;

import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.Layout;
import com.smartgwt.client.widgets.layout.VLayout;

import de.intevation.flys.client.client.FLYSConstants;

/** Basic static functionality to show spinning wheel. */
public class ScreenLock {

    /** The message class that provides i18n strings. */
    protected static FLYSConstants messages = GWT.create(FLYSConstants.class);

    /** Disables input, grey out, show spinning wheel of joy. */
    public static VLayout lockUI(Layout layout, VLayout lockScreen) {
        if (lockScreen == null) {
            lockScreen = new VLayout();
            lockScreen.setWidth100();
            lockScreen.setHeight100();
            lockScreen.setBackgroundColor("#7f7f7f");
            lockScreen.setOpacity(50);
            lockScreen.setAlign(VerticalAlignment.CENTER);
            lockScreen.setDefaultLayoutAlign(VerticalAlignment.CENTER);

            HLayout inner = new HLayout();
            inner.setAlign(Alignment.CENTER);
            inner.setDefaultLayoutAlign(Alignment.CENTER);
            inner.setOpacity(100);

            Img img = new Img(
                GWT.getHostPageBaseURL() + messages.loadingImg(),
                25, 25);

            inner.addMember(img);

            lockScreen.addMember(inner);
        }

        layout.addChild(lockScreen);
        return lockScreen;
    }

    /** Enable input, remove grey, remove spinning wheel of joy. */
    public static void unlockUI(Layout layout, VLayout lockScreen) {
        layout.removeChild(lockScreen);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org