Files
SAE31_2025/src/fr/iutfbleau/papillon/PanelRappel.java
T

128 lines
3.3 KiB
Java
Raw Normal View History

// package fr.iutfbleau.papillon;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PanelRappel extends JPanel implements ActionListener, MouseListener{
private final JLabel lbtitre;
private final JLabel lbcontenu;
private final Rappel r;
private final JPopupMenu menu;
private final JMenuItem itemOuvrir;
private static CouleurList couleur = new CouleurList();
private boolean estSelectionne = false;
public PanelRappel(Rappel r){
super(new BorderLayout(2,0));
this.r = r;
lbtitre = new JLabel("["+r.getRang()+"] "+r.getTitre());
lbcontenu = new JLabel(r.getContenu());
this.setPreferredSize(new Dimension(70, 50));
this.setBackground(couleur.couleurDe(r.getTheme()));
this.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 2));
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.NORTHWEST;
// --- Position du titre (en haut)
c.gridx = 0;
c.gridy = 0;
c.weightx = 1; // prend l'espace
c.fill = GridBagConstraints.NONE;
add(lbtitre, c);
// --- Position du contenu (en dessous)
c.gridx = 0;
c.gridy = 1;
c.weightx = 1;
c.fill = GridBagConstraints.NONE;
add(lbcontenu, c);
// --- Menu contextuel (clic droit) ---
menu = new JPopupMenu();
itemOuvrir = new JMenuItem("Ouvrir");
itemOuvrir.addActionListener(this);
menu.add(itemOuvrir);
// a améliorer
addMouseListener(this);
}
public boolean getSelection(){
return estSelectionne;
}
public int getId(){
return r.getId();
}
public Rappel getRappel(){
return r;
}
// ACTIONS
@Override
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == itemOuvrir) {
JOptionPane.showMessageDialog(
this,
"Ouverture du rappel : " + lbtitre.getText(),
"Ouvrir",
JOptionPane.INFORMATION_MESSAGE
);
}
}
@Override
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
menu.show(e.getComponent(), e.getX(), e.getY());
}else {
// clic gauche = sélection
estSelectionne = !estSelectionne;
if (estSelectionne) {
setBackground(Color.LIGHT_GRAY);
2025-10-23 20:27:57 +02:00
setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
} else {
2025-10-23 20:27:57 +02:00
setBackground(couleur.couleurDe(r.getTheme()));
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
}
repaint();
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
menu.show(e.getComponent(), e.getX(), e.getY());
2025-10-23 20:27:57 +02:00
}
}
@Override public void mouseClicked(MouseEvent e) {}
2025-10-23 20:27:57 +02:00
@Override public void mouseEntered(MouseEvent e) {
setBackground(Color.LIGHT_GRAY);
setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
}
@Override public void mouseExited(MouseEvent e) {
if(!estSelectionne){
setBackground(couleur.couleurDe(r.getTheme()));
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
}
}
}