source: trunk/quest-misc/src/main/java/de/ugoe/cs/tasktree/keyboardmaps/VirtualKeySynonyms.java @ 655

Last change on this file since 655 was 655, checked in by pharms, 12 years ago
  • removed old copyright file header
File size: 2.1 KB
Line 
1package de.ugoe.cs.tasktree.keyboardmaps;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5import java.util.List;
6import java.util.Map;
7import java.util.logging.Logger;
8
9/**
10 * TODO comment
11 *
12 * @version $Revision: $ $Date: 12.07.2012$
13 * @author 2012, last modified by $Author: pharms$
14 */
15class VirtualKeySynonyms {
16   
17    /** */
18    private static Logger LOG = Logger.getLogger(KeyboardMap.class.getName());
19
20    /** */
21    private Map<Integer, List<VirtualKey>> synonyms = new HashMap<Integer, List<VirtualKey>>();
22
23    /** */
24    private Map<VirtualKey, Integer> keyIds = new HashMap<VirtualKey, Integer>();
25
26    /**
27     * TODO: comment
28     *
29     * @param keyId
30     * @param virtualKey
31     */
32    public void add(int keyId, VirtualKey virtualKey) {
33        List<VirtualKey> synonymList = synonyms.get(keyId);
34
35        if (synonymList == null) {
36            synonymList = new ArrayList<VirtualKey>();
37            synonyms.put(keyId, synonymList);
38        }
39
40        if (!synonymList.contains(virtualKey)) {
41            // ensure that the latest determined virtual keys are considered first
42            synonymList.add(0, virtualKey);
43        }
44
45        Integer existingKeyId = keyIds.get(virtualKey);
46
47        if ((existingKeyId != null) && (existingKeyId != keyId)) {
48            LOG.finest("virtual key " + virtualKey +
49                       " is mapped to more than one key id (current is " + existingKeyId +
50                       ", new is " + keyId + "). New key id will be used (" + keyId + ").");
51        }
52
53        keyIds.put(virtualKey, keyId);
54    }
55
56    /**
57   *
58   */
59    public boolean containsKey(int keyId) {
60        return synonyms.containsKey(keyId);
61    }
62
63    /**
64     * TODO: comment
65     *
66     * @param keyId
67     * @return
68     */
69    public VirtualKey[] getVirtualKeySynonyms(int keyId) {
70        List<VirtualKey> virtualKeys = synonyms.get(keyId);
71        if (virtualKeys != null) {
72            return virtualKeys.toArray(new VirtualKey[virtualKeys.size()]);
73        }
74        else {
75            LOG.warning("no virtual key define for key id " + keyId);
76            return null;
77        }
78    }
79
80}
Note: See TracBrowser for help on using the repository browser.