package cn.mutils.app.ui.adapter;
import android.view.View;
import android.widget.BaseAdapter;
import cn.mutils.app.os.IContextProvider;
import cn.mutils.app.ui.core.IContentViewOwner;
import cn.mutils.app.ui.core.IView;
import cn.mutils.app.ui.core.IViewFinder;
/**
* Object-oriented for
* {@link BaseAdapter#getView(int, View, android.view.ViewGroup)}
*
* @see IItemAdapter#getItemView(int)
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
@SuppressWarnings("unused")
public interface IItemView<DATA_ITEM> extends IView, IViewFinder, IContentViewOwner, IContextProvider {
/**
* Get Adapter for IItemView.
*
* @return {@link ItemAdapter}
*/
IItemAdapter<DATA_ITEM> getAdapter();
/**
* Set Adapter for IItemView.
* <p>
* It called by framework.
*
* @param adapter Adapter
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
void setAdapter(IItemAdapter<DATA_ITEM> adapter);
/**
* Get position for IItemView.
*/
int getPosition();
/**
* Set position for IItemView.<br>
* It called by framework.
*
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
void setPosition(int position);
/**
* Get data provider for IItemView.
*/
DATA_ITEM getDataProvider();
/**
* Set data provider for IItemView.
*
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
void setDataProvider(DATA_ITEM dataProvider);
/**
* Notify data set changed by IItemView
*
* @see ItemAdapter#notifyDataSetChanged()
*/
void notifyDataSetChanged();
/**
* IItemView creation
*
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
void onCreate();
/**
* IItemView reuse
*
* @see ItemAdapter#getView(int, View, android.view.ViewGroup)
*/
void onResume();
/**
* Set content view for IItemView by view
*/
void setContentView(View view);
/**
* Set content view for IItemView by view layout resource
*/
void setContentView(int layoutResID);
}