/******************************************************************************* * Copyright (c) 2011 Nokia Corporation * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Comarch team - initial API and implementation *******************************************************************************/ package org.ned.client.view; import com.sun.lwuit.Dialog; import com.sun.lwuit.Display; import com.sun.lwuit.Label; import com.sun.lwuit.animations.CommonTransitions; import com.sun.lwuit.layouts.BorderLayout; import com.sun.lwuit.plaf.UIManager; import org.ned.client.NedConsts; public class WaitingScreen { private static WaitingScreen instance; private Dialog dialog; public static void show( String status ) { UIManager.getInstance().getLookAndFeel().setDefaultDialogTransitionIn( null ); UIManager.getInstance().getLookAndFeel().setDefaultDialogTransitionOut( null ); instance = new WaitingScreen( status ); instance.showModeless(); } public static boolean isShowed() { if ( instance != null ) { return instance.dialog.isVisible(); } else { return false; } } public static void dispose() { Display.getInstance().callSeriallyAndWait( new Runnable() { public void run() { if ( instance != null && instance.dialog != null ) { instance.dialog.setVisible( false ); instance.dialog.dispose(); UIManager.getInstance().getLookAndFeel(). setDefaultDialogTransitionIn( CommonTransitions. createSlide( CommonTransitions.SLIDE_VERTICAL, false, NedConsts.NedTransitions.TRANSITION_TIME ) ); UIManager.getInstance().getLookAndFeel(). setDefaultDialogTransitionOut( CommonTransitions. createSlide( CommonTransitions.SLIDE_VERTICAL, true, NedConsts.NedTransitions.TRANSITION_TIME ) ); } } } ); } private void showModeless() { Display.getInstance().callSerially( new Runnable() { public void run() { dialog.showPacked( BorderLayout.CENTER, false ); } } ); } private WaitingScreen( String status ) { dialog = new Dialog(); dialog.setFocusable( false ); dialog.setLayout( new BorderLayout() ); Label msg = new Label(); msg.setText( status ); dialog.addComponent( BorderLayout.CENTER, msg ); } }