package game.model.inventory;
import beans.core.GeneralConstant;
import beans.enumeration.InventoryMode;
import game.model.ListModel;
import java.util.ArrayList;
import java.util.Collections;
/**
* Model qui controle la partie exit de l'inventaire
* @author Elragos
* @version InventoryExitModel 1.0
* @since Game 1.0
*/
public class InventoryExitModel extends InventoryModelPatern {
/**
* Index sélectionné de la liste
* @since InventoryExitModel 1.0
*/
private int currentIndex = 0;
/**
* Constructeur par défaut. Créé un menu demandant confirmation de quitter le jeu, sans sauvegarder au préalable.
* @since InventoryExitModel 1.0
*/
public InventoryExitModel(){
ArrayList<String> choiceList = new ArrayList<String>(2);
Collections.addAll(choiceList, new String[]{GeneralConstant.BUNDLE.getString("NO"),GeneralConstant.BUNDLE.getString("YES")});
listModel = new ListModel(choiceList, choiceList.size()+1);
}
/**
* Gère l'appui sur la touche entrée
* @return Le menu sur lequel on doit retourner
* @since InventoryExitModel 1.0
* @see InventoryModelPattern
*/
@Override
public InventoryMode EnterRequest() {
//Vérifier l'index courant
switch (listModel.getCurrentPosition()){
//Cas "Oui" sélectionné
case 1:
//Quitter le jeu
return null;
//Par défaut
default:
//Retour au menu principal de l'inventaire
return InventoryMode.MENU;
}
}
/**
* Bouger le curseur, délégé à la classe ListModel
* @param x mouvement du curseur sur l'axe x
* @param y mouvement du curseur sur l'axe y
* @since InventoryExitModel 1.0
* @see ListModel
*/
@Override
public void moveCursor(final int x, final int y) {
listModel.updateCursorPosition(x, y);
setChanged();
notifyObservers();
}
/**
* Retourne sur le menu principal
* @return <code>InventoryMode.MENU</code>
* @since InventoryExitModel 1.0
* @see InventoryModelPatern
*/
@Override
public InventoryMode back() {
return InventoryMode.MENU;
}
/**
* Remet le curseur sur "Non"
* @since InventoryExitModel 1.0
*/
@Override
public void resetCursor() {
//Mettre le curseur sur "Non"
currentIndex = 0;
}
}