Example #1
0
  private void bindEvents() {

    searchPresenter
        .getStore()
        .addStoreListener(
            new StoreListener<LocationDTO>() {

              @Override
              public void storeDataChanged(StoreEvent<LocationDTO> event) {
                updateSearchMarkers();
              }
            });
    searchPresenter.addListener(
        Events.Select,
        new Listener<LocationEvent>() {

          @Override
          public void handleEvent(LocationEvent event) {
            if (event.getSource() != LocationMap.this) {
              onLocationSelected(event.getLocation());
            }
          }
        });

    newLocationPresenter.addListener(
        NewLocationPresenter.ACTIVE_STATE_CHANGED,
        new Listener<BaseEvent>() {
          @Override
          public void handleEvent(BaseEvent be) {
            onModeChanged();
          }
        });

    newLocationPresenter.addListener(
        NewLocationPresenter.POSITION_CHANGED,
        new Listener<BaseEvent>() {

          @Override
          public void handleEvent(BaseEvent be) {
            onNewLocationPosChanged();
          }
        });

    newLocationPresenter.addListener(
        NewLocationPresenter.BOUNDS_CHANGED,
        new Listener<BaseEvent>() {

          @Override
          public void handleEvent(BaseEvent be) {
            if (newLocationPresenter.isActive()) {
              LatLngBounds newBounds =
                  LeafletUtil.newLatLngBounds(newLocationPresenter.getBounds());
              map.fitBounds(newBounds);
            }
          }
        });
  }
Example #2
0
 private void onModeChanged() {
   if (newLocationPresenter.isActive()) {
     if (newLocationMarker == null) {
       createNewLocationMarker();
     }
     newLocationMarker.setOpacity(1);
     panToNewLocation();
   } else if (newLocationMarker != null) {
     newLocationMarker.setOpacity(0);
   }
 }
Example #3
0
  private void createNewLocationMarker() {
    DivIcon icon = createIcon("");

    Options markerOptions = new Options();
    markerOptions.setProperty("icon", icon);
    markerOptions.setProperty("draggable", true);

    newLocationMarker = new Marker(newLatLng(newLocationPresenter.getLatLng()), markerOptions);

    EventHandlerManager.addEventHandler(
        newLocationMarker,
        org.discotools.gwt.leaflet.client.events.handler.EventHandler.Events.dragend,
        new EventHandler<Event>() {

          @Override
          public void handle(Event event) {
            newLocationPresenter.setLatLng(
                new AiLatLng(
                    newLocationMarker.getLatLng().lat(), newLocationMarker.getLatLng().lng()));
          }
        });

    map.addLayer(newLocationMarker);
  }
Example #4
0
 private void onNewLocationPosChanged() {
   if (newLocationMarker != null) {
     Log.debug("New marker pos: " + newLocationPresenter.getLatLng());
     newLocationMarker.setLatLng(newLatLng(newLocationPresenter.getLatLng()));
   }
 }