KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jdesktop > jdic > tray > SystemTray


1 /*
2  * Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved. Use is
3  * subject to license terms.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the Lesser GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18  * USA.
19  */

20
21 package org.jdesktop.jdic.tray;
22
23
24 import org.jdesktop.jdic.tray.internal.ServiceManager;
25 import org.jdesktop.jdic.tray.internal.SystemTrayService;
26
27
28 /**
29  * The <code>SystemTray</code> class represents the System Tray for a desktop.
30  * For any desktop there may be more than one instance of the System
31  * Tray but this is most commonly not the case. Typically a desktop
32  * will have one SystemTray. On Gnome and Windows this tray is
33  * referred to as the Notification Area.
34  *
35  */

36
37 public class SystemTray {
38
39     static SystemTrayService sts = (SystemTrayService)
40         ServiceManager.getService(ServiceManager.SYSTEM_TRAY_SERVICE);
41
42     int trayIndex;
43
44     /**
45      * SystemTray constructor
46      *
47      */

48     private SystemTray() {}
49
50     private SystemTray(int index) {
51         trayIndex = index;
52     }
53
54     /**
55      * Gets the default SystemTray for the desktop.
56      * @return SystemTray
57      */

58     public static SystemTray getDefaultSystemTray() {
59         return new SystemTray(0);
60     }
61
62     /**
63      * Adds a <code>TrayIcon</code> to the SystemTray
64      * @param trayIcon
65      */

66     public void addTrayIcon(TrayIcon trayIcon) {
67         if (sts != null) {
68             sts.addTrayIcon(trayIcon, trayIcon.getTrayIconService(), trayIndex);
69         }
70     }
71
72     /**
73      * Removes the specified <code>TrayIcon</code> from the SystemTray
74      * @param trayIcon
75      */

76     public void removeTrayIcon(TrayIcon trayIcon) {
77         if (sts != null) {
78             sts.removeTrayIcon(trayIcon, trayIcon.getTrayIconService(),
79                     trayIndex);
80         }
81     }
82 }
83
Popular Tags