1: package ste.pendu.wordeditor;

  3: import java.awt.event.ActionListener;
  4: import java.awt.event.ActionEvent;
  5: import javax.swing.JFileChooser;
  6: import javax.swing.filechooser.FileFilter;
  7: import javax.swing.JOptionPane;
  8: import java.io.File;
  9: import java.io.IOException;

 11: /**
 12:  * Contrôle l'ouverture de fichier.
 13:  * 
 14:  */
 15: public class ControlOuvrir extends AbstractControl
 16: {

 18:   public ControlOuvrir()
 19:   {
 20:     super();
 21:   }

 23:   public ControlOuvrir(WordListModel model, View view)
 24:   {
 25:     super(model, view);
 26:   }

 28:   /**
 29:    * Action à effectuer.
 30:    * 
 31:    * <p>Lorsqu'un bouton a été pressé ou la touche <code>ENTER</code> a
 32:    * été pressée dans un JTextField, et que l'action est à l'écoute,
 33:    * cette méthode est exécutée. On peut récupérer le paramètre pour
 34:    * savoir quel composant a propagé l'événement et les informations
 35:    * qu'il y a enfermées.</p>
 36:    * 
 37:    * @param action l'action transmise par l'événement
 38:    */
 39:   public void actionPerformed(ActionEvent action)
 40:   {
 41:     JFileChooser chooser = new JFileChooser(".");
 42:     WordListFileFilter wltext = new WordListFileFilter("txt");
 43:     WordListFileFilter wlser = new WordListFileFilter("ser");
 44:     chooser.addChoosableFileFilter(wltext);
 45:     chooser.addChoosableFileFilter(wlser);
 46:                           
 47:     int returnVal = chooser.showOpenDialog(null);
 48:     if(returnVal == JFileChooser.APPROVE_OPTION) {
 49:       try
 50:         {
 51:           File f = chooser.getSelectedFile();
 52:           this.model.setFileName(f.getPath());
 53:         }
 54:       catch(IOException ioex)
 55:         {
 56:           JOptionPane.showMessageDialog(null,
 57:                                         ioex.getMessage(),
 58:                                         "WordEditor!",
 59:                                         JOptionPane.ERROR_MESSAGE);
 60:         }
 61:     }
 62:     
 63:   }

 65: }