Package org.onebusaway.webapp.gwt.where_library.view.constraints

Source Code of org.onebusaway.webapp.gwt.where_library.view.constraints.QueryOperationHandler

/**
* 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.where_library.view.constraints;

import org.onebusaway.geospatial.model.CoordinateBounds;
import org.onebusaway.geospatial.services.SphericalGeometryLibrary;
import org.onebusaway.transit_data.model.SearchQueryBean;
import org.onebusaway.webapp.gwt.where_library.impl.CombinedSearchServiceImpl;
import org.onebusaway.webapp.gwt.where_library.services.CombinedSearchResult;
import org.onebusaway.webapp.gwt.where_library.services.CombinedSearchService;
import org.onebusaway.webapp.gwt.where_library.view.ResultsPanelManager;
import org.onebusaway.webapp.gwt.where_library.view.StopFinderWidget;

import com.google.gwt.maps.client.MapWidget;
import com.google.gwt.maps.client.geom.LatLng;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class QueryOperationHandler implements OperationHandler,
    AsyncCallback<CombinedSearchResult> {

  private String _query;

  private LatLng _point;

  private OperationContext _context;

  public QueryOperationHandler(String query, LatLng point) {
    _query = query;
    _point = point;
  }

  @Override
  public void handleOperation(OperationContext context) {

    _context = context;

    StopFinderWidget widget = context.getWidget();
    widget.setSearchText(_query);

    LatLng center = _point;
   
    if( center == null) {
      MapWidget map = context.getMap();
      center = map.getCenter();
    }
   
    CoordinateBounds bounds = SphericalGeometryLibrary.bounds(
        center.getLatitude(), center.getLongitude(), 20000);

    SearchQueryBean query = new SearchQueryBean();
    query.setBounds(bounds);
    query.setMaxCount(10);
    query.setQuery(_query);

    CombinedSearchService search = new CombinedSearchServiceImpl();
    search.search(query, 5000, this);
  }

  /****
   * {@link AsyncCallback} Interface
   ****/

  @Override
  public void onSuccess(CombinedSearchResult result) {

    ResultsPanelManager manager = new ResultsPanelManager(_context);

    if (result.isEmpty()) {
      manager.addNoResultsMessage();
      return;
    }

    manager.setResults(result);
  }

  public void onFailure(Throwable ex) {

  }

  /****
   * {@link Object} Interface
   ****/

  public boolean equals(Object obj) {
    if (obj == null || !(obj instanceof QueryOperationHandler))
      return false;

    QueryOperationHandler rc = (QueryOperationHandler) obj;
    return _query.equals(rc._query);
  }

  @Override
  public int hashCode() {
    return _query.hashCode();
  }

  /****
   * Private Methods
   ****/

}
TOP

Related Classes of org.onebusaway.webapp.gwt.where_library.view.constraints.QueryOperationHandler

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.