package gueei.binding.viewAttributes.adapterView.listView;
import gueei.binding.Binder;
import gueei.binding.ViewAttribute;
import android.widget.Adapter;
import android.widget.Filterable;
import android.widget.ListView;
/**
* Filter constraint
* This Char Sequence will be supplied to Filter.filter(constraint) to perform filtering
*
* @name filterConstraint
* @widget ListView
* @type CharSequence
* @accepts CharSequence
*
* @category list
* @category filter
*
* @related http://developer.android.com/reference/android/widget/Filter.html
*
* @author andy
*/
public class FilterConstraintViewAttribute extends ViewAttribute<ListView, CharSequence>{
public FilterConstraintViewAttribute(ListView view) {
super(CharSequence.class, view, "filterConstraint");
}
@Override
protected void doSetAttributeValue(Object newValue) {
if(getView()==null) return;
if (newValue instanceof CharSequence){
try {
@SuppressWarnings("unchecked")
Adapter adapter =
((ViewAttribute<?, Adapter>)Binder.getAttributeForView(getView(), "adapter")).get();
if (adapter instanceof Filterable){
((Filterable)adapter).getFilter().filter((CharSequence)newValue);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public CharSequence get() {
return null;
}
}