Package com.gwtmobile.phonegap.kitchensink.client

Source Code of com.gwtmobile.phonegap.kitchensink.client.GeolocationUi$GeolocationUiUiBinder

/* 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.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;
import com.gwtmobile.phonegap.client.Geolocation;
import com.gwtmobile.phonegap.client.Geolocation.Callback;
import com.gwtmobile.phonegap.client.Geolocation.Options;
import com.gwtmobile.phonegap.client.Geolocation.Position;
import com.gwtmobile.phonegap.client.Geolocation.PositionError;
import com.gwtmobile.ui.client.event.SelectionChangedEvent;
import com.gwtmobile.ui.client.page.Page;
import com.gwtmobile.ui.client.utils.Utils;

public class GeolocationUi extends Page {

  @UiField HTML text;
  String watchId;

  private static GeolocationUiUiBinder uiBinder = GWT
      .create(GeolocationUiUiBinder.class);

  interface GeolocationUiUiBinder extends UiBinder<Widget, GeolocationUi> {
  }

  public GeolocationUi() {
    initWidget(uiBinder.createAndBindUi(this));
  }

  @Override
  protected void onUnload() {
    clearWatch();
    super.onUnload();
  }
 
    @UiHandler("list")
  void onListSelectionChanged(SelectionChangedEvent e) {
      switch (e.getSelection()) {
      case 0:
        getCurrentPosition();
        break;
      case 1:
        watchPosition();
        break;
      case 2:
        clearWatch();
        break;
      }
    }

    public void getCurrentPosition() {
    Geolocation.getCurrentPosition(new Callback() {     
      @Override
      public void onSuccess(Position position) {
        Utils.Console("geo position");
        text.setHTML("Current Position<br/>Latitude: " + position.getCoords().getLatitude() + "<br/>" +
            "Longitude: " + position.getCoords().getLongitude() + "<br/>" +
            "Altitude: " + position.getCoords().getAltitude() + "<br/>" +
            "Accuracy: " + position.getCoords().getAccuracy() + "<br/>" +
            "Altitude Accuracy: " + position.getCoords().getAltitudeAccuracy() + "<br/>" +
            "Heading: " + position.getCoords().getHeading() + "<br/>" +
            "Speed: " + position.getCoords().getSpeed() + "<br/>" +
            "Timestamp: " + position.getTimestamp() + "<br/>"
            );       
      }     
      @Override
      public void onError(PositionError error) {
        text.setHTML("Error<br/>code:" + error.getCode() + "<br/>message: " + error.getMessage());
      }
    });
  }

    public void watchPosition() {
    watchId = Geolocation.watchPosition(new Callback() {     
      @Override
      public void onSuccess(Position position) {
        text.setHTML("Watch Position<br/>Latitude: " + position.getCoords().getLatitude() + "<br/>" +
            "Longitude: " + position.getCoords().getLongitude() + "<br/>" +
            "Altitude: " + position.getCoords().getAltitude() + "<br/>" +
            "Accuracy: " + position.getCoords().getAccuracy() + "<br/>" +
            "Altitude Accuracy: " + position.getCoords().getAltitudeAccuracy() + "<br/>" +
            "Heading: " + position.getCoords().getHeading() + "<br/>" +
            "Speed: " + position.getCoords().getSpeed() + "<br/>" +
            "Timestamp: " + position.getTimestamp() + "<br/>"
            );       
      }     
      @Override
      public void onError(PositionError error) {
        text.setHTML("Error<br/>code:" + error.getCode() + "<br/>message: " + error.getMessage());
      }
    }, new Options().frequency(100).enableHighAccuracy(true).timeout(1000).maximumAge(1000));
  }

    public void clearWatch() {
      if (watchId != null) {
        Geolocation.clearWatch(watchId);
        text.setHTML("");
        watchId = null;
      }
  }
}
TOP

Related Classes of com.gwtmobile.phonegap.kitchensink.client.GeolocationUi$GeolocationUiUiBinder

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.