package gueei.binding.viewAttributes.adapterView; import android.widget.AbsListView; import android.widget.Adapter; import android.widget.AdapterView; import gueei.binding.ViewAttribute; import gueei.binding.collections.LazyLoadAdapter; /** * To Provide adapter to AdapterViews, including subclasses like Spinner, ListView, Gallery etc. * * @name adapter * @widget AdapterView * @type Adapter * @accepts Adapter * @category list * @related * * @converter ADAPTER * @converter STITCH * @converter SECTION * * @author andy * * @param <T> */ public class AdapterViewAttribute<T extends Adapter> extends ViewAttribute<AdapterView<T>, Adapter> { public AdapterViewAttribute(AdapterView<T> view) { super(Adapter.class, view, "adapter"); } @SuppressWarnings("unchecked") @Override protected void doSetAttributeValue(Object newValue) { if(getView()==null) return; if (newValue instanceof Adapter){ getView().setAdapter((T)newValue); if (newValue instanceof LazyLoadAdapter){ if (getView() instanceof AbsListView) ((LazyLoadAdapter)newValue).setRoot((AbsListView)getView()); } } } @Override public Adapter get() { if(getView()==null) return null; return getView().getAdapter(); } }