133 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
		
		
			
		
	
	
			133 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
|  | package fr.iutfbleau.papillon;
 | |||
|  | 
 | |||
|  | import java.util.ArrayList;
 | |||
|  | import javax.swing.*;
 | |||
|  | import java.awt.event.*;
 | |||
|  | 
 | |||
|  | 
 | |||
|  | /**
 | |||
|  |  * La classe <code>GestionModif</code> gère les boutons de la fenêtre
 | |||
|  |  * de modification d’un rappel dans l’application <b>Papillon</b>.
 | |||
|  |  * <p>
 | |||
|  |  * Elle permet à l’utilisateur de valider ou d’annuler les changements
 | |||
|  |  * effectués sur un rappel existant.
 | |||
|  |  * </p>
 | |||
|  |  *
 | |||
|  |  * @version 1.0
 | |||
|  |  * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
 | |||
|  |  */
 | |||
|  | public class GestionModif extends ArrayList<JButton> implements ActionListener{
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     /** Bouton de validation. */
 | |||
|  |     private final JButton boutonValider;
 | |||
|  | 
 | |||
|  |     /** Bouton d'annulation. */
 | |||
|  |     private final JButton boutonAnnuler;
 | |||
|  | 
 | |||
|  |     /** Champ de saisie pour le titre du rappel. */
 | |||
|  |     private final JTextField champTitre;
 | |||
|  | 
 | |||
|  |     /** Champ de saisie pour le contenu du rappel. */
 | |||
|  |     private final JTextArea champContenu;
 | |||
|  | 
 | |||
|  |     /** Sélecteur du niveau de priorité. */
 | |||
|  |     private JComboBox<Integer> rang;
 | |||
|  | 
 | |||
|  |     /** Sélecteur du thème du rappel. */
 | |||
|  |     private final JComboBox<String> comboTheme;
 | |||
|  | 
 | |||
|  |     /** Référence au rappel à modifier. */
 | |||
|  |     private Rappel rappel;
 | |||
|  | 
 | |||
|  |     /** Gestionnaire des commandes agissant sur les rappels. */
 | |||
|  |     private final GestionRappel ges = new GestionRappel();
 | |||
|  | 
 | |||
|  |     /** Référence à la fenêtre principale. */
 | |||
|  |     private final Main parent;
 | |||
|  | 
 | |||
|  |     /** Référence à la fenêtre de modification. */
 | |||
|  |     private final JFrame f;    
 | |||
|  | 
 | |||
|  |     /**
 | |||
|  |      * Constructeur du gestionnaire de boutons pour la fenêtre de modification.
 | |||
|  |      *
 | |||
|  |      * @param f la fenêtre de modification
 | |||
|  |      * @param parent la fenêtre principale
 | |||
|  |      * @param champTitre le champ de texte pour le titre
 | |||
|  |      * @param champContenu la zone de texte pour le contenu
 | |||
|  |      * @param rang la liste déroulante de priorité
 | |||
|  |      * @param comboTheme la liste déroulante du thème
 | |||
|  |      * @param r le rappel à modifier
 | |||
|  |      */
 | |||
|  |     public GestionModif(JFrame f, Main parent, JTextField champTitre, JTextArea champContenu, JComboBox<Integer> rang, JComboBox<String> comboTheme, Rappel r){
 | |||
|  | 
 | |||
|  |         this.f = f;
 | |||
|  |         this.parent = parent;
 | |||
|  |         this.champTitre = champTitre;
 | |||
|  |         this.champContenu = champContenu;
 | |||
|  |         this.rang = rang;
 | |||
|  |         this.comboTheme = comboTheme;
 | |||
|  |         this.rappel = r;
 | |||
|  | 
 | |||
|  |         boutonValider = new JButton("Valider");
 | |||
|  |         boutonAnnuler = new JButton("Annuler");
 | |||
|  |         this.add(boutonValider);
 | |||
|  |         this.add(boutonAnnuler);
 | |||
|  |         boutonValider.addActionListener(this);
 | |||
|  |         boutonAnnuler.addActionListener(this);
 | |||
|  | 
 | |||
|  |     }
 | |||
|  | 
 | |||
|  |     /**
 | |||
|  |      * Gère les actions effectuées sur les boutons de la fenêtre.
 | |||
|  |      * <p>
 | |||
|  |      * Si l’utilisateur clique sur <b>Annuler</b>, la fenêtre principale est réaffichée.  
 | |||
|  |      * Si l’utilisateur clique sur <b>Valider</b>, les changements sont enregistrés.
 | |||
|  |      * </p>
 | |||
|  |      *
 | |||
|  |      * @param e l’événement d’action déclenché par un bouton
 | |||
|  |      */
 | |||
|  |     @Override
 | |||
|  |     public void actionPerformed(ActionEvent e) {
 | |||
|  |         Object src = e.getSource();
 | |||
|  | 
 | |||
|  |         if (src == boutonAnnuler) {
 | |||
|  | 
 | |||
|  |             parent.setLocation(f.getLocation());
 | |||
|  |             parent.setVisible(true);
 | |||
|  |             f.dispose();
 | |||
|  |             return;
 | |||
|  |         }
 | |||
|  | 
 | |||
|  |         if (src == boutonValider) {
 | |||
|  |             String t = champTitre.getText().trim();
 | |||
|  |             String c = champContenu.getText().trim();
 | |||
|  |             int r = (Integer) rang.getSelectedItem();
 | |||
|  |             String th = (String) comboTheme.getSelectedItem();
 | |||
|  | 
 | |||
|  |             if (t.isEmpty()) {
 | |||
|  |                 JOptionPane.showMessageDialog(f, "Veuillez remplir le titre.", "Champs manquants", JOptionPane.WARNING_MESSAGE);
 | |||
|  |                 return;
 | |||
|  |             }
 | |||
|  | 
 | |||
|  |             //  MAJ directe du rappel
 | |||
|  |             
 | |||
|  |                 rappel.setTitre(t);     
 | |||
|  |                 rappel.setContenu(c); 
 | |||
|  |                 rappel.setRang(r);
 | |||
|  |                 rappel.setTheme(th);   
 | |||
|  |                 try{
 | |||
|  |                 ges.modifierParId(rappel.getId(), rappel);
 | |||
|  |                 } catch (Exception ex) {
 | |||
|  |             ex.printStackTrace();
 | |||
|  |                 }
 | |||
|  |             
 | |||
|  | 
 | |||
|  |             Main reParent = new Main();
 | |||
|  |             reParent.setLocation(f.getLocation());
 | |||
|  |             reParent.setVisible(true);
 | |||
|  |             f.dispose();
 | |||
|  |         }
 | |||
|  |     }
 | |||
|  | }
 |