org.netbeans.jemmy
Class QueueTool

java.lang.Object
  extended by org.netbeans.jemmy.QueueTool
All Implemented Interfaces:
Outputable, Timeoutable

public class QueueTool
extends Object
implements Outputable, Timeoutable

Provides functionality to work with java.awt.EventQueue empty.

Timeouts used:
QueueTool.WaitQueueEmptyTimeout - timeout to wait queue emptied
QueueTool.QueueCheckingDelta - time delta to check result
QueueTool.LockTimeout - time to wait queue locked after lock action has been put there
QueueTool.InvocationTimeout - time for action was put into queue to be started
QueueTool.MaximumLockingTime - maximum time to lock queue.

Author:
Alexandre Iline (alexandre.iline@sun.com)
See Also:
Timeouts

Nested Class Summary
static class QueueTool.QueueAction
          Action to be excuted through event queue.
 
Constructor Summary
QueueTool()
          Constructor.
 
Method Summary
static boolean checkEmpty()
          Checks if system event queue is empty.
 TestOut getOutput()
          Returns print output streams or writers.
static EventQueue getQueue()
          Returns system EventQueue.
 Timeouts getTimeouts()
          Return current timeouts.
static void installQueue()
          Installs own Jemmy EventQueue implementation.
 QueueTool.QueueAction invoke(Action action, Object param)
          Invokes action through EventQueue.
 void invoke(QueueTool.QueueAction action)
          Invokes action through EventQueue.
 QueueTool.QueueAction invoke(Runnable runnable)
          Invokes runnable through EventQueue.
 Object invokeAndWait(Action action, Object param)
          Invokes action through EventQueue.
 Object invokeAndWait(QueueTool.QueueAction action)
          Invokes action through EventQueue.
 void invokeAndWait(Runnable runnable)
          Invokes runnable through EventQueue.
 Object invokeSmoothly(Action action, Object param)
          Being executed outside of AWT dispatching thread, invokes an action through the event queue.
 Object invokeSmoothly(QueueTool.QueueAction action)
          Being executed outside of AWT dispatching thread, invokes an action through the event queue.
 void invokeSmoothly(Runnable runnable)
          Being executed outside of AWT dispatching thread, invokes a runnable through the event queue.
static boolean isDispatchThread()
          Map to EventQueue.isDispatchThread().
 void lock()
          Locks EventQueue.
 void lock(long time)
          Locks event queue for "time" milliseconds.
static void postEvent(AWTEvent event)
          Simply posts events into the system event queue.
static void processEvent(AWTEvent event)
          Shortcuts event if ((JemmyProperties.getCurrentDispatchingModel() & JemmyProperties.SHORTCUT_MODEL_MASK) != 0) and if executed in the dispatch thread.
 void setOutput(TestOut out)
          Defines print output streams or writers.
 void setTimeouts(Timeouts ts)
          Defines current timeouts.
static void shortcutEvent(AWTEvent event)
          Dispatches event ahead of all events staying in the event queue.
static void uninstallQueue()
          Uninstalls own Jemmy EventQueue implementation.
 void unlock()
          Unlocks EventQueue.
 void waitEmpty()
          Waits for system event queue empty.
 void waitEmpty(long emptyTime)
          Waits for system event queue be empty for emptyTime milliseconds.
 boolean wasLockingExpired()
          Sais if last locking was expired.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueueTool

public QueueTool()
Constructor.

Method Detail

getQueue

public static EventQueue getQueue()
Returns system EventQueue.

Returns:
system EventQueue.

isDispatchThread

public static boolean isDispatchThread()
Map to EventQueue.isDispatchThread().

Returns:
true if this thread is the AWT dispatching thread.

checkEmpty

public static boolean checkEmpty()
Checks if system event queue is empty.

Returns:
true if EventQueue is empty.

processEvent

public static void processEvent(AWTEvent event)
Shortcuts event if ((JemmyProperties.getCurrentDispatchingModel() & JemmyProperties.SHORTCUT_MODEL_MASK) != 0) and if executed in the dispatch thread. Otherwise posts event.

Parameters:
event - Event to dispatch.

postEvent

public static void postEvent(AWTEvent event)
Simply posts events into the system event queue.

Parameters:
event - Event to dispatch.

shortcutEvent

public static void shortcutEvent(AWTEvent event)
Dispatches event ahead of all events staying in the event queue.

Parameters:
event - an event to be shortcut.

installQueue

public static void installQueue()
Installs own Jemmy EventQueue implementation. The method is executed in dispatchmode only.

See Also:
uninstallQueue()

uninstallQueue

public static void uninstallQueue()
Uninstalls own Jemmy EventQueue implementation.

See Also:
installQueue()

setTimeouts

public void setTimeouts(Timeouts ts)
Defines current timeouts.

Specified by:
setTimeouts in interface Timeoutable
Parameters:
ts - ?t? A collection of timeout assignments.
See Also:
Timeouts, Timeoutable, getTimeouts()

getTimeouts

public Timeouts getTimeouts()
Return current timeouts.

Specified by:
getTimeouts in interface Timeoutable
Returns:
the collection of current timeout assignments.
See Also:
Timeouts, Timeoutable, setTimeouts(org.netbeans.jemmy.Timeouts)

setOutput

public void setOutput(TestOut out)
Defines print output streams or writers.

Specified by:
setOutput in interface Outputable
Parameters:
out - Identify the streams or writers used for print output.
See Also:
Outputable, TestOut, getOutput()

getOutput

public TestOut getOutput()
Returns print output streams or writers.

Specified by:
getOutput in interface Outputable
Returns:
an object that contains references to objects for printing to output and err streams.
See Also:
Outputable, TestOut, setOutput(org.netbeans.jemmy.TestOut)

waitEmpty

public void waitEmpty()
Waits for system event queue empty. Uses "QueueTool.WaitQueueEmptyTimeout" milliseconds to wait.

Throws:
TimeoutExpiredException

waitEmpty

public void waitEmpty(long emptyTime)
Waits for system event queue be empty for emptyTime milliseconds. Uses "QueueTool.WaitQueueEmptyTimeout" milliseconds to wait.

Parameters:
emptyTime - time for the queue to stay empty.
Throws:
TimeoutExpiredException

invoke

public void invoke(QueueTool.QueueAction action)
Invokes action through EventQueue. Does not wait for it execution.

Parameters:
action - an action to be invoked.

invoke

public QueueTool.QueueAction invoke(Runnable runnable)
Invokes runnable through EventQueue. Does not wait for it execution.

Parameters:
runnable - a runnable to be invoked.
Returns:
QueueAction instance which can be use for execution monitoring.
See Also:
QueueTool.QueueAction

invoke

public QueueTool.QueueAction invoke(Action action,
                                    Object param)
Invokes action through EventQueue. Does not wait for it execution.

Parameters:
action - an action to be invoked.
param - action.launch(Object) method parameter.
Returns:
QueueAction instance which can be use for execution monitoring.
See Also:
QueueTool.QueueAction

invokeSmoothly

public Object invokeSmoothly(QueueTool.QueueAction action)
Being executed outside of AWT dispatching thread, invokes an action through the event queue. Otherwise executes action.launch() method directly.

Parameters:
action - anaction to be executed.
Returns:
Action result.

invokeSmoothly

public void invokeSmoothly(Runnable runnable)
Being executed outside of AWT dispatching thread, invokes a runnable through the event queue. Otherwise executes runnable.run() method directly.

Parameters:
runnable - a runnable to be executed.

invokeSmoothly

public Object invokeSmoothly(Action action,
                             Object param)
Being executed outside of AWT dispatching thread, invokes an action through the event queue. Otherwise executes action.launch(Object) method directly.

Parameters:
action - anaction to be executed.
param - an action parameter
Returns:
Action result.

invokeAndWait

public Object invokeAndWait(QueueTool.QueueAction action)
Invokes action through EventQueue. Waits for it execution.

Parameters:
action - an action to be invoked.
Returns:
a result of action
Throws:
TimeoutExpiredException - if action was not executed in "QueueTool.InvocationTimeout" milliseconds.

invokeAndWait

public void invokeAndWait(Runnable runnable)
Invokes runnable through EventQueue. Waits for it execution.

Parameters:
runnable - a runnable to be invoked.
Throws:
TimeoutExpiredException - if runnable was not executed in "QueueTool.InvocationTimeout" milliseconds.

invokeAndWait

public Object invokeAndWait(Action action,
                            Object param)
Invokes action through EventQueue. Waits for it execution. May throw TimeoutExpiredException if action was not executed in "QueueTool.InvocationTimeout" milliseconds.

Parameters:
action - an action to be invoked.
param - action.launch(Object method parameter.
Returns:
a result of action
Throws:
TimeoutExpiredException - if action was not executed in "QueueTool.InvocationTimeout" milliseconds.

lock

public void lock()
Locks EventQueue. Locking will be automatically aborted after "QueueTool.MaximumLockingTime" milliseconds.

Throws:
TimeoutExpiredException
See Also:
unlock()

unlock

public void unlock()
Unlocks EventQueue.

See Also:
lock()

lock

public void lock(long time)
Locks event queue for "time" milliseconds. Returns immediately after locking.

Parameters:
time - a time to lock the queue for.

wasLockingExpired

public boolean wasLockingExpired()
Sais if last locking was expired.

Returns:
true if last locking had beed expired.