001: /*******************************************************************************
002: * Copyright (c) 2000, 2005 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.ui.tests.navigator;
011:
012: import junit.framework.Assert;
013:
014: import org.eclipse.swt.SWT;
015: import org.eclipse.swt.widgets.Display;
016: import org.eclipse.swt.widgets.Event;
017:
018: /**
019: * @since 3.1
020: */
021: public class SWTEventHelper {
022:
023: public static void pressKeyCode(Display display, int keyCode) {
024: pressKeyCode(display, keyCode, true);
025: }
026:
027: public static void pressKeyCode(Display display, int keyCode,
028: boolean runEventQueue) {
029: keyCodeDown(display, keyCode, runEventQueue);
030: keyCodeUp(display, keyCode, runEventQueue);
031: }
032:
033: public static void pressKeyCodeCombination(Display display,
034: int[] keyCodes) {
035: pressKeyCodeCombination(display, keyCodes, true);
036: }
037:
038: public static void pressKeyCodeCombination(Display display,
039: int[] keyCodes, boolean runEventQueue) {
040: for (int i = 0; i < keyCodes.length; i++)
041: keyCodeDown(display, keyCodes[i], runEventQueue);
042: for (int i = keyCodes.length - 1; i >= 0; i--)
043: keyCodeUp(display, keyCodes[i], runEventQueue);
044: }
045:
046: public static void keyCodeDown(Display display, int keyCode) {
047: keyCodeEvent(display, SWT.KeyDown, keyCode, true);
048: }
049:
050: public static void keyCodeDown(Display display, int keyCode,
051: boolean runEventQueue) {
052: keyCodeEvent(display, SWT.KeyDown, keyCode, runEventQueue);
053: }
054:
055: public static void keyCodeUp(Display display, int keyCode) {
056: keyCodeEvent(display, SWT.KeyUp, keyCode, true);
057: }
058:
059: public static void keyCodeUp(Display display, int keyCode,
060: boolean runEventQueue) {
061: keyCodeEvent(display, SWT.KeyUp, keyCode, runEventQueue);
062: }
063:
064: private static Event fgKeyCodeEvent = new Event();
065:
066: public static void keyCodeEvent(Display display, int type,
067: int keyCode, boolean runEventQueue) {
068: fgKeyCodeEvent.type = type;
069: fgKeyCodeEvent.keyCode = keyCode;
070: postEvent(display, fgKeyCodeEvent, runEventQueue);
071: }
072:
073: public static void pressKeyChar(Display display, char keyChar) {
074: pressKeyChar(display, keyChar, true);
075: }
076:
077: public static void pressKeyChar(Display display, char keyChar,
078: boolean runEventQueue) {
079: keyCharDown(display, keyChar, runEventQueue);
080: keyCharUp(display, keyChar, runEventQueue);
081: }
082:
083: public static void pressKeyCharCombination(Display display,
084: char[] keyChars) {
085: pressKeyCharCombination(display, keyChars, true);
086: }
087:
088: public static void pressKeyCharCombination(Display display,
089: char[] keyChars, boolean runEventQueue) {
090: for (int i = 0; i < keyChars.length; i++)
091: keyCharDown(display, keyChars[i], runEventQueue);
092: for (int i = keyChars.length - 1; i >= 0; i--)
093: keyCharUp(display, keyChars[i], runEventQueue);
094: }
095:
096: public static void keyCharDown(Display display, char keyChar,
097: boolean runEventQueue) {
098: keyCharEvent(display, SWT.KeyDown, keyChar, runEventQueue);
099: }
100:
101: public static void keyCharUp(Display display, char keyChar,
102: boolean runEventQueue) {
103: keyCharEvent(display, SWT.KeyUp, keyChar, runEventQueue);
104: }
105:
106: private static Event fgKeyCharEvent = new Event();
107:
108: public static void keyCharEvent(Display display, int type,
109: char keyChar, boolean runEventQueue) {
110: fgKeyCharEvent.type = type;
111: fgKeyCharEvent.character = keyChar;
112: postEvent(display, fgKeyCharEvent, runEventQueue);
113: }
114:
115: private static void postEvent(final Display display,
116: final Event event, boolean runEventQueue) {
117: DisplayHelper helper = new DisplayHelper() {
118: public boolean condition() {
119: return display.post(event);
120: }
121: };
122: Assert.assertTrue(helper.waitForCondition(display, 1000));
123:
124: if (runEventQueue)
125: EditorTestHelper.runEventQueue();
126:
127: }
128:
129: private static Event fgMouseMoveEvent = new Event();
130:
131: public static void mouseMoveEvent(Display display, int x, int y,
132: boolean runEventQueue) {
133: fgMouseMoveEvent.type = SWT.MouseMove;
134: fgMouseMoveEvent.x = x;
135: fgMouseMoveEvent.y = y;
136: postEvent(display, fgMouseMoveEvent, runEventQueue);
137: }
138:
139: public static void mouseDownEvent(Display display, int button,
140: boolean runEventQueue) {
141: mouseButtonEvent(display, SWT.MouseDown, button, runEventQueue);
142: }
143:
144: public static void mouseUpEvent(Display display, int button,
145: boolean runEventQueue) {
146: mouseButtonEvent(display, SWT.MouseUp, button, runEventQueue);
147: }
148:
149: private static Event fgMouseButtonEvent = new Event();
150:
151: public static void mouseButtonEvent(Display display, int type,
152: int button, boolean runEventQueue) {
153: fgMouseButtonEvent.type = type;
154: fgMouseButtonEvent.button = button;
155: postEvent(display, fgMouseButtonEvent, runEventQueue);
156: }
157: }
|