package fr.iutfbleau.papillon; import java.util.ArrayList; import javax.swing.*; import java.awt.event.*; /** * La classe GestionModif gère les boutons de la fenêtre * de modification d’un rappel dans l’application Papillon. *

* Elle permet à l’utilisateur de valider ou d’annuler les changements * effectués sur un rappel existant. *

* * @version 1.0 * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL */ public class GestionModif extends ArrayList 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 rang; /** Sélecteur du thème du rappel. */ private final JComboBox 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 rang, JComboBox 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. *

* Si l’utilisateur clique sur Annuler, la fenêtre principale est réaffichée. * Si l’utilisateur clique sur Valider, les changements sont enregistrés. *

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