package com.project.website.canvas.client.shared.searchProviders.bing; import com.google.gwt.user.client.rpc.AsyncCallback; import com.project.gwtbing.client.imagesearch.BingImageSearchRequest; import com.project.gwtbing.client.imagesearch.ImageResponse; import com.project.website.canvas.client.resources.CanvasResources; import com.project.website.canvas.client.shared.searchProviders.ImageSearchOptions; import com.project.website.canvas.client.shared.searchProviders.bing.adapters.ImageResponseToToImageSearchAdapter; import com.project.website.canvas.client.shared.searchProviders.interfaces.ImageSearchProvider; import com.project.website.canvas.client.shared.searchProviders.interfaces.MediaSearchResult; public class BingSearchProvider implements ImageSearchProvider { private BingImageSearchRequest imageSearchRequest = null; public BingSearchProvider(String appId) { this.imageSearchRequest = new BingImageSearchRequest(appId); } @Override public void search(String query, final AsyncCallback<MediaSearchResult> callback) { this.imageSearchRequest.searchImages(query, new AsyncCallback<ImageResponse>() { @Override public void onSuccess(ImageResponse result) { callback.onSuccess(new ImageResponseToToImageSearchAdapter( BingImageSearchRequest.DEFAULT_IMAGE_COUNT, result)); } @Override public void onFailure(Throwable caught) { callback.onFailure(caught); } }); } @Override public void search(String query, ImageSearchOptions searchOptions, AsyncCallback<MediaSearchResult> callback) { //TODO: Support ImageSearchOptions this.search(query, callback); } @Override public String getTitle() { return "Bing"; } @Override public String getIconUrl() { return CanvasResources.INSTANCE.bingLogo16().getSafeUri().asString(); } }