1 package com.atlassian.selenium.keyboard;
2
3
4 import com.atlassian.selenium.SeleniumClient;
5 import com.atlassian.webtest.ui.keys.ModifierKey;
6
7 import java.util.Collection;
8 import java.util.EnumSet;
9 import java.util.Set;
10
11
12
13
14
15
16
17 public enum SeleniumModifierKey
18 {
19
20 SHIFT(ModifierKey.SHIFT)
21 {
22 @Override
23 public void keyDown(SeleniumClient client)
24 {
25 client.shiftKeyDown();
26 }
27 @Override
28 public void keyUp(SeleniumClient client)
29 {
30 client.shiftKeyUp();
31 }
32 },
33 ALT(ModifierKey.ALT)
34 {
35 @Override
36 public void keyDown(SeleniumClient client)
37 {
38 client.altKeyDown();
39 }
40 @Override
41 public void keyUp(SeleniumClient client)
42 {
43 client.altKeyUp();
44 }
45 },
46 CONTROL(ModifierKey.CONTROL)
47 {
48 @Override
49 public void keyDown(SeleniumClient client)
50 {
51 client.controlKeyDown();
52 }
53 @Override
54 public void keyUp(SeleniumClient client)
55 {
56 client.controlKeyUp();
57 }
58 },
59 META(ModifierKey.META)
60 {
61 @Override
62 public void keyDown(SeleniumClient client)
63 {
64 client.metaKeyDown();
65 }
66 @Override
67 public void keyUp(SeleniumClient client)
68 {
69 client.metaKeyUp();
70 }
71 };
72
73 private final ModifierKey modifierKey;
74
75 private SeleniumModifierKey(ModifierKey modifierKey)
76 {
77 this.modifierKey = modifierKey;
78 }
79
80 public static SeleniumModifierKey forKey(ModifierKey modifierKey)
81 {
82 for (SeleniumModifierKey seleniumModifierKey : values())
83 {
84 if (seleniumModifierKey.modifierKey == modifierKey)
85 {
86 return seleniumModifierKey;
87 }
88 }
89 throw new IllegalArgumentException("No Selenium modifier key for " + modifierKey);
90 }
91
92 public static Collection<SeleniumModifierKey> forKeys(Collection<ModifierKey> modifierKeys)
93 {
94 Set<SeleniumModifierKey> answer = EnumSet.noneOf(SeleniumModifierKey.class);
95 for (ModifierKey modifierKey : modifierKeys)
96 {
97 answer.add(forKey(modifierKey));
98 }
99 return answer;
100 }
101
102 public void keyDown(SeleniumClient client)
103 {
104 throw new AbstractMethodError();
105 }
106
107 public void keyUp(SeleniumClient client)
108 {
109 throw new AbstractMethodError();
110 }
111 }