2025-10-23 08:58:29 +02:00
|
|
|
// 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));
|
2025-10-23 08:58:29 +02:00
|
|
|
} else {
|
2025-10-23 20:27:57 +02:00
|
|
|
setBackground(couleur.couleurDe(r.getTheme()));
|
|
|
|
|
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
|
|
|
|
|
|
2025-10-23 08:58:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
2025-10-23 08:58:29 +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));
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-10-23 08:58:29 +02:00
|
|
|
|
2025-10-23 00:35:41 +02:00
|
|
|
}
|