1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
| import java.awt.*;
import java.awt.event.*;
import java.awt.AWTException;
import java.awt.CheckboxMenuItem;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.Toolkit;
import java.lang.String;
import javax.swing.*;
//-------------------------------------------------------------------------------
public class Icone_et_Menu
implements MouseListener
{
/*
* Déclaration des objets d'interfaces utilisés par la TrayIcon
*/
// Acces aux icones du veilleur de messagerie //("Sources/Icones/Passif.png");
//public static URL url = Icone_et_Menu.class.getClassLoader().getResource("Icones/Actif.png");
public static Image mon_icone_actif = Toolkit.getDefaultToolkit().getImage(Icone_et_Menu.class.getClassLoader().getResource("Icones/Actif.png"));
public static Image mon_icone_passif = Toolkit.getDefaultToolkit().getImage(Icone_et_Menu.class.getClassLoader().getResource("Icones/Passif.png"));
public static Image mon_icone_arret = Toolkit.getDefaultToolkit().getImage(Icone_et_Menu.class.getClassLoader().getResource("Icones/Arret.png"));
public static Image mon_icone_bayonne = Toolkit.getDefaultToolkit().getImage(Icone_et_Menu.class.getClassLoader().getResource("Icones/Bayonne.png"));
public static int mode_service = 0; //0 = automatique, 1 = manuel
// Variables d'etats du service et de l'icone affichée, pour faciliter les conditions IF/ELSE
public static int etat_service = 0; //0 = arret, 1 = actif, 2 = suspendu, 3 = signal
public static int etat_icone = 0; //0 = arret, 1 = actif, 2 = passif
public static int etat_fenetre_duree = 0; // 0 = fermée, 1 = ouverte
public static int etat_fenetre_frequence = 0; // 0 = fermée, 1 = ouverte
public static int mode_avertisseur = 1; //0 = avertir au premier nouveau message, 1 = avertir à chaque nouveau message
// (Mettre à jour le menu si cette valeur est modifiée manuellement)
public static int etat_avertisseur = 0; //0 = n'a pas encore avertit, a déjà avertit de l'arrivée de messages
//Utilisée lorsque l'utilisateur ne souhaite être avertit qu'à l'arrivée
//du premier nouveau message. Tant qu'il n'a pas consulté les nouveaux messages
//(= fin du mode signal), il ne sera plus avertit si il est dans ce mode.
public static int frequence = 3; // Fréquence de recherche de nouveaux messages, en minutes
public static int mode_recherche = 0; // 0 = affiche tous les messages taggés 'non-lu' sur le serveur
// 1 = n'affiche que les messages nouveaux pour le serveur, qu'il n'a jamis diffusé
public static int mode_visibilite = 1; // 0 = afficher tous les nouveaux messages reçus
// 1 = ne pas afficher les messages déjà signalés,
// pour lesquels l'utilisateur ne souhaite plus etre avertit
public static int NB_nouveaux_messages_total = 0;
public static int NB_nouveaux_messages_visibles = 0;
public static String page_webmail = "http://intranet.bayonne.fr";
public static String chemin_firefox = "D:/Program Files/Mozilla Firefox/firefox.exe";
public static int duree_pause_consultation = 15; // Durée, en minutes, de la mise en pause du veilleur de messagerie lors de la consultation des nouveaux messages sur le webmail
// TrayIcon : icone de barre des tâches, coeur visuel de l'application
public static TrayIcon mon_trayIcon = null;
public static String tooltip_normal = new String("Veilleur de messagerie :\n\nClic-gauche : contrôler l'arrivée de nouveaux messages.\nClic-droit : options.");
public static String tooltip_signal = new String("Veilleur de messagerie : nouveaux messages reçus.\n\nClic-gauche : voir les nouveaux messages.\nClic-droit : options.");
// -------------------------------------------------------------------------------
/*
* Classe d'interface initialisant la TrayIcon.
*/
public Icone_et_Menu()
{
// Si le systeme d'exploitation supporte les icones systemes
if (SystemTray.isSupported())
{
// On créé la "SystemTray" (Récupération de celle du système)
SystemTray tray = SystemTray.getSystemTray();
try
{
// Ajout de la TrayIcon dans la Tray
tray.add(get_mon_trayIcon());
}
catch (AWTException ex)
{}
}
}
// -------------------------------------------------------------------------------
/*
* Gestion de la TrayIcon : apparence, comportement, etc.
*/
private TrayIcon get_mon_trayIcon()
{
if (mon_trayIcon == null)
{
// Paramètres d'initialisation de la TrayIcon
String mon_titre = new String("Veilleur de messagerie");
// Initialisation de la TrayIcon
mon_trayIcon = new TrayIcon(mon_icone_arret, mon_titre, null);
// Ajustement de l'apparence de la TrayIcon
mon_trayIcon.setToolTip(tooltip_normal);// Ajout du ToolTip au survol de la souris
mon_trayIcon.setImageAutoSize(true); // Dimensionnement automatique de l'icone
// Ajout d'un écouteur d'évènements (en cas de clic simple sur la TrayIcon)
mon_trayIcon.addMouseListener(this);
}
return mon_trayIcon;
}
// -------------------------------------------------------------------------------
/*
* Permet de traiter les évènements relatifs aux clic de la souris.
*/
// Lorsque : Bouton pressé puis relaché (clic classique)
public void mouseClicked (MouseEvent evt)
{
// En cas de clic-gauche : SwingUtilities.isLeftMouseButton(evt)
// En cas de clic avec le bouton du milieu : SwingUtilities.isMiddleMouseButton(evt)
// En cas de clic-droit : SwingUtilities.isRightMouseButton(evt)
if (SwingUtilities.isLeftMouseButton(evt))
{
// Etat = 0 : arret
// Etat = 1 : actif
// Etat = 2 : passif
// Etat = 3 : signal
// On vérifie que l'état du service avant d'agir.
if(etat_service == 0 ) // Service arrêté
{
if (mode_service == 0) // mode automatique
{
}
else if (mode_service == 1) // mode manuel
{
}
}
else if(etat_service == 1) // Service démarré
{
}
else if(etat_service == 2) // Service suspendu
{
//Fonctions.Reprendre_service();
// Démarrer et rechercher les nouveaux messages mais en mode 0 :
// ne prévient pas l'utilisateur s'il n'y a pas de nouveaux messages...
// Destinée à la reprise de service automatique, en fin de suspension.
// On ne l'utilisera donc pas ici.
}
else if(etat_service == 3) // Service démarré et signalant de nouveaux messages
{
}
}
else if (SwingUtilities.isMiddleMouseButton(evt))
{
}
}
// Gestionnaires d'évènement complémentaires à surcharger,
// car la classe implémente MouseListener
public void mousePressed (MouseEvent evt) {} // Lorsque : Composant pressé
public void mouseReleased (MouseEvent evt) {} // Lorsque : Composant relaché
public void mouseEntered (MouseEvent evt) {} // Lorsque : La souris entre dans la fenêtre de l'applet
public void mouseExited (MouseEvent evt) {} // Lorsque : La souris sort de la fenêtre de l'applet
} |
Partager