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

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