Files
SAE-PROJET-PAPILLON/src/fr/iutfbleau/papillon/GestionModif.java

133 lines
4.1 KiB
Java
Raw Normal View History

2025-10-26 22:42:53 +01:00
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 dun rappel dans lapplication <b>Papillon</b>.
* <p>
* Elle permet à lutilisateur de valider ou dannuler 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 lutilisateur clique sur <b>Annuler</b>, la fenêtre principale est réaffichée.
* Si lutilisateur clique sur <b>Valider</b>, les changements sont enregistrés.
* </p>
*
* @param e lévénement daction 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();
}
}
}