View Javadoc

1   /*
2    * @(#)$Id:$
3    *
4    * Author		:	Ueli Kurmann, igesture@uelikurmann.ch
5    *                  
6    *
7    * Purpose		: 
8    *
9    * -----------------------------------------------------------------------
10   *
11   * Revision Information:
12   *
13   * Date				Who			Reason
14   *
15   * 02.12.2008			ukurmann	Initial Release
16   *
17   * -----------------------------------------------------------------------
18   *
19   * Copyright 1999-2009 ETH Zurich. All Rights Reserved.
20   *
21   * This software is the proprietary information of ETH Zurich.
22   * Use is subject to license terms.
23   * 
24   */
25  
26  
27  package org.ximtec.igesture.io;
28  
29  import java.util.HashSet;
30  import java.util.Set;
31  
32  import org.ximtec.igesture.core.Gesture;
33  
34  
35  /**
36   * Comment
37   * @version 1.0 02.12.2008
38   * @author Ueli Kurmann
39   */
40  public abstract class AbstractGestureDevice<E, F> implements GestureDevice<E, F>{
41  
42     private Set<GestureEventListener> gestureListeners;
43     
44     private int connectionType;
45     private int deviceType;
46     private String id;
47     private String name;
48     private boolean isDefault = false;
49     private boolean connected = false;
50     
51     public AbstractGestureDevice(){
52        gestureListeners = new HashSet<GestureEventListener>();
53     }
54     
55     /*
56      * (non-Javadoc)
57      * @see org.ximtec.igesture.io.GestureDevice#removeGestureHandle(org.ximtec.igesture.io.GestureEventListener)
58      */
59     @Override
60     public void removeGestureHandler(GestureEventListener listener) {
61        gestureListeners.remove(listener);
62     }
63  
64  
65     /*
66      * (non-Javadoc)
67      * @see org.ximtec.igesture.io.GestureDevice#addGestureHandler(org.ximtec.igesture.io.GestureEventListener)
68      */
69     @Override
70     public void addGestureHandler(GestureEventListener listener) {
71        gestureListeners.add(listener);
72     }
73     
74     /**
75      * Fires a Gesture Event
76      * @param gesture
77      */
78     protected void fireGestureEvent(Gesture<?> gesture){
79        for(GestureEventListener listener:gestureListeners){
80           listener.handleGesture(gesture);
81        }
82     }
83     
84     /**
85      * Removes all Gesture listeners
86      */
87     protected void removeAllListener(){
88        gestureListeners.clear();
89     }
90  
91     //MODIFY >
92     
93     public void removeAllGestureHandler()
94     {
95  	   removeAllListener();
96     }
97     
98     	@Override
99  	public String getDeviceID() 
100 	{
101 		return id;
102 	}
103 	
104    	@Override
105    	public void setDeviceID(String id)
106    	{
107    		this.id = id;
108    	}
109    	
110 //   	@Override
111 //	public boolean hasUniqueDeviceID()
112 //   	{
113 //   		return true;
114 //   	}
115 	
116    	@Override
117 	public String getName()
118    	{
119    		return name;
120    	}
121    	
122    	@Override
123 	public void setName(String name) 
124    	{
125    		this.name = name;
126 	}
127 	
128    	@Override
129 	public abstract void disconnect();
130    	@Override
131 	public abstract void connect();
132    	
133    	@Override
134 	public boolean isConnectable() {
135 		return true;
136 	}
137    	
138    	@Override
139 	public boolean isDisconnectable() {
140 		return true;
141 	}
142    	
143    	@Override
144 	public boolean isConnected() {
145 		return connected;
146 	}
147    	@Override
148 	public void setIsConnected(boolean isConnected) 
149    	{
150    		connected = isConnected;
151 	}
152 	
153    	@Override
154    	public int getDeviceType() {
155 		return deviceType;
156 	}
157    	@Override
158 	public void setDeviceType(int deviceType) {
159    		this.deviceType = deviceType;
160 	}
161 	
162    	@Override
163    	public int getConnectionType() {
164 		return connectionType;
165 	}
166    	@Override
167 	public void setConnectionType(int connectionType) {
168    		this.connectionType = connectionType;
169 	}
170 	
171    	@Override
172 	public boolean isDefaultDevice() {
173 		return isDefault;
174 	}
175    	@Override
176 	public void setDefaultDevice(boolean isDefault) {
177    		this.isDefault = isDefault;
178 	}	
179 	
180 	public String toString() {
181 		return getName() + " ("+getDeviceID()+")";
182 	}
183 	
184 	@Override
185 	public String getDeviceClass()
186 	{
187 		return getClass().getSimpleName();
188 	}
189 }