Package com.eclipsesource.tabris.demos.entrypoints

Source Code of com.eclipsesource.tabris.demos.entrypoints.AppEventsDemo

/*******************************************************************************
* Copyright (c) 2013 EclipseSource and others.
* 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:
*    EclipseSource - initial API and implementation
******************************************************************************/
package com.eclipsesource.tabris.demos.entrypoints;

import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.application.EntryPoint;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

import com.eclipsesource.tabris.app.App;
import com.eclipsesource.tabris.app.AppEvent;
import com.eclipsesource.tabris.app.AppListener;
import com.eclipsesource.tabris.app.EventType;
import com.eclipsesource.tabris.demos.hal.Hal9000;

public class AppEventsDemo implements EntryPoint {

  private Hal9000 hal;
  private long sleepMillis;

  public int createUI() {
    Display display = new Display();
    Shell shell = new Shell( display, SWT.NO_TRIM );
    shell.setMaximized( true );
    shell.setLayout( new FillLayout() );
    shell.setBackground( display.getSystemColor( SWT.COLOR_BLACK ) );
    hal = new Hal9000( shell );
    registerAppStateListener();
    shell.open();
    return 0;
  }

  private void registerAppStateListener() {
    final App app = RWT.getClient().getService( App.class );
    if( app != null ) {
      app.addEventListener( EventType.PAUSE, new AppListener() {

        public void handleEvent( AppEvent event ) {
          System.out.println("Paused");
          Label output = hal.getText();
          output.setText( "I am going to sleep now.\n" );
          output.getParent().layout( true, true );
          sleepMillis = System.currentTimeMillis();
        }
      } );
      app.addEventListener( EventType.RESUME, new AppListener() {

        public void handleEvent( AppEvent event ) {
          System.out.println("Resumed");
          long slept = ( System.currentTimeMillis() - sleepMillis ) / 1000;
          Label output = hal.getText();
          output.setText( "Good morning Dave!\n\nThank for waking me up again. I was sleeping for "
                          + slept
                          + " seconds.\n" );
          output.getParent().layout( true, true );
        }
      } );
      app.addEventListener( EventType.INACTIVE, new AppListener() {

        public void handleEvent( AppEvent event ) {
          System.out.println("Inactive");
          Label output = hal.getText();
          output.setText( "Dave, did you fall asleep?\nYou haven't touched the screen for over 10 seconds.\n" );
          output.getParent().layout( true, true );
        }
      } );
      app.startInactivityTimer( 10000 );
      app.setScreenProtection( true );
    }
  }
}
TOP

Related Classes of com.eclipsesource.tabris.demos.entrypoints.AppEventsDemo

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.