Package org.onebusaway.webapp.gwt.mobile_application.view

Source Code of org.onebusaway.webapp.gwt.mobile_application.view.LargeButtonMapControl$MapOperationClickHandler

/**
* Copyright (C) 2011 Brian Ferris <bdferris@onebusaway.org>
*
* 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 org.onebusaway.webapp.gwt.mobile_application.view;

import org.onebusaway.webapp.gwt.common.widgets.DivPanel;
import org.onebusaway.webapp.gwt.common.widgets.DivWidget;
import org.onebusaway.webapp.gwt.mobile_application.resources.MobileApplicationCssResource;
import org.onebusaway.webapp.gwt.mobile_application.resources.MobileApplicationResources;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.maps.client.MapWidget;
import com.google.gwt.maps.client.control.ControlAnchor;
import com.google.gwt.maps.client.control.ControlPosition;
import com.google.gwt.maps.client.control.Control.CustomControl;
import com.google.gwt.user.client.ui.Widget;

public class LargeButtonMapControl extends CustomControl {

  private static final MobileApplicationCssResource _css = MobileApplicationResources.INSTANCE.getCSS();

  private enum EMapOperation {
    LEFT, RIGHT, UP, DOWN, ZOOM_IN, ZOOM_OUT
  }

  private DivPanel _widget = new DivPanel();

  private MapWidget _map;

  public LargeButtonMapControl() {
    super(new ControlPosition(ControlAnchor.TOP_LEFT, 5, 5), true, true);
  }

  @Override
  protected Widget initialize(MapWidget map) {
    _map = map;
    _widget.setVisible(true);
    _widget.add(getMapControlWidget(EMapOperation.UP));   
    _widget.add(getMapControlWidget(EMapOperation.LEFT));
    _widget.add(getMapControlWidget(EMapOperation.RIGHT));
    _widget.add(getMapControlWidget(EMapOperation.DOWN));
    _widget.add(getMapControlWidget(EMapOperation.ZOOM_IN));
    _widget.add(getMapControlWidget(EMapOperation.ZOOM_OUT));
    return _widget;
  }

  public void setVisible(boolean visible) {
    _widget.setVisible(visible);
  }

  @Override
  public boolean isSelectable() {
    return true;
  }
 
  private Widget getMapControlWidget(EMapOperation operation) {
    DivWidget widget = new DivWidget("",getStyleNameForMapOperation(operation),_css.MapControlAny());
    widget.addClickHandler(new MapOperationClickHandler(operation));
    return widget;
  }

  private String getStyleNameForMapOperation(EMapOperation operation) {
    switch (operation) {
      case UP:
        return _css.MapControlUp();
      case DOWN:
        return _css.MapControlDown();
      case LEFT:
        return _css.MapControlLeft();
      case RIGHT:
        return _css.MapControlRight();
      case ZOOM_IN:
        return _css.MapControlZoomIn();
      case ZOOM_OUT:
        return _css.MapControlZoomOut();
      default:
        throw new IllegalStateException();
    }
  }

  private class MapOperationClickHandler implements ClickHandler {

    private EMapOperation _operation;

    public MapOperationClickHandler(EMapOperation operation) {
      _operation = operation;
    }

    @Override
    public void onClick(ClickEvent arg0) {
      switch (_operation) {
        case UP:
          _map.panDirection(0, 1);
          break;
        case DOWN:
          _map.panDirection(0, -1);
          break;
        case LEFT:
          _map.panDirection(1, 0);
          break;
        case RIGHT:
          _map.panDirection(-1, 0);
          break;
        case ZOOM_IN:
          _map.zoomIn();
          break;
        case ZOOM_OUT:
          _map.zoomOut();
          break;
      }
    }
  }
}
TOP

Related Classes of org.onebusaway.webapp.gwt.mobile_application.view.LargeButtonMapControl$MapOperationClickHandler

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.