package com.gueei.demos.markupDemo.viewModels;
import gueei.binding.TwoWayDependentObservable;
import gueei.binding.collections.ArrayListObservable;
import gueei.binding.observables.IntegerObservable;
public class SingleChoiceList {
public final IntegerObservable CheckedPosition = new IntegerObservable();
public final ArrayListObservable<String> GenreList =
new ArrayListObservable<String>(String.class);
private static final String[] GENRES = new String[] {
"Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama",
"Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller"
};
public SingleChoiceList(){
GenreList.setArray(GENRES);
CheckedPosition.set(4);
}
public final TwoWayDependentObservable<Float> SeekPosition =
new TwoWayDependentObservable<Float>(Float.class, CheckedPosition){
@Override
public boolean ConvertBack(Object value, Object[] outResult) {
outResult[0] = Math.round((Float)value * GenreList.size());
return true;
}
@Override
public Float calculateValue(Object... args) throws Exception {
return (float)CheckedPosition.get() / (float)GenreList.size();
}
};
}