package in.vesely.eclub.yodaqa.adapters.expandable_recyclerview;
import android.view.View;
import android.view.ViewGroup;
import com.bignerdranch.expandablerecyclerview.Adapter.ExpandableRecyclerAdapter;
import com.bignerdranch.expandablerecyclerview.Model.ParentListItem;
import java.util.List;
import in.vesely.eclub.yodaqa.adapters.Binder;
/**
* Created by vesely on 11/29/15.
*/
public abstract class BindableExpandableRecyclerViewAdapter<B, T, V extends View & ParentBinder<T, B>, T2, V2 extends View & Binder<T2>> extends ExpandableRecyclerAdapter<ParentViewWrapper<B, T, V>, ChildViewWrapper<T2, V2>> {
private B globalData;
public BindableExpandableRecyclerViewAdapter(List<? extends ParentListItem> parentItemList) {
super(parentItemList);
}
@Override
public ParentViewWrapper<B, T, V> onCreateParentViewHolder(ViewGroup parentViewGroup) {
return new ParentViewWrapper<B, T, V>(onCreateParentItemView(parentViewGroup));
}
@Override
public ChildViewWrapper<T2, V2> onCreateChildViewHolder(ViewGroup childViewGroup) {
return new ChildViewWrapper<T2, V2>(onCreateChildItemView(childViewGroup));
}
protected abstract V onCreateParentItemView(ViewGroup parent);
protected abstract V2 onCreateChildItemView(ViewGroup parent);
@Override
@SuppressWarnings("unchecked")
public void onBindParentViewHolder(ParentViewWrapper<B, T, V> parentViewHolder, int position, ParentListItem parentListItem) {
parentViewHolder.getView().bind((T) parentListItem, position, parentViewHolder.isExpanded(), globalData);
}
@Override
@SuppressWarnings("unchecked")
public void onBindChildViewHolder(ChildViewWrapper<T2, V2> childViewHolder, int position, Object childListItem) {
childViewHolder.getView().bind((T2) childListItem, position);
}
public B getGlobalData() {
return globalData;
}
public void setGlobalData(B globalData) {
this.globalData = globalData;
}
}