package gueei.binding.viewAttributes.progressBar;
import gueei.binding.Binder;
import gueei.binding.ViewAttribute;
import gueei.binding.listeners.OnSeekBarChangeListenerMulticast;
import android.widget.ProgressBar;
import android.widget.SeekBar;
/**
* Progress of Progress Bar
* equivalent to android:progress
*
* Note: Prior to 0.6, this is Float value between 0 and 1,
* but it cause so much trouble to implement and it changes to Integer from now on
* secondaryProgress also changes to Integer
*
* @name progress
* @widget ProgressBar
* @type Integer
*
* @accepts Integer
*
* @category simple
* @related http://developer.android.com/reference/android/widget/ProgressBar.html
*
* @author andy
*/
public class ProgressViewAttribute extends ViewAttribute<ProgressBar, Integer>
implements SeekBar.OnSeekBarChangeListener{
public ProgressViewAttribute(ProgressBar view) {
super(Integer.class, view, "progress");
getView().setProgress(0);
if (view instanceof SeekBar){
Binder.getMulticastListenerForView(view, OnSeekBarChangeListenerMulticast.class)
.register(this);
}
}
@Override
protected void doSetAttributeValue(Object newValue) {
if(getView()==null) return;
if (newValue == null) return;
if (newValue instanceof Integer){
getView().setProgress((Integer)newValue);
}
}
@Override
public Integer get() {
if(getView()==null) return null;
return getView().getProgress();
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (fromUser){
this.notifyChanged();
}
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
}
}