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();
 | ||
|         }
 | ||
|     }
 | ||
| } |