package game.view.inventory;
import beans.core.GeneralConstant;
import game.entity.Alphabet;
import game.model.inventory.InventoryExitModel;
import game.view.ListScreen;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.util.Observable;
/**
* Classe représentant la vue de l'écran pour confirmer la sortie du jeu.
* @author Elragos
* @version InventoryExitScreen 1.0
* @since Game 1.0
*/
public class InventoryExitScreen extends InventoryScreenPatern {
private InventoryExitModel exitModel;
private final ListScreen listScreen;
private final String exitMessage = GeneralConstant.BUNDLE.getString("EXIT_SENTENCE");
/**
* Constructeur de la vue, prend un modèle pour référence.
* @param inventoryModel le modèle de référence.
* @version InventoryExitScreen 1.0
* @since InventoryExitScreen 1.0
* @see InventoryExitModel
*/
public InventoryExitScreen(final InventoryExitModel exitModel) {
this.exitModel = exitModel;
this.exitModel.addObserver(this);
listScreen = new ListScreen(exitModel.getListModel());
}
/**
* Récupérer l'image représentant le menu.
* @return l'image représentant le menu
* @since InventoryExitScreen 1.0
*/
@Override
public Image getImage() {
final BufferedImage displayedImage = new BufferedImage(background.getWidth(null), background.getHeight(null), BufferedImage.TYPE_INT_ARGB);
final Graphics2D graphic = displayedImage.createGraphics();
graphic.drawImage(background, 0, 0, null);
graphic.drawImage(Alphabet.createString(exitMessage, displayedImage.getWidth()), 20, 30, null);
final Image imageListScreen = listScreen.getImage();
if (imageListScreen != null) {
graphic.drawImage(listScreen.getImage(), 20, 95, null);
}
graphic.dispose();
return displayedImage;
}
/**
* Méthode appelé lors de la mise à jour du modèle observé.
* @param o le modèle qui a été mis à jour.
* @param arg les arguments de mise à jour (non utilisé).
* @since InventoryExitScreen 1.0
* @see InventoryExitModel
*/
@Override
public void update(final Observable o, final Object arg) {
exitModel = (InventoryExitModel) o;
}
}