View Javadoc

1   package com.atlassian.selenium.keyboard;
2   
3   
4   import com.atlassian.webtest.ui.keys.SpecialKey;
5   import com.atlassian.webtest.ui.keys.SpecialKeys;
6   
7   import java.awt.event.KeyEvent;
8   
9   /**
10   * Mappings of special keys into Selenium codes.
11   *
12   * @see com.atlassian.webtest.ui.keys.SpecialKeys
13   * @see com.atlassian.webtest.ui.keys.SpecialKey
14   * @author Dariusz Kordonski
15   */
16  public enum SeleniumSpecialKeys
17  {
18  
19  
20      ENTER(SpecialKeys.ENTER, 13), // correct JS code for ENTER event is 13, not 10 assumed by AWT key events!
21      ESC(SpecialKeys.ESC, KeyEvent.VK_ESCAPE),
22      DELETE(SpecialKeys.DELETE, KeyEvent.VK_DELETE),
23      SPACE(SpecialKeys.SPACE, KeyEvent.VK_SPACE),
24      BACKSPACE(SpecialKeys.BACKSPACE, KeyEvent.VK_BACK_SPACE),
25      ARROW_UP(SpecialKeys.ARROW_UP, KeyEvent.VK_UP),
26      ARROW_DOWN(SpecialKeys.ARROW_DOWN, KeyEvent.VK_DOWN),
27      ARROW_LEFT(SpecialKeys.ARROW_LEFT, KeyEvent.VK_LEFT),
28      ARROW_RIGHT(SpecialKeys.ARROW_RIGHT, KeyEvent.VK_RIGHT);
29  
30  
31      private final SpecialKey specialKey;
32      private final int keyCode;
33  
34  
35      SeleniumSpecialKeys(SpecialKey key, int keyCode)
36      {
37          this.specialKey = key;
38          this.keyCode = keyCode;
39      }
40  
41  
42      public static SeleniumSpecialKeys forKey(SpecialKey specialKey)
43      {
44          for (SeleniumSpecialKeys key : values())
45          {
46              if (key.specialKey == specialKey)
47              {
48                  return key;
49              }
50          }
51          throw new IllegalArgumentException("No Selenium special key for " + specialKey);
52      }
53  
54      public int keyCode()
55      {
56          return keyCode;
57      }
58  }