OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [classpath/] [javax/] [swing/] [InputMap.java] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* InputMap.java --
2
   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
package javax.swing;
39
 
40
import java.io.IOException;
41
import java.io.ObjectInputStream;
42
import java.io.ObjectOutputStream;
43
import java.io.Serializable;
44
import java.util.Arrays;
45
import java.util.HashMap;
46
import java.util.HashSet;
47
import java.util.Map;
48
import java.util.Set;
49
 
50
 
51
/**
52
 * Maps {@link KeyStroke}s to arbitrary objects, usually Strings. This
53
 * is used in combination with {@link ActionMap}s.
54
 *
55
 * If a component receives an input event, this is looked up in
56
 * the component's <code>InputMap</code>. The result is an object which
57
 * serves as a key to the components <code>ActionMap</code>. Finally
58
 * the <code>Action</code> that is stored is executed.
59
 *
60
 * @author Andrew Selkirk
61
 * @author Michael Koch
62
 *
63
 * @since 1.3
64
 */
65
public class InputMap
66
  implements Serializable
67
{
68
  private static final long serialVersionUID = -5429059542008604257L;
69
 
70
  /**
71
   * inputMap
72
   */
73
  private Map inputMap = new HashMap();
74
 
75
  /**
76
   * parent
77
   */
78
  private InputMap parent;
79
 
80
  /**
81
   * Creates a new <code>InputMap</code> instance.
82
   */
83
  public InputMap()
84
  {
85
    // TODO
86
  }
87
 
88
  /**
89
   * Returns the binding for keystroke.
90
   *
91
   * @param keystroke the key of the enty
92
   *
93
   * @return the binding associated with keystroke may be null
94
   */
95
  public Object get(KeyStroke keystroke)
96
  {
97
    Object result = inputMap.get(keystroke);
98
 
99
    if (result == null && parent != null)
100
      result = parent.get(keystroke);
101
    return result;
102
  }
103
 
104
  /**
105
   * Puts a new entry into the <code>InputMap</code>.
106
   * If actionMapKey is null an existing entry will be removed.
107
   *
108
   * @param keystroke the keystroke for the entry
109
   * @param actionMapKey the action.
110
   */
111
  public void put(KeyStroke keystroke, Object actionMapKey)
112
  {
113
    if (actionMapKey == null)
114
      inputMap.remove(keystroke);
115
    else
116
      inputMap.put(keystroke, actionMapKey);
117
  }
118
 
119
  /**
120
   * Remove an entry from the <code>InputMap</code>.
121
   *
122
   * @param keystroke the key of the entry to remove
123
   */
124
  public void remove(KeyStroke keystroke)
125
  {
126
    inputMap.remove(keystroke);
127
  }
128
 
129
  /**
130
   * Returns the parent of this <code>InputMap</code>.
131
   *
132
   * @return the parent, may be null.
133
   */
134
  public InputMap getParent()
135
  {
136
    return parent;
137
  }
138
 
139
  /**
140
   * Sets a parent for this <code>InputMap</code>.
141
   *
142
   * @param parentMap the new parent
143
   */
144
  public void setParent(InputMap parentMap)
145
  {
146
    parent = parentMap;
147
  }
148
 
149
  /**
150
   * Returns the number of entries in this <code>InputMap</code>.
151
   *
152
   * @return the number of entries
153
   */
154
  public int size()
155
  {
156
    return inputMap.size();
157
  }
158
 
159
  /**
160
   * Clears the <code>InputMap</code>.
161
   */
162
  public void clear()
163
  {
164
    inputMap.clear();
165
  }
166
 
167
  /**
168
   * Returns all keys of entries in this <code>InputMap</code>.
169
   *
170
   * @return an array of keys
171
   */
172
  public KeyStroke[] keys()
173
  {
174
    if (size() != 0)
175
      {
176
        KeyStroke[] array = new KeyStroke[size()];
177
        return (KeyStroke[]) inputMap.keySet().toArray(array);
178
      }
179
    return null;
180
  }
181
 
182
  /**
183
   * Returns all keys of entries in this <code>InputMap</code>
184
   * and all its parents.
185
   *
186
   * @return an array of keys
187
   */
188
  public KeyStroke[] allKeys()
189
  {
190
    Set set = new HashSet();
191
 
192
    if (parent != null)
193
      set.addAll(Arrays.asList(parent.allKeys()));
194
 
195
    set.addAll(inputMap.keySet());
196
    if (set.size() == 0)
197
      return null;
198
    KeyStroke[] array = new KeyStroke[set.size()];
199
    return (KeyStroke[]) set.toArray(array);
200
  }
201
 
202
  /**
203
   * writeObject
204
   *
205
   * @param stream the stream to write to
206
   *
207
   * @exception IOException If an error occurs
208
   */
209
  private void writeObject(ObjectOutputStream stream) throws IOException
210
  {
211
    // TODO
212
  }
213
 
214
  /**
215
   * readObject
216
   *
217
   * @param stream the stream to read from
218
   *
219
   * @exception ClassNotFoundException If the serialized class cannot be found
220
   * @exception IOException If an error occurs
221
   */
222
  private void readObject(ObjectInputStream stream)
223
    throws ClassNotFoundException, IOException
224
  {
225
    // TODO
226
  }
227
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.