Package practica1.actions

Source Code of practica1.actions.ActionAbrir

package practica1.actions;

import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import javax.swing.AbstractAction;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
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.manejoExperimento.ExperimentoInvalidoException;
import practica1.manejoExperimento.ManejoExperimento;

/**
* Clase que implementa la acción para abrir un experimento
* @author Miguel González - Ceura
*/
public class ActionAbrir extends AbstractAction implements LanguageListener {
    /**
     * Constructor de la clase
     */
    public ActionAbrir() {
        super(Language.getI().getP("ABRIR"), null);

        Language.getI().addLanguageListener(this);
       
        putValue(SHORT_DESCRIPTION, Language.getI().getP("ABRIR_EXPERIMENTO"));
        putValue(NAME, Language.getI().getP("ABRIR"));
        //Estableces la acción en respuesta a CTRL + SHIFT + A
        putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A,
                InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));

        //Establece el nemonico del action a A
        putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_A));
        //Se establece el estado seleccionado del action
        putValue(SELECTED_KEY, Boolean.TRUE);
    }
   
   
    /**
     * Cuando sucede la acción nos encargamos de preguntar que experimento
     * se quiere abrir y lo cargamos en el modelo de la práctica
     * @param e ActionEvent Evento producido
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        //PanelExperimentos motorExperimentos = PanelExperimentos.getInstance();
        JFileChooser fcAbrir = new JFileChooser();
        int res = fcAbrir.showDialog(Practica1.getInstance(),
                Language.getI().getP("ABRIR_EXPERIMENTO"));

        if(res == JFileChooser.APPROVE_OPTION) {
            File fichAbrir = fcAbrir.getSelectedFile();
           
            if(Controller.getInstance().isExperimentoAbierto(fichAbrir)) {
                JOptionPane.showMessageDialog(Practica1.getInstance(),
                        Language.getI().getP("EXPERIMENTO_YA_ABIERTO"),
                        Language.getI().getP("ADVERTENCIA"),
                                JOptionPane.WARNING_MESSAGE);
            } else {
                try {
                    LogicExperimento expAbierto =
                    ManejoExperimento.abrirExperimento(fichAbrir);
               
                    Controller.getInstance().addExperimento(expAbierto);
                } catch (ExperimentoInvalidoException ex) {
                    JOptionPane.showMessageDialog(Practica1.getInstance(),
                        Language.getI().getP("EXPERIMENTO_FORMATO_INVALIDO"),
                        Language.getI().getP("ADVERTENCIA"),
                                JOptionPane.WARNING_MESSAGE);
                    Practica1.log.error(Language.getI().getP("ERROR"), ex);
                }
            }
        }
    }

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

Related Classes of practica1.actions.ActionAbrir

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.