/src/org/mt4j/input/inputData/ActiveCursorPool.java
http://mt4j.googlecode.com/ · Java · 128 lines · 35 code · 21 blank · 72 comment · 2 complexity · 422d8d6901518a03de4c467a983a722c MD5 · raw file
- /***********************************************************************
- * mt4j Copyright (c) 2008 - 2009, C.Ruff, Fraunhofer-Gesellschaft All rights reserved.
- *
- * This program 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 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
- *
- ***********************************************************************/
- package org.mt4j.input.inputData;
-
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.Map;
-
-
-
- /**
- * This class is basically a centralized wrapper for a HashMap acting as a store
- * for active inputs.
- * cursors are added when a new Touch is registered. cursors should be put in the map by
- * using their cursor-ID. When the cursor has ended they have to be removed again.
- *
- * @author Christopher Ruff
- */
- public class ActiveCursorPool {
-
- /** The cursor pool. */
- private static ActiveCursorPool cursorPool;
-
- /** The cursors map. */
- private Map<Long, InputCursor> cursorMap;
-
- /**
- * Instantiates a new cursor pool.
- */
- private ActiveCursorPool(){
- cursorMap = new HashMap<Long, InputCursor>();
- // cursorMap = new WeakHashMap<Long, InputCursor>();
- }
-
- /**
- * Gets the single instance of cursorPool.
- *
- * @return single instance of cursorPool
- */
- public static ActiveCursorPool getInstance(){
- if (cursorPool == null){
- cursorPool = new ActiveCursorPool();
- return cursorPool;
- }else{
- return cursorPool;
- }
- }
-
-
- /**
- * Put cursor. The id is assumed to be the cursors ID.
- *
- * @param cursorID the cursor id
- * @param m the m
- */ //TODO automate because id = cursorID?
- public void putActiveCursor(long cursorID, InputCursor m){
- cursorMap.put(cursorID, m);
- }
-
-
- /**
- * Gets the cursor by id.
- *
- * @param ID the iD
- *
- * @return the cursor by id
- */
- public InputCursor getActiveCursorByID(long ID){
- return cursorMap.get(ID);
- }
-
- public InputCursor[] getActiveCursors(){
- Collection<InputCursor> values = cursorMap.values();
- return values.toArray(new InputCursor[values.size()]);
- /*
- Set<Long> keys = cursorsMap.keySet();
- for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
- Long long1 = (Long) iterator.next();
- Inputcursor cursor = cursorsMap.get(long1);
- MTCursorInputEvt lastEvt = cursor.getLastEvent();
- MTCursorInputEvt copy = (MTCursorInputEvt) lastEvt.clone();
- copy.setId(MTCursorInputEvt.INPUT_ENDED);
-
- }
- return null;
- */
- }
-
-
- /**
- * Removes the cursor.
- *
- * @param ID the iD
- * @return the input cursor
- */
- public InputCursor removeCursor(long ID){
- return cursorMap.remove(ID);
- }
-
- /**
- * Gets the active cursor count.
- *
- * @return the active cursor count
- */
- public long getActiveCursorCount(){
- return cursorMap.size();
- }
-
-
-
-
-
- }