package ste.pendu.avdyk;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.File;
import javax.swing.filechooser.FileFilter;
import ste.pendu.wordeditor.*;
import ste.pendu.*;

/**
 *
 */
public class MainEditor extends JFrame
{

  /**
   * Instanciation du {@link PenduBean} avec un mot et placement du bean
   * dans la fenêtre.
   * 
   * @param word le mot à découvrir.
   */
  public MainEditor ()
  {
    super("WordEditor");
    //Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    //setSize(d.width, d.height);
    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {System.exit(0);}
        public void windowOpened(WindowEvent e) {}
      });

    // création du PenduBean
    WordListBean wlBean = new WordListBean();
    setJMenuBar (createMenu(wlBean));
    Container pane = getContentPane();
    pane.setLayout (new BorderLayout());
    pane.add (wlBean);
    pack();
  }
  
  /**
   * Point d'entrée de l'application. Seul le premier argument est pris
   * en compte.
   * 
   * @param args seul le premier élément est pris en compte.
   */
  public static void main(String[] args) {
    MainEditor f = new MainEditor();
    f.show();
  }
  
  /**
   * Création de la barre de menu.
   */
  protected JMenuBar createMenu(WordListBean bean) {
    JMenuBar mb = new JMenuBar();
    try
      {
        ControlFactory cf = bean.getControlFactory();

        JMenu menu = new JMenu("Fichier");
        
        JMenuItem ouvrir = new JMenuItem("Ouvrir");
        ouvrir.addActionListener(cf.getControl(ControlFactory.CONTROL_OUVRIR));
        menu.add(ouvrir);
        
        JMenuItem sauver = new JMenuItem("Sauver");
        sauver.addActionListener(cf.getControl(ControlFactory.CONTROL_SAUVER));
        menu.add(sauver);
        
        JMenuItem sauverComme = new JMenuItem("Sauver Comme");
        sauverComme.addActionListener(cf.getControl(ControlFactory.CONTROL_SAUVER_COMME));
        menu.add(sauverComme);
        
        JMenuItem exit = new JMenuItem("Exit");
        exit.addActionListener(cf.getControl(ControlFactory.CONTROL_QUITTER));
        menu.add(exit);

        mb.add(menu);

        JMenu menuGestion = new JMenu("Gestion");
        
        JMenuItem ajouter = new JMenuItem("Ajouter");
        ajouter.addActionListener(cf.getControl(ControlFactory.CONTROL_AJOUTER));
        menuGestion.add(ajouter);
        
        JMenuItem effacer = new JMenuItem("Effacer");
        effacer.addActionListener(cf.getControl(ControlFactory.CONTROL_EFFACER));
        menuGestion.add(effacer);
        
        JMenuItem supprimer = new JMenuItem("Supprimer");
        supprimer.addActionListener(cf.getControl(ControlFactory.CONTROL_SUPPRIMER));
        menuGestion.add(supprimer);
        
        mb.add(menuGestion);
        
      }
    catch (ControlFactoryException cfe)
      {
      }
    
    return mb;
  }
  
}
