View Javadoc

1   /*
2       Jagacy plug-in - A TN3270 plug-in for Jameleon.
3       Copyright (C) 2005 Christian W. Hargraves (engrean@hotmail.com)
4       
5       This library is free software; you can redistribute it and/or
6       modify it under the terms of the GNU Lesser General Public
7       License as published by the Free Software Foundation; either
8       version 2.1 of the License, or (at your option) any later version.
9   
10      This library is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13      Lesser General Public License for more details.
14  
15      You should have received a copy of the GNU Lesser General Public
16      License along with this library; if not, write to the Free Software
17      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  */
19  package net.sf.jameleon.plugin.jagacy.tags;
20  
21  import java.util.HashMap;
22  import java.util.Map;
23  
24  import net.sf.jameleon.plugin.jagacy.JagacyFunctionTag;
25  
26  import com.jagacy.Key;
27  
28  /***
29   * Enters a given key. The following keys are valid:
30   * 'ATTN', 'BACK TAB', 'BACKSPACE', 'CLEAR', 'DOWN ARROW', 'DUPLICATE', 'ENTER', 'ERASE EOF',
31   * 'ERASE INPUT', 'HOME', 'LEFT ARROW', 'NEWLINE', 'PA1', 'PA2', 'PA3', 'PF1', 'PF10', 'PF11',
32   * 'PF12', 'PF13', 'PF14', 'PF15', 'PF16', 'PF17', 'PF18', 'PF19', 'PF2', 'PF20', 'PF21', 'PF22'
33   * 'PF23', 'PF24', 'PF3', 'PF4', 'PF5', 'PF6', 'PF7', 'PF8', 'PF9', 'RESET', 'RIGHT ARROW', 
34   * 'SYSREQ', 'TAB', 'UP ARROW'
35   * @author Christian Hargraves
36   * @jameleon.function name="jagacy-send-key" type="action"
37   */
38  public class JagacySendKeyTag extends JagacyFunctionTag{
39  
40      protected static Map keys;
41      static{
42          keys = new HashMap();
43          keys.put(Key.ATTN_NAME, Key.ATTN_WAIT);
44          keys.put(Key.BACK_TAB_NAME, Key.BACK_TAB);
45          keys.put(Key.BACKSPACE_NAME, Key.BACKSPACE);
46          keys.put(Key.CLEAR_NAME, Key.CLEAR_WAIT);
47          keys.put(Key.DOWN_ARROW_NAME, Key.DOWN_ARROW);
48          keys.put(Key.DUPLICATE_NAME, Key.DUPLICATE);
49          keys.put(Key.ENTER_NAME, Key.ENTER_WAIT);
50          keys.put(Key.ERASE_EOF_NAME, Key.ERASE_EOF);
51          keys.put(Key.ERASE_INPUT_NAME, Key.ERASE_INPUT);
52          keys.put(Key.HOME_NAME, Key.HOME);
53          keys.put(Key.LEFT_ARROW_NAME, Key.LEFT_ARROW);
54          keys.put(Key.NEWLINE_NAME, Key.NEWLINE);
55          keys.put(Key.PA1_NAME, Key.PA1_WAIT);
56          keys.put(Key.PA2_NAME, Key.PA2_WAIT);
57          keys.put(Key.PA3_NAME, Key.PA3_WAIT);
58          keys.put(Key.PA3_NAME, Key.PA3_WAIT);
59          keys.put(Key.PF1_NAME, Key.PF1_WAIT);
60          keys.put(Key.PF2_NAME, Key.PF2_WAIT);
61          keys.put(Key.PF3_NAME, Key.PF3_WAIT);
62          keys.put(Key.PF4_NAME, Key.PF4_WAIT);
63          keys.put(Key.PF5_NAME, Key.PF5_WAIT);
64          keys.put(Key.PF6_NAME, Key.PF6_WAIT);
65          keys.put(Key.PF7_NAME, Key.PF7_WAIT);
66          keys.put(Key.PF8_NAME, Key.PF8_WAIT);
67          keys.put(Key.PF9_NAME, Key.PF9_WAIT);
68          keys.put(Key.PF10_NAME, Key.PF10_WAIT);
69          keys.put(Key.PF11_NAME, Key.PF11_WAIT);
70          keys.put(Key.PF12_NAME, Key.PF12_WAIT);
71          keys.put(Key.PF13_NAME, Key.PF13_WAIT);
72          keys.put(Key.PF14_NAME, Key.PF14_WAIT);
73          keys.put(Key.PF15_NAME, Key.PF15_WAIT);
74          keys.put(Key.PF16_NAME, Key.PF16_WAIT);
75          keys.put(Key.PF17_NAME, Key.PF17_WAIT);
76          keys.put(Key.PF18_NAME, Key.PF18_WAIT);
77          keys.put(Key.PF19_NAME, Key.PF19_WAIT);
78          keys.put(Key.PF20_NAME, Key.PF20_WAIT);
79          keys.put(Key.PF21_NAME, Key.PF21_WAIT);
80          keys.put(Key.PF22_NAME, Key.PF22_WAIT);
81          keys.put(Key.PF23_NAME, Key.PF23_WAIT);
82          keys.put(Key.PF24_NAME, Key.PF24_WAIT);
83          keys.put(Key.RESET_NAME, Key.RESET);
84          keys.put(Key.RIGHT_ARROW_NAME, Key.RIGHT_ARROW);
85          keys.put(Key.SYSREQ_NAME, Key.SYSREQ_WAIT);
86          keys.put(Key.TAB_NAME, Key.TAB);
87          keys.put(Key.UP_ARROW_NAME, Key.UP_ARROW_NAME);
88      }
89  
90      /***
91       * The name of a key to send to the screen
92       * @jameleon.attribute required="true"
93       */
94      protected String key;
95  
96      public void testBlock(){
97          if (keys.containsKey(key)) {
98              writeKey((Key)keys.get(key));
99          }else{
100             fail("'"+key+"' is not a valid key!");
101         }
102     }
103 }