package gueei.binding.markupDemoICS.viewModels;
import gueei.binding.Command;
import gueei.binding.collections.ArrayListObservable;
import gueei.binding.labs.EventAggregator;
import gueei.binding.markupDemoICS.ShowDemoActivity;
import gueei.binding.observables.BooleanObservable;
import gueei.binding.observables.IntegerObservable;
import gueei.binding.observables.StringObservable;
import gueei.binding.serialization.ViewModelParceler;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class DemoCategory {
public final BooleanObservable ShowDemoInNewActivity = new BooleanObservable(true);
public final StringObservable Name =
new StringObservable();
public final ArrayListObservable<DemoEntry> Entries =
new ArrayListObservable<DemoEntry>(DemoEntry.class);
public final IntegerObservable SelectedDemoPosition =
new IntegerObservable(-1);
private Context mContext;
public DemoCategory(Context context, String name){
Name.set(name);
mContext = context;
}
public final Command ShowDemo = new Command(){
@Override
public void Invoke(View view, Object... args) {
if (args.length>0){
DemoEntry entry = (DemoEntry)args[0];
doShowDemo(entry);
}
}
};
private void doShowDemo(DemoEntry entry){
if (ShowDemoInNewActivity.get()){
Intent intent = new Intent(mContext, ShowDemoActivity.class);
Bundle bundle = ViewModelParceler.parcelViewModel(entry);
intent.putExtra("Entry", bundle);
mContext.startActivity(intent);
}else{
Bundle bundle = ViewModelParceler.parcelViewModel(entry);
EventAggregator.getInstance(mContext)
.publish("ShowDemo", DemoCategory.this, bundle);
}
}
public void showFirstDemo(){
if (!ShowDemoInNewActivity.get()){
SelectedDemoPosition.set(0);
doShowDemo(Entries.get(0));
}
}
}