01: package org.uispec4j;
02:
03: import org.uispec4j.interception.toolkit.UISpecToolkit;
04: import org.uispec4j.interception.ui.UISpecLF;
05:
06: import java.awt.*;
07: import java.lang.reflect.Field;
08:
09: /**
10: * Facade for the initialization of the library, mainly used for the interception mechanism.
11: *
12: * @see <a href="http://www.uispec4j.org/interception.html">Intercepting windows</a>
13: */
14: public class UISpec4J {
15: private static long windowInterceptionTimeLimit = 10000;
16: public static final int DEFAULT_ASSERTION_TIME_LIMIT = 500;
17: private static long assertionTimeLimit = DEFAULT_ASSERTION_TIME_LIMIT;
18:
19: /**
20: * Initializes UISpec4J, for instance by setting up the interception mechanism.
21: */
22: public static void init() {
23: initToolkit();
24: UISpecLF.init();
25: }
26:
27: private static void initToolkit() {
28: try {
29: Field toolkitField = Toolkit.class
30: .getDeclaredField("toolkit");
31: toolkitField.setAccessible(true);
32: toolkitField.set(null, new UISpecToolkit());
33: } catch (Exception e) {
34: throw new RuntimeException(
35: "Unable to initialize toolkit for interception.", e);
36: }
37: }
38:
39: /**
40: * Sets the default timeout value (in milliseconds) used by the library for interception mechanism.
41: * Default value is 10.000, i.e. 10s.
42: */
43: public static void setWindowInterceptionTimeLimit(long millis) {
44: UISpec4J.windowInterceptionTimeLimit = millis;
45: }
46:
47: /**
48: * Returns the default timeout value (in milliseconds) used by the library for interception mechanism.
49: * Default value is 10.000, i.e. 10s.
50: */
51: public static long getWindowInterceptionTimeLimit() {
52: return windowInterceptionTimeLimit;
53: }
54:
55: /**
56: * Returns the default timeout value (in milliseconds) used when checking assertions.
57: * Default value is 500, i.e. 0.5s.
58: */
59: public static long getAssertionTimeLimit() {
60: return assertionTimeLimit;
61: }
62:
63: /**
64: * Sets the default timeout value (in milliseconds) used when checking assertions.
65: * Default value is 500, i.e. 0.5s.
66: */
67: public static void setAssertionTimeLimit(long assertionTimeLimit) {
68: UISpec4J.assertionTimeLimit = assertionTimeLimit;
69: }
70: }
|