package com.project.website.canvas.client.shared.searchProviders.youtube.adapters;
import java.util.ArrayList;
import com.google.gwt.core.client.JsArray;
import com.project.gwtyoutube.client.YouTubeData;
import com.project.gwtyoutube.client.YouTubeItem;
import com.project.gwtyoutube.client.YouTubeResult;
import com.project.website.canvas.client.shared.searchProviders.interfaces.MediaResult;
import com.project.website.canvas.client.shared.searchProviders.interfaces.MediaSearchResult;
public class YouTubeResultAdapter implements MediaSearchResult
{
private YouTubeResult _youTubeResult;
public YouTubeResultAdapter(YouTubeResult youTubeResult)
{
this._youTubeResult = youTubeResult;
}
@Override
public int getTotalPages() {
YouTubeData youTubeData = this._youTubeResult.getData();
if (0 == youTubeData.getItemsPerPage())
{
return 0;
}
//TODO: Consider a better calculation.
return (int)Math.ceil((double)youTubeData.getTotalItems() / (double)youTubeData.getItemsPerPage());
}
@Override
public int getCurrentPage()
{
YouTubeData youTubeData = this._youTubeResult.getData();
int resultCount = youTubeData.getStartIndex() +
youTubeData.getItems().length();
//TODO: Consider a better calculation.
return (int)(Math.ceil((double)youTubeData.getItemsPerPage() / (double)resultCount));
}
@Override
public ArrayList<MediaResult> getMediaResults() {
ArrayList<MediaResult> resultList = new ArrayList<MediaResult>();
JsArray<YouTubeItem> youTubeResults = this._youTubeResult.getData().getItems();
for (int index = 0; index < youTubeResults.length(); index++)
{
resultList.add(new YouTubeItemToMediaResultAdapter(youTubeResults.get(index)));
}
return resultList;
}
}