diff --git a/src/fr/iutfbleau/papillon/ChoixRang.java b/src/fr/iutfbleau/papillon/ChoixRang.java index 1b402b8..d3ff0b5 100644 --- a/src/fr/iutfbleau/papillon/ChoixRang.java +++ b/src/fr/iutfbleau/papillon/ChoixRang.java @@ -1,13 +1,36 @@ import javax.swing.*; +/** + * La classe ChoixRang représente une liste déroulante + * permettant de filtrer les rappels selon leur niveau de priorité (rang) + * dans l’application Papillon. + *

+ * L’utilisateur peut sélectionner un rang spécifique ou choisir “Tout” + * pour afficher tous les rappels. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class ChoixRang extends JComboBox { + /** + * Constructeur qui initialise la liste déroulante des rangs. + *

+ * Par défaut, l’élément sélectionné est “Tout”. + *

+ */ public ChoixRang(){ super(new String[]{"Tout", "Rang 1", "Rang 2", "Rang 3","Rang 4", "Rang 5"}); this.setSelectedItem("Tout"); this.addActionListener(this); } + /** + * Met à jour l’affichage des rappels en fonction du rang sélectionné. + * + * @param main la fenêtre principale de l’application Papillon + */ public void tirage(Main main){ main.setTrie(this.getSelectedIndex()); diff --git a/src/fr/iutfbleau/papillon/ColorIcon.java b/src/fr/iutfbleau/papillon/ColorIcon.java index 5def2fc..770b595 100644 --- a/src/fr/iutfbleau/papillon/ColorIcon.java +++ b/src/fr/iutfbleau/papillon/ColorIcon.java @@ -3,28 +3,69 @@ import java.awt.Color; import java.awt.Component; import java.awt.Graphics; +/** + * La classe ColorIcon permet d’afficher un petit carré coloré + * servant d’icône dans l’interface de l’application Papillon. + *

+ * Elle est utilisée notamment pour représenter visuellement un thème de couleur + * associé à un rappel ou un élément d’interface. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class ColorIcon implements Icon { + /** Couleur à afficher dans l’icône. */ private final Color couleur; + + /** Largeur de l’icône. */ private final int largeur; + + /** Hauteur de l’icône. */ private final int hauteur; + /** + * Constructeur de l’icône colorée. + * + * @param couleur la couleur de l’icône + * @param largeur la largeur de l’icône + * @param hauteur la hauteur de l’icône + */ public ColorIcon(Color couleur, int largeur, int hauteur) { this.couleur = couleur; this.largeur = largeur; this.hauteur = hauteur; } + /** + * Renvoie la largeur de l’icône. + * + * @return la largeur de l’icône + */ @Override public int getIconWidth() { return largeur; } + /** + * Renvoie la hauteur de l’icône. + * + * @return la hauteur de l’icône + */ @Override public int getIconHeight() { return hauteur; } + /** + * Dessine l’icône sur le composant spécifié. + * + * @param c le composant sur lequel l’icône est dessinée + * @param g le contexte graphique utilisé pour le dessin + * @param x la position horizontale du coin supérieur gauche + * @param y la position verticale du coin supérieur gauche + */ @Override public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(couleur); diff --git a/src/fr/iutfbleau/papillon/CouleurList.java b/src/fr/iutfbleau/papillon/CouleurList.java index ff3a28f..92f7199 100644 --- a/src/fr/iutfbleau/papillon/CouleurList.java +++ b/src/fr/iutfbleau/papillon/CouleurList.java @@ -2,13 +2,25 @@ import javax.swing.*; import java.awt.*; /** - * Renderer simple pour afficher un petit carré coloré dans la liste déroulante. - * J'utilise juste un switch pour déterminer la couleur à partir du nom. + * La classe CouleurList permet d’afficher des couleurs + * associées à des thèmes dans les listes déroulantes de l’application Papillon. + *

+ * Elle agit comme un renderer personnalisé, affichant un petit carré coloré + * à côté du nom du thème. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL */ public class CouleurList extends DefaultListCellRenderer { - /** renvoie la couleur correspondant au nom affiché dans le menu */ + /** + * Renvoie la couleur correspondant au nom affiché dans le menu déroulant. + * + * @param nom le nom du thème (ex. : "Bleu", "Rouge", "Vert", etc.) + * @return la couleur associée au thème, ou blanc par défaut + */ public Color couleurDe(String nom) { switch (nom) { case "Bleu": return Color.CYAN; @@ -20,6 +32,16 @@ public class CouleurList extends DefaultListCellRenderer { } } + /** + * Personnalise l’affichage des éléments dans la liste déroulante. + * + * @param list la liste affichant les éléments + * @param value l’élément à afficher + * @param index l’indice de l’élément dans la liste + * @param isSelected indique si l’élément est sélectionné + * @param cellHasFocus indique si l’élément a le focus + * @return le composant personnalisé pour l’affichage de l’élément + */ @Override public JLabel getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus) { diff --git a/src/fr/iutfbleau/papillon/FenetreAjout.java b/src/fr/iutfbleau/papillon/FenetreAjout.java index 917c4a9..d50e2f7 100644 --- a/src/fr/iutfbleau/papillon/FenetreAjout.java +++ b/src/fr/iutfbleau/papillon/FenetreAjout.java @@ -3,19 +3,46 @@ import javax.swing.*; import java.awt.*; + +/** + * La classe FenetreAjout permet d’afficher une fenêtre + * dédiée à l’ajout d’un nouveau rappel dans l’application Papillon. + *

+ * Elle contient les champs nécessaires à la saisie du titre, du contenu, + * de la priorité et du thème du rappel. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class FenetreAjout extends JFrame { + /** Champ de saisie pour le titre du rappel. */ private final JTextField champTitre; + + /** Champ de saisie pour le contenu du rappel. */ private final JTextArea champContenu; + + /** Liste de niveaux de priorité disponibles. */ private Integer[] nombres = {1, 2, 3, 4, 5}; + + /** Sélecteur du niveau de priorité. */ private JComboBox rang = new JComboBox<>(nombres); + /** Liste des noms de thèmes disponibles. */ private final String[] nomsCouleurs = {"Bleu", "Rouge", "Vert", "Jaune", "Rose"}; + + /** Sélecteur du thème du rappel. */ private final JComboBox comboTheme = new JComboBox<>(nomsCouleurs); + /** Gestionnaire des boutons d'ajout. */ private GestionAjout listBtnAjout; - + /** + * Constructeur de la fenêtre d’ajout. + * + * @param parent la fenêtre principale de l’application Papillon + */ public FenetreAjout(Main parent) { super("Ajouter un rappel"); ImageIcon logo = new ImageIcon("logo.png"); diff --git a/src/fr/iutfbleau/papillon/GestionAjout.java b/src/fr/iutfbleau/papillon/GestionAjout.java index edef2e5..0975625 100644 --- a/src/fr/iutfbleau/papillon/GestionAjout.java +++ b/src/fr/iutfbleau/papillon/GestionAjout.java @@ -3,18 +3,54 @@ import java.awt.*; import java.awt.event.*; import java.util.ArrayList; +/** + * La classe GestionAjout gère les boutons de la fenêtre + * d’ajout d’un rappel dans l’application Papillon. + *

+ * Elle contient les boutons Valider et Annuler, et définit + * le comportement associé à chacun d’eux. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class GestionAjout 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; - private final JTextArea champContenu; - private JComboBox rang; - private final JComboBox comboTheme; - private final Main parent; - private final JFrame f; + /** 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 à la fenêtre principale. */ + private final Main parent; + + /** Référence à la fenêtre d'ajout. */ + private final JFrame f; + + + /** + * Constructeur du gestionnaire de boutons pour la fenêtre d’ajout. + * + * @param f la fenêtre d’ajout + * @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 + */ public GestionAjout(JFrame f, Main parent, JTextField champTitre, JTextArea champContenu, JComboBox rang, JComboBox comboTheme){ this.f = f; @@ -33,7 +69,17 @@ public class GestionAjout extends ArrayList implements ActionListener{ } - + /** + * Gère les actions effectuées sur les boutons de la fenêtre. + *

+ * Si l’utilisateur clique sur Annuler, la fenêtre d’ajout est fermée + * et la fenêtre principale est réaffichée. + * Si l’utilisateur clique sur Valider, un nouveau rappel est créé + * et ajouté à la liste principale. + *

+ * + * @param e l’événement d’action déclenché par un clic sur un bouton + */ @Override public void actionPerformed(ActionEvent e) { Object src = e.getSource(); diff --git a/src/fr/iutfbleau/papillon/Main.java b/src/fr/iutfbleau/papillon/Main.java index bf26fa2..8d6c7d5 100644 --- a/src/fr/iutfbleau/papillon/Main.java +++ b/src/fr/iutfbleau/papillon/Main.java @@ -6,13 +6,39 @@ import java.awt.event.*; import java.util.ArrayList; import java.util.List; + +/** + * La classe Main représente la fenêtre principale + * de l’application Papillon. + *

+ * Elle gère l’affichage des rappels, leur tri, ainsi que les + * interactions avec les boutons d’ajout, de suppression et de modification. + *

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class Main extends JFrame implements ActionListener{ + /** Liste des panneaux représentant les rappels. */ private List listRpl = new ArrayList<>(); + + /** Panneau contenant la liste des rappels. */ private JPanel liste = new JPanel(); + + /** Menu déroulant permettant de trier les rappels par priorité. */ private ChoixRang trier = new ChoixRang(); + + /** Conteneur racine de la fenêtre principale. */ private JPanel root = new JPanel(new BorderLayout()); + /** + * Constructeur de la fenêtre principale de l’application. + *

+ * Initialise les composants graphiques, configure la disposition et + * charge la liste des rappels au démarrage. + *

+ */ public Main(){ super("Papillon"); ImageIcon logo = new ImageIcon("logo.png"); @@ -87,11 +113,23 @@ liste.setLayout(new BoxLayout(liste, BoxLayout.Y_AXIS)); } - + /** + * Renvoie la liste des panneaux de rappels actuellement affichés. + * + * @return une liste de PanelRappel + */ public List getPanelRpl(){ return listRpl; } + /** + * Met à jour la fenêtre principale après une modification + * (ajout, suppression ou édition d’un rappel). + *

+ * Cette méthode recharge le panneau des rappels + * et force le recalcul de l’affichage. + *

+ */ public void maj(){ liste = this.getRPanel(); @@ -102,6 +140,11 @@ public void maj(){ this.repaint(); } + /** + * Applique un tri des rappels selon leur rang de priorité. + * + * @param rang le niveau de priorité sélectionné dans le menu + */ public void setTrie(int rang){ listRpl = new ArrayList<>(); @@ -132,10 +175,23 @@ for(int i=0;iJPanel affichant les rappels + */ public JPanel getRPanel(){ return liste; } + /** + * Gère les actions utilisateur sur le menu déroulant de tri. + *

+ * Réinitialise la liste et applique le tri sélectionné. + *

+ * + * @param ea l’événement d’action déclenché + */ @Override public void actionPerformed(ActionEvent ea) {