Package org.geomajas.widget.searchandfilter.client.util

Source Code of org.geomajas.widget.searchandfilter.client.util.FavouritesCommService

/*
* This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
*
* Copyright 2008-2011 Geosparc nv, http://www.geosparc.com/, Belgium.
*
* The program is available in open source according to the GNU Affero
* General Public License. All contributions in this program are covered
* by the Geomajas Contributors License Agreement. For full licensing
* details, see LICENSE.txt in the project root.
*/
package org.geomajas.widget.searchandfilter.client.util;

import java.util.ArrayList;
import java.util.List;

import org.geomajas.command.CommandResponse;
import org.geomajas.command.SuccessCommandResponse;
import org.geomajas.gwt.client.command.CommandCallback;
import org.geomajas.gwt.client.command.GwtCommand;
import org.geomajas.gwt.client.command.GwtCommandDispatcher;
import org.geomajas.widget.searchandfilter.command.dto.DeleteSearchFavouriteRequest;
import org.geomajas.widget.searchandfilter.command.dto.GetSearchFavouritesRequest;
import org.geomajas.widget.searchandfilter.command.dto.GetSearchFavouritesResponse;
import org.geomajas.widget.searchandfilter.command.dto.SaveSearchFavouriteRequest;
import org.geomajas.widget.searchandfilter.command.dto.SaveSearchFavouriteResponse;
import org.geomajas.widget.searchandfilter.search.dto.SearchFavourite;

/**
* Convenience class with helper methods for commands.
*
* @author Kristof Heirwegh
*/
public final class FavouritesCommService {

  /**
   * Utility class
   */
  private FavouritesCommService() {
  }

  public static void getSearchFavourites(final DataCallback<List<SearchFavourite>> onFinished) {
    GwtCommand command = new GwtCommand(GetSearchFavouritesRequest.COMMAND);
    command.setCommandRequest(new GetSearchFavouritesRequest());
    GwtCommandDispatcher.getInstance().execute(command, new CommandCallback() {
      public void execute(CommandResponse response) {
        if (response instanceof GetSearchFavouritesResponse) {
          GetSearchFavouritesResponse resp = (GetSearchFavouritesResponse) response;
          if (onFinished != null) {
            int size = resp.getPrivateSearchFavourites().size() + resp.getSharedSearchFavourites().size();
            List<SearchFavourite> result = new ArrayList<SearchFavourite>(size);
            result.addAll(resp.getPrivateSearchFavourites());
            result.addAll(resp.getSharedSearchFavourites());
            onFinished.execute(result);
          }
        }
      }
    });
  }

  /**
   * Returns the persisted instance (this has extra properties + id set).
   * @param sf
   * @param onFinished
   */
  public static void saveSearchFavourite(SearchFavourite sf, final DataCallback<SearchFavourite> onFinished) {
    SaveSearchFavouriteRequest ssfr = new SaveSearchFavouriteRequest();
    ssfr.setSearchFavourite(sf);
    GwtCommand command = new GwtCommand(SaveSearchFavouriteRequest.COMMAND);
    command.setCommandRequest(ssfr);
    GwtCommandDispatcher.getInstance().execute(command, new CommandCallback() {
      public void execute(CommandResponse response) {
        if (response instanceof SaveSearchFavouriteResponse) {
          SaveSearchFavouriteResponse resp = (SaveSearchFavouriteResponse) response;
          if (onFinished != null) {
            onFinished.execute(resp.getSearchFavourite());
          }
        }
      }
    });
  }

  public static void deleteSearchFavourite(SearchFavourite sf, final DataCallback<Boolean> onFinished) {
    DeleteSearchFavouriteRequest dsfr = new DeleteSearchFavouriteRequest();
    dsfr.setSearchFavouriteId(sf.getId());
    GwtCommand command = new GwtCommand(DeleteSearchFavouriteRequest.COMMAND);
    command.setCommandRequest(dsfr);
    GwtCommandDispatcher.getInstance().execute(command, new CommandCallback() {
      public void execute(CommandResponse response) {
        if (response instanceof SuccessCommandResponse) {
          SuccessCommandResponse resp = (SuccessCommandResponse) response;
          if (onFinished != null) {
            onFinished.execute(resp.isSuccess());
          }
        }
      }
    });
  }
}
TOP

Related Classes of org.geomajas.widget.searchandfilter.client.util.FavouritesCommService

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.