Package game.view.inventory

Source Code of game.view.inventory.InventoryEquipmentScreen

package game.view.inventory;

import game.entity.Alphabet;
import game.model.inventory.InventoryEquipmentModel;
import game.model.inventory.InventoryStatModel;
import game.view.ListScreen;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.util.Observable;

/**
* Ecran de configuration de l'equipement, composé de deux listes
* La premiere permet de choisir le type dequipement a modifier
* la deuxieme permet de consulter les modifications portées a son equipement
*
* une sous liste permet d'aller chercher l'equipement dans linventaire
* apres application d'un filtre concernant le type d'equipement
*
* @author mastersnes
* @version InventoryEquipmentScreen 1.0
* @since Game 1.0
*/
public class InventoryEquipmentScreen extends InventoryScreenPatern {

    /**
     * Modèle de l'écran
     * @since InventoryStatScreen 1.0
     */
    private InventoryEquipmentModel equipmentModel;
    private ListScreen listScreen;

    /**
     * Créer l'écran de gestion de lequipement
     * @param equipmentModel Le modèle à observer.
     * @since InventoryStatScreen 1.0
     * @see InventoryStatModel
     */
    public InventoryEquipmentScreen(final InventoryEquipmentModel equipmentModel) {
        this.equipmentModel = equipmentModel;
        listScreen = new ListScreen(equipmentModel.getTypeEquipmentArray());
        equipmentModel.addObserver(this);
    }

    /**
     * Dessiner et récupérer l'image de l'écran.
     * @return l'image correspondant à l'écran.
     * @since InventoryStatScreen 1.0
     * @see Image
     */
    @Override
    public Image getImage() {
        final BufferedImage image = new BufferedImage(background.getWidth(null), background.getHeight(null), BufferedImage.TYPE_INT_ARGB);
        final Graphics2D g = image.createGraphics();
        g.setColor(Color.red);
        g.drawImage(background, 0, 0, null);

        g.drawImage(listScreen.getImage(), 20, 100, null);

        final ListScreen listEquipement = new ListScreen(equipmentModel.getEquipmentsArray());

        g.drawImage(listEquipement.getImage(), 200, 100, null);

        // Si la sous liste doit etre affichée on l'affiche
        if (equipmentModel.isSousList()) {
            final ListScreen tmpListScreen = new ListScreen(equipmentModel.getListModel());
            final int position = equipmentModel.getEquipmentsArray().getCurrentPosition();
            g.drawImage(tmpListScreen.getImage(), 300, 100 + (position * g.getFontMetrics().getHeight()), null);
        }

        g.dispose();
        return image;
    }

    /**
     * Mettre à jour la vue.
     * @param o Le modèle mis à jour.
     * @param arg Les paramètres de mise à jour (non utilisé).
     * @since InventoryStatScreen 1.0
     */
    @Override
    public void update(final Observable o, final Object arg) {
        equipmentModel = (InventoryEquipmentModel) o;
    }
}
TOP

Related Classes of game.view.inventory.InventoryEquipmentScreen

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.