/*******************************************************************************
* Copyright 2011 Antti Havanko
*
* This file is part of Motiver.fi.
* Motiver.fi is licensed under one open source license and one commercial license.
*
* Commercial license: This is the appropriate option if you want to use Motiver.fi in
* commercial purposes. Contact license@motiver.fi for licensing options.
*
* Open source license: This is the appropriate option if you are creating an open source
* application with a license compatible with the GNU GPL license v3. Although the GPLv3 has
* many terms, the most important is that you must provide the source code of your application
* to your users so they can be free to modify your application for their own needs.
******************************************************************************/
package com.delect.motiver.client.presenter.admin;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.user.client.History;
import com.delect.motiver.client.presenter.NotePanelPresenter;
import com.delect.motiver.client.presenter.NotePanelPresenter.NotePanelDisplay;
import com.delect.motiver.client.presenter.Presenter;
import com.delect.motiver.client.presenter.admin.ExerciseNamesPresenter.ExerciseNamesDisplay;
import com.delect.motiver.client.presenter.admin.FoodNamesPresenter.FoodNamesDisplay;
import com.delect.motiver.client.service.MyServiceAsync;
import com.delect.motiver.client.view.Display;
import com.delect.motiver.client.view.NotePanelView;
import com.delect.motiver.client.view.admin.ExerciseNamesView;
import com.delect.motiver.client.view.admin.FoodNamesView;
/**
*
* Admin page
* - ??
*/
public class AdminPagePresenter extends Presenter {
/**
* Abstract class for view to extend
*/
public abstract static class AdminPageDisplay extends Display {
}
private AdminPageDisplay display;
//child presenters
private NotePanelPresenter notePanelExercises;
private NotePanelPresenter notePanelFoods;
/**
* Admin page
* @param rpcService
* @param eventBus
* @param display
*/
public AdminPagePresenter(MyServiceAsync rpcService, SimpleEventBus eventBus, AdminPageDisplay display) {
super(rpcService, eventBus);
this.display = display;
notePanelExercises = new NotePanelPresenter(rpcService, eventBus, (NotePanelDisplay)GWT.create(NotePanelView.class));
notePanelFoods = new NotePanelPresenter(rpcService, eventBus, (NotePanelDisplay)GWT.create(NotePanelView.class));
}
@Override
public Display getView() {
return display;
}
@Override
public void onBind() {
//set token
History.newItem("user/admin/", false);
}
@Override
public void onRun() {
//today
notePanelExercises.run(display.getBaseContainer());
//add meal list to notepanel
notePanelExercises.setTitle("Exercises");
ExerciseNamesPresenter exerciseNamesPresenter = new ExerciseNamesPresenter(rpcService, eventBus, (ExerciseNamesDisplay)GWT.create(ExerciseNamesView.class));
notePanelExercises.addNewPresenter(exerciseNamesPresenter);
//workouts
notePanelFoods.run(display.getBaseContainer());
//add meal list to notepanel
FoodNamesPresenter foodNamesPresenter = new FoodNamesPresenter(rpcService, eventBus, (FoodNamesDisplay)GWT.create(FoodNamesView.class));
notePanelFoods.setTitle("Foods");
notePanelFoods.addNewPresenter(foodNamesPresenter);
}
@Override
public void onStop() {
if(notePanelExercises != null) {
notePanelExercises.stop();
}
if(notePanelFoods != null) {
notePanelFoods.stop();
}
}
}