diff options
Diffstat (limited to 'libjava/javax/swing/InputMap.java')
-rw-r--r-- | libjava/javax/swing/InputMap.java | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/libjava/javax/swing/InputMap.java b/libjava/javax/swing/InputMap.java new file mode 100644 index 00000000000..9f81121c5a9 --- /dev/null +++ b/libjava/javax/swing/InputMap.java @@ -0,0 +1,230 @@ +/* InputMap.java -- + Copyright (C) 2002 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.swing; + +// Imports +import java.util.*; +import java.io.*; + +/** + * InputMap + * @author Andrew Selkirk + * @version 1.0 + */ +public class InputMap implements Serializable { + + //------------------------------------------------------------- + // Variables -------------------------------------------------- + //------------------------------------------------------------- + + /** + * inputMap + */ + private Map inputMap = new HashMap(); + + /** + * parent + */ + private InputMap parent = null; + + + //------------------------------------------------------------- + // Initialization --------------------------------------------- + //------------------------------------------------------------- + + /** + * Constructor InputMap + */ + public InputMap() { + // TODO + } // InputMap() + + + //------------------------------------------------------------- + // Methods ---------------------------------------------------- + //------------------------------------------------------------- + + /** + * get + * @param value0 TODO + * @returns Object + */ + public Object get(KeyStroke keystroke) { + + // Variables + Object result; + + // Check Local store + result = inputMap.get(keystroke); + + // Check Parent + if (result == null) { + result = parent.get(keystroke); + } // if + + return result; + + } // get() + + /** + * put + * @param keystroke TODO + * @param actionMapKey TODO + */ + public void put(KeyStroke keystroke, Object actionMapKey) { + if (actionMapKey == null) { + inputMap.remove(keystroke); + } else { + inputMap.put(keystroke, actionMapKey); + } // if + } // put() + + /** + * remove + * @param keystroke TODO + */ + public void remove(KeyStroke keystroke) { + inputMap.remove(keystroke); + } // remove() + + /** + * getParent + * @returns InputMap + */ + public InputMap getParent() { + return parent; + } // getParent() + + /** + * setParent + * @param parentMap TODO + */ + public void setParent(InputMap parentMap) { + parent = parentMap; + } // setParent() + + /** + * size + * @returns int + */ + public int size() { + return inputMap.size(); + } // size() + + /** + * clear + */ + public void clear() { + inputMap.clear(); + } // clear() + + /** + * keys + * @returns KeyStroke[] + */ + public KeyStroke[] keys() { + return convertSet(inputMap.keySet()); + } // keys() + + /** + * allKeys + * @returns KeyStroke[] + */ + public KeyStroke[] allKeys() { + + // Variables + Set set; + + // Initialize + set = new HashSet(); + + // Get Key Sets + if (parent != null) { + set.addAll(Arrays.asList(parent.allKeys())); + } // if + set.addAll(inputMap.keySet()); + + return convertSet(set); + + } // allKeys() + + private KeyStroke[] convertSet(Set set) { + + // Variables + int index; + Iterator iterator; + KeyStroke[] keys; + + // Create Final array + keys = new KeyStroke[set.size()]; + iterator = set.iterator(); + index = 0; + while (iterator.hasNext()) { + keys[index++] = (KeyStroke) iterator.next(); + } // while + + return keys; + + } // convertSet() + + + //------------------------------------------------------------- + // Interface: Serializable ------------------------------------ + //------------------------------------------------------------- + + /** + * writeObject + * @param stream TODO + * @exception IOException TODO + */ + private void writeObject(ObjectOutputStream stream) throws IOException { + // TODO + } // writeObject() + + /** + * readObject + * @param stream TODO + * @exception ClassNotFoundException TODO + * @exception IOException TODO + */ + private void readObject(ObjectInputStream stream) throws ClassNotFoundException, IOException { + // TODO + } // readObject() + + +} // InputMap |