package com.gueei.demos.markupDemo.viewModels;
import gueei.binding.Command;
import gueei.binding.DependentObservable;
import gueei.binding.collections.ArrayListObservable;
import gueei.binding.observables.BooleanObservable;
import gueei.binding.observables.IntegerObservable;
import android.view.View;
public class ArrayListAsListViewSource {
public final ArrayListObservable<ArrayListItem> Items =
new ArrayListObservable<ArrayListItem>(ArrayListItem.class);
public ArrayListAsListViewSource(){
}
public final Command AddItem = new Command(){
@Override
public void Invoke(View view, Object... args) {
Items.add(new ArrayListItem());
}
};
public final Command RemoveItem = new Command(){
@Override
public void Invoke(View view, Object... args) {
if (Items.size()>0)
Items.remove(Items.size() - 1);
}
};
public class ArrayListItem{
private static final String Prefix = "Item: ClickCount=";
public final BooleanObservable Enabled = new BooleanObservable(false);
public final Command ClickTitle = new Command(){
public void Invoke(View view, Object... args) {
ClickCount.set(ClickCount.get()+1);
}
};
public final IntegerObservable ClickCount = new IntegerObservable(0);
public final DependentObservable<String> Title = new DependentObservable<String>(String.class, ClickCount){
@Override
public String calculateValue(Object... args) throws Exception {
return Prefix + ClickCount.get();
}
};
}
}