package gueei.binding.converters; import gueei.binding.Converter; import gueei.binding.DynamicObject; import gueei.binding.IObservable; import gueei.binding.collections.Utility; import gueei.binding.viewAttributes.templates.Layout; import android.widget.Adapter; import android.widget.Filter; /** * ADAPTER accepts only one argument, and it must be DynamicObject * It will return a simple adapter, the same parameters to gueei.binding.collections.Utility.getSimpleAdapter: * * @usage params * * @arg params DynamicObject * * @item template gueei.binding.viewAttributes.templates.Layout * @item source Object item source of the adapter, IObservableCollection * @item @optional spinnerTemplate gueei.binding.viewAttributes.templates.Layout * @item @optional enable String child property that determines the enabled state of the item * @item @optional filter android.widget.Filter filter supplies to adapter * * @return android.widget.Adapter * * @author andy * */ public class ADAPTER extends Converter<Adapter> { public ADAPTER(IObservable<?>[] dependents) { super(Adapter.class, dependents); } @Override public Adapter calculateValue(Object... args) throws Exception { try{ DynamicObject object = (DynamicObject)args[0]; if (!object.observableExists("template")) return null; if (!object.observableExists("source")) return null; Layout template = ((Layout)object.getObservableByName("template").get()); Layout spinnerTemplate = null; if (object.observableExists("spinnerTemplate")) spinnerTemplate = (Layout)object.getObservableByName("spinnerTemplate").get(); spinnerTemplate = spinnerTemplate == null ? template : spinnerTemplate; IObservable<?> source = object.getObservableByName("source"); String enableStatement = null; if (object.observableExists("enable")){ try{ enableStatement = object.getObservableByName("enable").get().toString(); }catch(Exception e){} } Filter filter = null; if (object.observableExists("filter")){ try{ filter = (Filter)(object.getObservableByName("filter").get()); }catch(Exception e){} } return Utility.getSimpleAdapter(getContext(), source, template, spinnerTemplate, filter, enableStatement); }catch(Exception e){ return null; } } }