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. |