|
From: <ls...@us...> - 2008-07-24 19:34:49
|
Revision: 4345
http://jnode.svn.sourceforge.net/jnode/?rev=4345&view=rev
Author: lsantha
Date: 2008-07-24 19:34:46 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Added method setPreferredListener() to PointerAPI and its implementations.
Modified Paths:
--------------
trunk/core/src/driver/org/jnode/driver/input/AbstractPointerDriver.java
trunk/core/src/driver/org/jnode/driver/input/PointerAPI.java
trunk/core/src/driver/org/jnode/driver/input/PointerAPIAdapter.java
trunk/gui/src/driver/org/jnode/driver/textscreen/swing/SwingPcTextScreen.java
Modified: trunk/core/src/driver/org/jnode/driver/input/AbstractPointerDriver.java
===================================================================
--- trunk/core/src/driver/org/jnode/driver/input/AbstractPointerDriver.java 2008-07-24 18:46:41 UTC (rev 4344)
+++ trunk/core/src/driver/org/jnode/driver/input/AbstractPointerDriver.java 2008-07-24 19:34:46 UTC (rev 4345)
@@ -49,6 +49,14 @@
super.removeListener(l);
}
+ public synchronized void setPreferredListener(PointerListener l) {
+ final SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ sm.checkPermission(SET_PREFERRED_LISTENER_PERMISSION);
+ }
+ super.setPreferredListener(l);
+ }
+
/**
* Start the pointer device.
*/
@@ -117,14 +125,14 @@
}
/**
- * Send a given keyboard event to the given listener.
+ * Send a given pointer event to the given listener.
*
- * @param l
- * @param event
+ * @param listener the pointer listener to recieve the event
+ * @param event the pointer event
*/
@Override
- protected void sendEvent(SystemListener l, PointerEvent event) {
- PointerListener ml = (PointerListener) l;
+ protected void sendEvent(SystemListener listener, PointerEvent event) {
+ PointerListener ml = (PointerListener) listener;
ml.pointerStateChanged(event);
}
Modified: trunk/core/src/driver/org/jnode/driver/input/PointerAPI.java
===================================================================
--- trunk/core/src/driver/org/jnode/driver/input/PointerAPI.java 2008-07-24 18:46:41 UTC (rev 4344)
+++ trunk/core/src/driver/org/jnode/driver/input/PointerAPI.java 2008-07-24 19:34:46 UTC (rev 4345)
@@ -22,26 +22,46 @@
package org.jnode.driver.input;
import org.jnode.driver.DeviceAPI;
+import org.jnode.driver.DriverPermission;
/**
* Device API implemented by Pointer devices.
*
* @author qades
* @author Ewout Prangsma (ep...@us...)
+ * @author Levente S\u00e1ntha
*/
public interface PointerAPI extends DeviceAPI {
+ //todo KeboardAPI.SET_PREFERRED_LISTENER_PERMISSION has a similar role
+ //remove duplication
/**
+ * Permission
+ */
+ public static final DriverPermission SET_PREFERRED_LISTENER_PERMISSION =
+ new DriverPermission("setPreferredListener");
+
+ /**
* Add a pointer listener
*
- * @param l
+ * @param listener the pointer listener to be added
*/
- public void addPointerListener(PointerListener l);
+ public void addPointerListener(PointerListener listener);
/**
* Remove a pointer listener
*
- * @param l
+ * @param listener the pointer listener to be removed
*/
- public void removePointerListener(PointerListener l);
+ public void removePointerListener(PointerListener listener);
+
+ /**
+ * Claim to be the preferred listener.
+ * The given listener must have been added by addPointerListener.
+ * If there is a security manager, this method will call
+ * <code>checkPermission(new DriverPermission("setPreferredListener"))</code>.
+ *
+ * @param listener the prefered pointer listener
+ */
+ public abstract void setPreferredListener(PointerListener listener);
}
Modified: trunk/core/src/driver/org/jnode/driver/input/PointerAPIAdapter.java
===================================================================
--- trunk/core/src/driver/org/jnode/driver/input/PointerAPIAdapter.java 2008-07-24 18:46:41 UTC (rev 4344)
+++ trunk/core/src/driver/org/jnode/driver/input/PointerAPIAdapter.java 2008-07-24 19:34:46 UTC (rev 4345)
@@ -40,23 +40,33 @@
private final ArrayList<PointerListener> listeners = new ArrayList<PointerListener>();
/**
- * Add a pointer listener
+ * Add a pointer listener.
*
- * @param l
+ * @param listener the pointer listener to be added
*/
- public synchronized void addPointerListener(PointerListener l) {
- listeners.add(l);
+ public synchronized void addPointerListener(PointerListener listener) {
+ listeners.add(listener);
}
/**
- * Remove a pointer listener
+ * Remove a pointer listener.
*
- * @param l
+ * @param listener the pointer listener to be removed
*/
- public synchronized void removePointerListener(PointerListener l) {
- listeners.remove(l);
+ public synchronized void removePointerListener(PointerListener listener) {
+ listeners.remove(listener);
}
+ public synchronized void setPreferredListener(PointerListener l) {
+ final SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ sm.checkPermission(SET_PREFERRED_LISTENER_PERMISSION);
+ }
+ if (listeners.remove(l)) {
+ listeners.add(0, l);
+ }
+ }
+
/**
* Remove all listeners.
*/
@@ -67,7 +77,7 @@
/**
* Fire a given pointer event to all known listeners.
*
- * @param event
+ * @param event the event to be fired
*/
public synchronized void fireEvent(PointerEvent event) {
for (PointerListener l : listeners) {
Modified: trunk/gui/src/driver/org/jnode/driver/textscreen/swing/SwingPcTextScreen.java
===================================================================
--- trunk/gui/src/driver/org/jnode/driver/textscreen/swing/SwingPcTextScreen.java 2008-07-24 18:46:41 UTC (rev 4344)
+++ trunk/gui/src/driver/org/jnode/driver/textscreen/swing/SwingPcTextScreen.java 2008-07-24 19:34:46 UTC (rev 4345)
@@ -349,6 +349,18 @@
public void removePointerListener(PointerListener l) {
listeners.remove(l);
}
+
+ /**
+ * Claim to be the preferred listener.
+ * The given listener must have been added by addPointerListener.
+ * If there is a security manager, this method will call
+ * <code>checkPermission(new DriverPermission("setPreferredListener"))</code>.
+ *
+ * @param listener the prefered pointer listener
+ */
+ public void setPreferredListener(PointerListener listener) {
+
+ }
}
private static class MyKeyboardDriver extends Driver implements KeyboardAPI {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|