View Javadoc

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   * Enumeration of Selenium modifier keys with mappings to the
13   * {@link ModifierKey} enumeration.
14   *
15   * @since 4.3
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 }