Class 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
    • 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()
      • 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.