/**
*
*/
package com.gmail.charleszq.picorner.ui.command.flickr;
import java.util.Comparator;
import android.content.Context;
import android.util.Log;
import com.gmail.charleszq.picorner.BuildConfig;
import com.gmail.charleszq.picorner.R;
import com.gmail.charleszq.picorner.model.FlickrTagSearchParameter;
import com.gmail.charleszq.picorner.service.IPhotoService;
import com.gmail.charleszq.picorner.service.flickr.FlickrTagSearchService;
import com.gmail.charleszq.picorner.ui.command.PhotoListCommand;
import com.gmail.charleszq.picorner.ui.flickr.FlickrTagSearchView;
import com.gmail.charleszq.picorner.ui.helper.IHiddenView;
/**
* @author charles(charleszq@gmail.com)
*
*/
public class FlickrTagSearchCommand extends PhotoListCommand {
private IHiddenView mHiddenView;
private FlickrTagSearchParameter mCurrentSearchParameter;
/**
* @param context
*/
public FlickrTagSearchCommand(Context context) {
super(context);
}
/*
* (non-Javadoc)
*
* @see com.gmail.charleszq.picorner.ui.command.ICommand#getIconResourceId()
*/
@Override
public int getIconResourceId() {
return android.R.drawable.ic_menu_search;
}
@Override
public Object getAdapter(Class<?> adapterClass) {
if (adapterClass == IHiddenView.class) {
if (mHiddenView == null) {
mHiddenView = new FlickrTagSearchView();
}
return mHiddenView;
}
if (adapterClass == IPhotoService.class) {
if (mCurrentPhotoService == null) {
mCurrentPhotoService = new FlickrTagSearchService();
}
((FlickrTagSearchService) mCurrentPhotoService)
.setSearchParameter(mCurrentSearchParameter);
return mCurrentPhotoService;
}
if (adapterClass == Comparator.class) {
return this.mCurrentSearchParameter;
}
return super.getAdapter(adapterClass);
}
/*
* (non-Javadoc)
*
* @see com.gmail.charleszq.picorner.ui.command.ICommand#getLabel()
*/
@Override
public String getLabel() {
return mContext.getString(R.string.cmd_name_flickr_tag_search);
}
@Override
public boolean execute(Object... params) {
mCurrentSearchParameter = (FlickrTagSearchParameter) params[0];
if (BuildConfig.DEBUG)
Log.d(TAG, mCurrentSearchParameter.toString());
// parent execute method requires the first parameter is page no
return super.execute();
}
@Override
public String getDescription() {
String s = mContext.getString(R.string.cd_flickr_tag_search);
s = String.format(s,
mCurrentSearchParameter == null ? "" : mCurrentSearchParameter.getTags()); //$NON-NLS-1$
return s;
}
}