Package practica1.actions

Source Code of practica1.actions.ActionCerrar

package practica1.actions;

import java.awt.event.ActionEvent;
import java.util.ArrayList;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import practica1.Practica1;
import practica1.controller.Controller;
import practica1.language.Language;
import practica1.language.LanguageEvent;
import practica1.language.LanguageListener;
import practica1.logic.LogicExperimento;
import practica1.logic.LogicPoblacion;
import practica1.manejoExperimento.ManejoExperimento;

/**
* Clase que implementa la acción para cerrar un experimento
* @author Miguel González - Ceura
*/
public class ActionCerrar extends AbstractAction implements LanguageListener {

    /**
     * Constructor de la clase
     */
    public ActionCerrar() {
        super(Language.getI().getP("CERRAR"), null);
       
        putValue(SHORT_DESCRIPTION, Language.getI().getP("CERRAR_EXPERIMENTO"));
        putValue(NAME, Language.getI().getP("CERRAR"));
        putValue(SELECTED_KEY, Boolean.TRUE);
       
        initIdiomaListener();
    }
   
    private void initIdiomaListener() {
        Language.getI().addLanguageListener(this);       
    }
   
    /**
     * Cuando sucede la acción nos encargamos de cerrar el experimento seleccionado
     * @param e ActionEvent Evento producido
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        LogicExperimento exp = Controller.getInstance().
                getExperimentoSeleccionado();
       
        ArrayList<LogicPoblacion> poblacionesSinGuardar = new
                ArrayList<LogicPoblacion>();
       
        if(!exp.isModified()) {
            ArrayList<LogicPoblacion> poblaciones = exp.getPoblaciones();
            for(int i=0; i< poblaciones.size(); i++) {
                if(poblaciones.get(i).isModified()) {
                    poblacionesSinGuardar.add(poblaciones.get(i));
                }
            }
        }
           
        if(exp.isModified() || !poblacionesSinGuardar.isEmpty()) {
            int res = JOptionPane.showConfirmDialog(Practica1.getInstance(),
                    Language.getI().getP("DESEA_GUARDAR_EXPERIMENTO")
                    , Language.getI().getP("CERRAR"),
                    JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
            if(res == JOptionPane.OK_OPTION) {
                ManejoExperimento.guardarExperimento(exp);
               
                Controller.getInstance().removeExperimento(exp);
            } else if(res == JOptionPane.NO_OPTION) {
                Controller.getInstance().removeExperimento(exp);
            }
        } else {
            Controller.getInstance().removeExperimento(exp);
        }
    }

    /**
     * Al cambiar el idioma actualizamos el nombre y la descripción
     * @param evt LanguageEvent
     */
    @Override
    public void idiomaChange(LanguageEvent evt) {
        putValue(SHORT_DESCRIPTION, Language.getI().getP("CERRAR_EXPERIMENTO"));
        putValue(NAME, Language.getI().getP("CERRAR"));
    }
   
}
TOP

Related Classes of practica1.actions.ActionCerrar

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.