6eb0dbcec35cf3dba4193d26b19a9aa8c19e0006
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / events / GlobalEventWatcher.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Bruno Jofret
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 package org.scilab.modules.gui.events;
14
15 import java.awt.AWTEvent;
16 import java.awt.Toolkit;
17
18 /**
19  * This implements a Global event watcher,
20  * means a very high level one : quite the same level as the JVM
21  * @author Bruno Jofret
22  */
23 public final class GlobalEventWatcher {
24
25         private static GlobalEventWatcher me;
26         private static GlobalKeyEventWatcher keyWatcher;
27         private static GlobalMouseEventWatcher mouseWatcher;
28         private static boolean activated;
29     private static String axesUID = null;
30
31         /**
32          * Private Constructor : SINGLETON.
33          */
34         private GlobalEventWatcher() {  }
35         
36         /**
37          * Singleton enable.
38          * 
39          * @return the global watcher instance
40          */     
41         public static GlobalEventWatcher getInstance() {
42                 if (me == null) {
43                         me = new GlobalEventWatcher();
44                 }
45                 return me;
46         }
47         
48         
49         /**
50          * Singleton enable keyWatcher.
51          * 
52          * @param keyWatcher : the Key Listener.
53          */
54         public static void enable(GlobalKeyEventWatcher keyWatcher) {
55                 GlobalEventWatcher.keyWatcher = keyWatcher;
56                 Toolkit.getDefaultToolkit().addAWTEventListener(keyWatcher,
57                                 AWTEvent.KEY_EVENT_MASK);
58                 activated = true;
59         }
60
61         /**
62          * Singleton enable keyWatcher.
63          * 
64          * @param mouseWatcher : the Mouse Listener.
65          */
66         public static void enable(GlobalMouseEventWatcher mouseWatcher) {
67                 GlobalEventWatcher.mouseWatcher = mouseWatcher;
68                 Toolkit.getDefaultToolkit().addAWTEventListener(mouseWatcher,
69                                 mouseWatcher.getEventMask());
70                         activated = true;
71         }
72
73         
74         /**
75          * Disable the global watcher
76          */
77         public static void disable() {
78                 Toolkit.getDefaultToolkit().removeAWTEventListener(GlobalEventWatcher.keyWatcher);
79                 Toolkit.getDefaultToolkit().removeAWTEventListener(GlobalEventWatcher.mouseWatcher);
80                 activated = false;
81         }
82
83         /**
84          * Is the GlobalWatcher active or not.
85          * @return activation status.
86          */
87         public static boolean isActivated() {
88                 return activated;
89         }
90         
91     public static void setAxesUID(String axesUID) {
92         GlobalEventWatcher.axesUID = axesUID;
93     }
94
95     public static String getAxesUID() {
96         return axesUID ;
97     }
98
99 }