package gueei.binding.viewAttributes.ratingBar; import gueei.binding.Binder; import gueei.binding.ViewAttribute; import gueei.binding.listeners.OnRatingBarChangeListenerMulticast; import android.widget.RatingBar; import android.widget.RatingBar.OnRatingBarChangeListener; /** * Rating of Rating Bar * Equivalent to android:rating * * @name rating * @widget RatingBar * @type Float * * @accepts Float * * @category simple * @related http://developer.android.com/reference/android/widget/RatingBar.OnRatingBarChangeListener.html * @related http://developer.android.com/reference/android/widget/RatingBar.html * * @author andy */ public class RatingViewAttribute extends ViewAttribute<RatingBar, Float> implements OnRatingBarChangeListener{ public RatingViewAttribute(RatingBar view) { super(Float.class, view, "rating"); Binder.getMulticastListenerForView(view, OnRatingBarChangeListenerMulticast.class) .register(this); } @Override protected void doSetAttributeValue(Object newValue) { if(getView()==null) return; if (newValue == null){ getView().setRating(0); return; } if (newValue instanceof Float){ getView().setRating((Float)newValue); return; } } @Override public Float get() { if(getView()==null) return null; return getView().getRating(); } public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { if (fromUser) this.notifyChanged(); } }