package gueei.binding.bindingProviders; import gueei.binding.ViewAttribute; import gueei.binding.viewAttributes.adapterView.*; import android.view.View; import android.widget.AdapterView; import android.widget.ExpandableListView; public class AdapterViewProvider extends BindingProvider { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <Tv extends View> ViewAttribute<Tv, ?> createAttributeForView( View view, String attributeId) { if (!(view instanceof AdapterView)) return null; try { if (attributeId.equals("adapter")) { return (ViewAttribute<Tv, ?>) new AdapterViewAttribute((AdapterView)view); } else if (attributeId.equals("selectedItem")) { return (ViewAttribute<Tv, ?>) new SelectedItemViewAttribute((AdapterView)view, "selectedItem"); } else if (attributeId.equals("selectedPosition")) { return (ViewAttribute<Tv, ?>) new SelectedPositionViewAttribute((AdapterView)view); } else if (attributeId.equals("selectedObject")) { return (ViewAttribute<Tv, ?>) new SelectedObjectViewAttribute((AdapterView)view); } else if (attributeId.equals("clickedItem")){ ViewAttribute<AdapterView<?>, Object> attr = new ClickedItemViewAttribute((AdapterView)view, "clickedItem"); return (ViewAttribute<Tv, ?>) attr; } else if (attributeId.equals("longClickedItem")){ return (ViewAttribute<Tv, ?>) new LongClickedItemViewAttribute((AdapterView)view, "longClickedItem"); } else if (attributeId.equals("clickedId")){ ViewAttribute<AdapterView<?>, Long> attr = new ClickedIdViewAttribute((AdapterView)view, "clickedId"); return (ViewAttribute<Tv, ?>) attr; } else if (attributeId.equals("clickedChild")){ if (view instanceof ExpandableListView) return (ViewAttribute<Tv, ?>)new ClickedChildViewAttribute((ExpandableListView)view); } else if (attributeId.equals("itemSource")){ if (view instanceof ExpandableListView){ return (ViewAttribute<Tv, ?>) new ExpandableListView_ItemSourceViewAttribute((ExpandableListView)view); } ItemSourceViewAttribute attr = new ItemSourceViewAttribute((AdapterView)view, "itemSource"); return (ViewAttribute<Tv, ?>) attr; } else if (attributeId.equals("itemTemplate")){ return (ViewAttribute<Tv, ?>)new ItemTemplateViewAttribute(view, "itemTemplate"); } else if (attributeId.equals("itemCount")){ return (ViewAttribute<Tv, ?>)new ItemCountViewAttribute((AdapterView)view); } else if (attributeId.equals("spinnerTemplate")){ return (ViewAttribute<Tv, ?>)new ItemTemplateViewAttribute(view, "spinnerTemplate"); } else if (attributeId.equals("onItemSelected")){ return (ViewAttribute<Tv, ?>)new OnItemSelectedViewEvent((AdapterView)view); } else if (attributeId.equals("onItemClicked")){ return (ViewAttribute<Tv, ?>)new OnItemClickedViewEvent((AdapterView)view); }else if (attributeId.equals("onItemLongClicked")){ return (ViewAttribute<Tv, ?>)new OnItemLongClickedViewEvent((AdapterView)view); } else if (attributeId.equals("childItemTemplate")){ if (view instanceof ExpandableListView) return (ViewAttribute<Tv, ?>)new ItemTemplateViewAttribute(view, "childItemTemplate"); } else if (attributeId.equals("childItemSource")){ if (view instanceof ExpandableListView) return (ViewAttribute<Tv, ?>)new ChildItemSourceViewAttribute((ExpandableListView)view); } else if (attributeId.equals("onChildClick")){ if (view instanceof ExpandableListView) return (ViewAttribute<Tv, ?>)new ExpandableListView_OnChildClickViewEvent((ExpandableListView)view); } else if (attributeId.equals("clickActionPosition")) { return (ViewAttribute<Tv, ?>) new ClickActionPositionViewAttribute((AdapterView) view); } } catch (Exception e) { // Actually it should never reach this statement } return null; } }