package com.heavylead.presenters;
import com.google.inject.Inject;
import com.heavylead.models.interfaces.ICampaign;
import com.heavylead.models.interfaces.ISelectCampaignModel;
import com.heavylead.views.interfaces.INavigator;
import com.heavylead.views.interfaces.ISelectCampaignScenarioView;
import com.heavylead.views.interfaces.ISelectCampaignScenarioViewListener;
/**
* The Class SelectCampaignScenarioPresenter.
*/
public class SelectCampaignScenarioPresenter
extends AbstractPresenter
implements ISelectCampaignScenarioViewListener {
/** The _view. */
private ISelectCampaignScenarioView _view;
/** The _model. */
private ISelectCampaignModel _model;
/** The _navigator. */
private INavigator _navigator;
/**
* Instantiates a new select campaign scenario presenter.
*
* @param view the view
* @param model the model
* @param navigator the navigator
*/
@Inject
SelectCampaignScenarioPresenter(final ISelectCampaignScenarioView view,
final ISelectCampaignModel model,
final INavigator navigator) {
super(view);
_model = model;
_view = view;
_view.setViewListener(this);
_navigator = navigator;
}
/**
* On show.
*
* @see com.heavylead.AbstractPresenter#onShow()
*/
@Override
public final void onShow() {
ICampaign selectedCampaign = _model.getSelectedCampaign();
// ICampaignStage[] stages = selectedCampaign.getOrderedStages();
//
// TODO: set allegiance names and colors to top and bottom victory banners
// TODO: set allegiance symbol to top and bottom victory buttons
// TODO: display scenarios, in stages, with proper connections
// TODO: each scenario should be enabled or not, depending on current scenario and allegiance of playing selecting
// TODO: each scenario should be colored according to winner
// _view.setUpperVictoryBanner(stages[0].getAllegiances().get(0));
// _view.setLowerVictoryBanner(stages[stages.length - 1].getAllegiances().get(0));
//
// List<List<CampaignScenarioAdapter>> scenarioAdapters = new ArrayList<List<CampaignScenarioAdapter>>();
// List<List<CampaignScenarioConnector>> scenarioConnectors = new ArrayList<List<CampaignScenarioConnector>>();
//
// for (ICampaignStage stage : stages) {
// List<String> stageAllegiances = stage.getAllegiances();
// List<CampaignScenarioAdapter> stageAdapter = new ArrayList<CampaignScenarioAdapter>();
// List<CampaignScenarioConnector> stageConnector = new ArrayList<CampaignScenarioConnector>();
//
// for (ICampaignScenario scenario : stage.getScenarios()) {
// boolean isEnabled = false;
//
// // // The scenario should be enabled if:
// // // The current scenario is not in progress
// // if (!selectedCampaign.getCurrentScenario().getInProgress()) {
// // // AND the current user is the same allegiance as the complete
// // // TODO: for now, we're assuming the player will be starting
// // // the server, and can pick any allegiance they want at that point
// //
// // // AND this scenario is in the list of "next scenarios" for the allegiance for the current scenario
// // String winner = selectedCampaign.getCurrentScenario().getWinner();
// // List<ICampaignScenario> nextScenarios = selectedCampaign.getCurrentScenario().getNextScenarios(winner);
// // if (nextScenarios.contains(scenario)) {
// // isEnabled = true;
// // }
// // }
//
// // TODO: the scenario should be enabled if it is in the list of campaign.getNextScenarios?
//
// stageAdapter.add(new CampaignScenarioAdapter(isEnabled, scenario.getSelected(), scenario.getBackgroundColors(), scenario.getTag()));
//
// for (String allegiance : stageAllegiances) {
// List<ICampaignScenario> nextScenarios = scenario.getNextScenarios(allegiance);
// for (ICampaignScenario nextScenario : nextScenarios) {
// stageConnector.add(new CampaignScenarioConnector(scenario.getTag(), nextScenario.getTag()));
// }
// }
// }
//
// scenarioAdapters.add(stageAdapter);
// scenarioConnectors.add(stageConnector);
// }
//
// _view.displayCampaignScenarios(scenarioAdapters, scenarioConnectors);
}
/**
* @see com.heavylead.views.interfaces.ISelectCampaignScenarioViewListener#oKPressed()
*/
@Override
public void oKPressed() {
// TODO Auto-generated method stub
}
/**
* @see com.heavylead.views.interfaces.ISelectCampaignScenarioViewListener#cancelPressed()
*/
@Override
public final void cancelPressed() {
_navigator.hideSelectCampaignScenario();
_navigator.displaySelectCampaign();
}
}
|