Files
SAE-PROJET-PAPILLON/src/fr/iutfbleau/papillon/GestionModif.java
2025-10-26 22:42:53 +01:00

133 lines
4.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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