Package practica1.actions

Source Code of practica1.actions.ActionNuevaPoblacion

package practica1.actions;

import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.KeyStroke;
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.ui.dialog.DialogNuevaPoblacion;
import practica1.ui.dialog.DialogNuevoExperimento;

/**
* Clase que implementa la acción de crear una nueva población en un experimento
* @author Miguel González - Ceura
*/
public class ActionNuevaPoblacion extends AbstractAction implements LanguageListener {

    private LogicExperimento experimento;
   
    /**
     * Constructor de la clase
     */
    public ActionNuevaPoblacion() {
        super(Language.getI().getP("NUEVA_POBLACION"), null);

        Language.getI().addLanguageListener(this);
       
        experimento = null;
      
        putValue(SHORT_DESCRIPTION, Language.getI().getP("NUEVA_POBLACION"));
        putValue(NAME, Language.getI().getP("NUEVA_POBLACION"));
        putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_P,
                InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));
        putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
        putValue(SELECTED_KEY, Boolean.TRUE);
    }
   
    /**
     * Constructor de la clase que asocia la acciñon a un experimento
     * @param experimento LogicExperimento Experimento al que se asocia la acción
     */
    public ActionNuevaPoblacion(LogicExperimento experimento) {
        super(Language.getI().getP("NUEVA_POBLACION"), null);

        Language.getI().addLanguageListener(this);
       
        this.experimento = experimento;
       
        putValue(SHORT_DESCRIPTION, Language.getI().getP("NUEVA_POBLACION"));
        putValue(NAME, Language.getI().getP("NUEVA_POBLACION"));
        putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_P,
                InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));
        putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
        putValue(SELECTED_KEY, Boolean.TRUE);       
    }
   
    /**
     * Cuando sucede la acción nos encargamos de crear una nueva población
     * al experimento seleccionado, o bien si la acción está asociada directamente
     * al experimento
     * @param e ActionEvent Evento prtoducido
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        LogicExperimento ex;
        if(experimento != null) {
            ex = experimento;
        } else {
            ex = Controller.getInstance().getExperimentoSeleccionado();
        }
       
        DialogNuevaPoblacion dialog = new DialogNuevaPoblacion(
                Practica1.getInstance(), ex);
       
        dialog.setVisible(true);

        if(dialog.getAction() == DialogNuevoExperimento.ACEPTAR) {
            String nombrePoblacion = dialog.getNombrePoblacion();
            LogicPoblacion p = new LogicPoblacion(
                nombrePoblacion, ex);
            p.setModified(true);

            Controller.getInstance().addPoblacion(p);
        }
    }

    /**
     * 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("NUEVA_POBLACION"));
        putValue(NAME, Language.getI().getP("NUEVA_POBLACION"));
    }
   
}
TOP

Related Classes of practica1.actions.ActionNuevaPoblacion

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.