package ste.pendu.wordeditor;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import javax.swing.JOptionPane;
import java.io.File;
import java.io.IOException;

/**
 * Contrôle l'ouverture de fichier.
 * 
 */
public class ControlOuvrir extends AbstractControl
{

  public ControlOuvrir()
  {
    super();
  }

  public ControlOuvrir(WordListModel model, View view)
  {
    super(model, view);
  }

  /**
   * Action à effectuer.
   * 
   * <p>Lorsqu'un bouton a été pressé ou la touche <code>ENTER</code> a
   * été pressée dans un JTextField, et que l'action est à l'écoute,
   * cette méthode est exécutée. On peut récupérer le paramètre pour
   * savoir quel composant a propagé l'événement et les informations
   * qu'il y a enfermées.</p>
   * 
   * @param action l'action transmise par l'événement
   */
  public void actionPerformed(ActionEvent action)
  {
    JFileChooser chooser = new JFileChooser(".");
    WordListFileFilter wltext = new WordListFileFilter("txt");
    WordListFileFilter wlser = new WordListFileFilter("ser");
    chooser.addChoosableFileFilter(wltext);
    chooser.addChoosableFileFilter(wlser);
                          
    int returnVal = chooser.showOpenDialog(null);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
      try
        {
          File f = chooser.getSelectedFile();
          this.model.setFileName(f.getPath());
        }
      catch(IOException ioex)
        {
          JOptionPane.showMessageDialog(null,
                                        ioex.getMessage(),
                                        "WordEditor!",
                                        JOptionPane.ERROR_MESSAGE);
        }
    }
    
  }

}
