/** * */ package com.gmail.charleszq.picorner.ui.command.px500; import java.util.Comparator; import android.content.Context; import com.github.yuyang226.j500px.photos.PhotoCategory; import com.gmail.charleszq.picorner.R; import com.gmail.charleszq.picorner.service.IPhotoService; import com.gmail.charleszq.picorner.service.px500.Px500SearchService; import com.gmail.charleszq.picorner.ui.helper.IHiddenView; import com.gmail.charleszq.picorner.ui.px500.Px500SearchView; /** * @author charles(charleszq@gmail.com) * */ public class TermTagSearchCommand extends AbstractPx500PhotoListCommand { /** * the term to be search */ private String mTerm; /** * The tag to be search */ private String mTag; /** * The hidden view associated with this command. */ private IHiddenView mHiddenView; /** * @param context */ public TermTagSearchCommand(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; } /* * (non-Javadoc) * * @see com.gmail.charleszq.picorner.ui.command.ICommand#getLabel() */ @Override public String getLabel() { return mContext.getString(R.string.cmd_name_500px_search); } @Override public Object getAdapter(Class<?> adapterClass) { if (adapterClass == PhotoCategory.class) //this command does not support photo category. return null; if (adapterClass == IHiddenView.class) { if (mHiddenView == null) { mHiddenView = new Px500SearchView(); } return mHiddenView; } if( adapterClass == IPhotoService.class ) { mCurrentPhotoService = new Px500SearchService(); ((Px500SearchService)mCurrentPhotoService).setSearchCondition(mTerm, mTag); return mCurrentPhotoService; } if( adapterClass == Comparator.class ) { StringBuilder sb = new StringBuilder(); sb.append("term"); //$NON-NLS-1$ if( mTerm != null ) sb.append(mTerm); sb.append("tag"); //$NON-NLS-1$ if( mTag != null ) sb.append(mTag); return sb.toString(); } return super.getAdapter(adapterClass); } @Override public boolean execute(Object... params) { if( params.length == 2 ) { mTerm = (String) params[0]; mTag = (String) params[1]; } return super.execute(); } @Override public String getDescription() { StringBuilder sb = new StringBuilder(); if( mTerm != null ) sb.append(mTerm).append( " "); //$NON-NLS-1$ if( mTag != null ) sb.append(mTag); String msg = mContext.getString(R.string.cd_500px_search_cmd); msg = String.format(msg, sb.toString().trim()); return msg; } }