Package com.gwtmobile.phonegap.kitchensink.client

Source Code of com.gwtmobile.phonegap.kitchensink.client.KitchenSink

/* Copyright (c) 2010 Zhihua (Dennis) Jiang
*
* 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 com.gwtmobile.phonegap.kitchensink.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.gwtmobile.phonegap.client.Device;
import com.gwtmobile.phonegap.client.Event;
import com.gwtmobile.phonegap.client.Event.Callback;
import com.gwtmobile.ui.client.page.Page;
import com.gwtmobile.ui.client.page.PageHistory;
import com.gwtmobile.ui.client.utils.Utils;
import com.gwtmobile.ui.client.widgets.Button;
import com.gwtmobile.ui.client.widgets.HeaderPanel;

public class KitchenSink implements EntryPoint {

  public static MainUi mainUi;
 
  @Override
  public void onModuleLoad() {

    if (Utils.isAndroid() || Utils.isIOS()) {
     
      if (Utils.isAndroid()) {
        Event.onBackButton(new Event.Callback() {     
          @Override
          public void onEventFired() {
            onBackKeyDown();
          }
        });
      }

      Event.onDeviceReady(new Callback() {     
        @Override
        public void onEventFired() {
          new Timer() {
            @Override
            public void run() {
              if (mainUi == null) {
                Utils.Console("Loading main ui...");
                mainUi = new MainUi();
                Page.load(mainUi);
              }
              else {
                this.cancel();
              }
            }
          }.scheduleRepeating(50);
        }
      });
    }
    else {
      mainUi = new MainUi();
      Page.load(mainUi);
    }
  }
 
    public void onBackKeyDown() {
      if (PageHistory.Instance.from() == null) {
        Device.exitApp();       
      }
      else {
        if (!PageHistory.Instance.current().getClass().toString().endsWith(".EventUi")) {
          // emulate click on the header back button for page transition to show.
              emulateClickOnBackButton();     
        }
      }       
    }

  protected void emulateClickOnBackButton() {
    HTMLPanel current = (HTMLPanel) PageHistory.Instance.current().getWidget();
    HeaderPanel header = (HeaderPanel) current.getWidget(0);
    Button left = header.getLeftButton();
    NativeEvent event = Document.get().createClickEvent(1, 1, 1, 1, 1, false, false, false, false);
    left.getElement().dispatchEvent(event);
  }
   
//    private native void doToast(String msg) /*-{
//      $wnd.PhoneGap.exec(null, null, "GwtMobile", "toast", [msg]);
//  }-*/;
//
//    private native void requestFocus() /*-{
//      $wnd.PhoneGap.exec(null, null, "GwtMobile", "requestFocus", []);
//  }-*/;

}
TOP

Related Classes of com.gwtmobile.phonegap.kitchensink.client.KitchenSink

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.