package gueei.binding.app;
import gueei.binding.Binder;
import gueei.binding.Binder.InflateResult;
import gueei.binding.menu.OptionsMenuBinder;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class BindingTabActivity extends TabActivity {
OptionsMenuBinder menuBinder;
Object mMenuViewModel;
private View mRootView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
protected View setAndBindRootView(int layoutId, Object... contentViewModel){
if (mRootView!=null){
throw new IllegalStateException("Root view is already created");
}
InflateResult result = Binder.inflateView(this, layoutId, null, false);
mRootView = result.rootView;
setContentView(mRootView);
for(int i=0; i<contentViewModel.length; i++){
Binder.bindView(this, result, contentViewModel[i]);
}
return mRootView;
}
protected void setAndBindOptionsMenu(int menuId, Object menuViewModel){
if (menuBinder!=null){
throw new IllegalStateException("Options menu can only set once");
}
menuBinder = new OptionsMenuBinder(menuId);
mMenuViewModel = menuViewModel;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// No menu is defined
if (menuBinder==null)
return false;
return menuBinder.onCreateOptionsMenu(this, menu, mMenuViewModel);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (menuBinder==null)
return false;
return menuBinder.onPrepareOptionsMenu(this, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (menuBinder!=null)
return menuBinder.onOptionsItemSelected(this, item);
return super.onOptionsItemSelected(item);
}
public View getRootView() {
return mRootView;
}
public void setRootView(View rootView) {
mRootView = rootView;
}
}