2 * Copyright 2015 Samsung Electronics All Rights Reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package oic.simulator.serviceprovider.manager;
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
23 import oic.simulator.serviceprovider.listener.IAutomationUIListener;
24 import oic.simulator.serviceprovider.listener.IDeviceInfoUIListener;
25 import oic.simulator.serviceprovider.listener.IObserverListChangedUIListener;
26 import oic.simulator.serviceprovider.listener.IPropertiesChangedUIListener;
27 import oic.simulator.serviceprovider.listener.IResourceListChangedUIListener;
28 import oic.simulator.serviceprovider.listener.IResourceModelChangedUIListener;
29 import oic.simulator.serviceprovider.listener.ISelectionChangedUIListener;
30 import oic.simulator.serviceprovider.model.Device;
31 import oic.simulator.serviceprovider.model.Resource;
32 import oic.simulator.serviceprovider.model.ResourceType;
33 import oic.simulator.serviceprovider.model.SingleResource;
35 public class UiListenerHandler {
37 private static UiListenerHandler uiHandler;
39 private List<IResourceListChangedUIListener> resourceListChangedUIListeners;
41 private List<ISelectionChangedUIListener> selectionChangedUIListeners;
43 private List<IResourceModelChangedUIListener> resourceModelChangedUIListeners;
45 private List<IAutomationUIListener> automationUIListeners;
47 private List<IObserverListChangedUIListener> observerUIListeners;
49 private List<IPropertiesChangedUIListener> propertiesChangedUIListeners;
51 private List<IDeviceInfoUIListener> deviceInfoUIListeners;
53 private UiListenerHandler() {
54 resourceListChangedUIListeners = new ArrayList<IResourceListChangedUIListener>();
55 selectionChangedUIListeners = new ArrayList<ISelectionChangedUIListener>();
56 resourceModelChangedUIListeners = new ArrayList<IResourceModelChangedUIListener>();
57 automationUIListeners = new ArrayList<IAutomationUIListener>();
58 observerUIListeners = new ArrayList<IObserverListChangedUIListener>();
59 propertiesChangedUIListeners = new ArrayList<IPropertiesChangedUIListener>();
60 deviceInfoUIListeners = new ArrayList<IDeviceInfoUIListener>();
63 public static UiListenerHandler getInstance() {
64 if (null == uiHandler) {
65 uiHandler = new UiListenerHandler();
70 public void addResourceListChangedUIListener(
71 IResourceListChangedUIListener resourceListChangedUIListener) {
72 synchronized (resourceListChangedUIListeners) {
73 resourceListChangedUIListeners.add(resourceListChangedUIListener);
77 public void addResourceSelectionChangedUIListener(
78 ISelectionChangedUIListener resourceSelectionChangedUIListener) {
79 synchronized (selectionChangedUIListeners) {
80 selectionChangedUIListeners.add(resourceSelectionChangedUIListener);
84 public void addResourceModelChangedUIListener(
85 IResourceModelChangedUIListener resourceModelChangedUIListener) {
86 synchronized (resourceModelChangedUIListeners) {
87 resourceModelChangedUIListeners.add(resourceModelChangedUIListener);
91 public void addAutomationUIListener(
92 IAutomationUIListener automationUIListener) {
93 synchronized (automationUIListeners) {
94 automationUIListeners.add(automationUIListener);
98 public void addObserverListChangedUIListener(
99 IObserverListChangedUIListener observerListChangedUIListener) {
100 synchronized (observerUIListeners) {
101 observerUIListeners.add(observerListChangedUIListener);
105 public void addResourcePropertiesChangedUIListener(
106 IPropertiesChangedUIListener resourcePropertiesChangedUIListener) {
107 synchronized (propertiesChangedUIListeners) {
108 propertiesChangedUIListeners
109 .add(resourcePropertiesChangedUIListener);
113 public void removeResourceListChangedUIListener(
114 IResourceListChangedUIListener listener) {
115 synchronized (resourceListChangedUIListeners) {
116 if (null != listener && resourceListChangedUIListeners.size() > 0) {
117 resourceListChangedUIListeners.remove(listener);
122 public void removeResourceSelectionChangedUIListener(
123 ISelectionChangedUIListener listener) {
124 synchronized (selectionChangedUIListeners) {
125 if (null != listener && selectionChangedUIListeners.size() > 0) {
126 selectionChangedUIListeners.remove(listener);
131 public void removeResourceModelChangedUIListener(
132 IResourceModelChangedUIListener listener) {
133 synchronized (resourceModelChangedUIListeners) {
134 if (null != listener && resourceModelChangedUIListeners.size() > 0) {
135 resourceModelChangedUIListeners.remove(listener);
140 public void removeAutomationUIListener(IAutomationUIListener listener) {
141 synchronized (automationUIListeners) {
142 if (null != listener && automationUIListeners.size() > 0) {
143 automationUIListeners.remove(listener);
148 public void removeObserverListChangedUIListener(
149 IObserverListChangedUIListener listener) {
150 synchronized (observerUIListeners) {
151 if (null != listener && observerUIListeners.size() > 0) {
152 observerUIListeners.remove(listener);
157 public void removeResourcePropertiesChangedUIListener(
158 IPropertiesChangedUIListener resourcePropertiesChangedUIListener) {
159 synchronized (propertiesChangedUIListeners) {
160 propertiesChangedUIListeners
161 .remove(resourcePropertiesChangedUIListener);
165 public void addDeviceInfoUIListener(IDeviceInfoUIListener deviceUIListener) {
166 synchronized (deviceInfoUIListeners) {
167 deviceInfoUIListeners.add(deviceUIListener);
171 public void removeDeviceInfoUIListener(
172 IDeviceInfoUIListener platformUIListener) {
173 synchronized (deviceInfoUIListeners) {
174 deviceInfoUIListeners.remove(platformUIListener);
178 public void resourceCreatedUINotification(ResourceType type) {
179 synchronized (resourceListChangedUIListeners) {
180 if (resourceListChangedUIListeners.size() > 0) {
181 IResourceListChangedUIListener listener;
182 Iterator<IResourceListChangedUIListener> listenerItr = resourceListChangedUIListeners
184 while (listenerItr.hasNext()) {
185 listener = listenerItr.next();
186 if (null != listener) {
187 listener.onResourceCreation(type);
194 public void resourceDeletedUINotification(ResourceType type) {
195 synchronized (resourceListChangedUIListeners) {
196 if (resourceListChangedUIListeners.size() > 0) {
197 IResourceListChangedUIListener listener;
198 Iterator<IResourceListChangedUIListener> listenerItr = resourceListChangedUIListeners
200 while (listenerItr.hasNext()) {
201 listener = listenerItr.next();
202 if (null != listener) {
203 listener.onResourceDeletion(type);
210 public void resourceListUpdateUINotification(ResourceType type) {
211 synchronized (resourceListChangedUIListeners) {
212 if (resourceListChangedUIListeners.size() > 0) {
213 IResourceListChangedUIListener listener;
214 Iterator<IResourceListChangedUIListener> listenerItr = resourceListChangedUIListeners
216 while (listenerItr.hasNext()) {
217 listener = listenerItr.next();
218 if (null != listener) {
219 listener.onResourceListUpdate(type);
226 public void resourceSelectionChangedUINotification(Resource resource) {
227 synchronized (selectionChangedUIListeners) {
228 if (selectionChangedUIListeners.size() > 0) {
229 ISelectionChangedUIListener listener;
230 Iterator<ISelectionChangedUIListener> listenerItr = selectionChangedUIListeners
232 while (listenerItr.hasNext()) {
233 listener = listenerItr.next();
234 if (null != listener) {
235 listener.onResourceSelectionChange(resource);
242 public void deviceSelectionChangedUINotification(Device dev) {
243 synchronized (selectionChangedUIListeners) {
244 if (selectionChangedUIListeners.size() > 0) {
245 ISelectionChangedUIListener listener;
246 Iterator<ISelectionChangedUIListener> listenerItr = selectionChangedUIListeners
248 while (listenerItr.hasNext()) {
249 listener = listenerItr.next();
250 if (null != listener) {
251 listener.onDeviceSelectionChange(dev);
258 public void resourceModelChangedUINotification(Resource resource) {
259 synchronized (resourceModelChangedUIListeners) {
260 if (resourceModelChangedUIListeners.size() > 0 && null != resource) {
261 IResourceModelChangedUIListener listener;
262 Iterator<IResourceModelChangedUIListener> listenerItr = resourceModelChangedUIListeners
264 while (listenerItr.hasNext()) {
265 listener = listenerItr.next();
266 if (null != listener) {
267 listener.onResourceModelChange(resource);
274 public void resourceAutomationStartedUINotification(SingleResource resource) {
275 synchronized (automationUIListeners) {
276 if (automationUIListeners.size() > 0 && null != resource) {
277 IAutomationUIListener listener;
278 Iterator<IAutomationUIListener> listenerItr = automationUIListeners
280 while (listenerItr.hasNext()) {
281 listener = listenerItr.next();
282 if (null != listener) {
283 listener.onResourceAutomationStart(resource);
290 public void automationCompleteUINotification(SingleResource resource,
292 synchronized (automationUIListeners) {
293 if (automationUIListeners.size() > 0 && null != resource) {
294 IAutomationUIListener listener;
295 Iterator<IAutomationUIListener> listenerItr = automationUIListeners
297 while (listenerItr.hasNext()) {
298 listener = listenerItr.next();
299 if (null != listener) {
300 listener.onAutomationComplete(resource, attName);
307 public void observerListChangedUINotification(Resource resource) {
308 synchronized (observerUIListeners) {
309 if (observerUIListeners.size() > 0 && null != resource) {
310 IObserverListChangedUIListener listener;
311 Iterator<IObserverListChangedUIListener> listenerItr = observerUIListeners
313 while (listenerItr.hasNext()) {
314 listener = listenerItr.next();
315 if (null != listener) {
316 listener.onObserverListChanged(resource);
323 public void propertiesChangedUINotification(Class<?> targetClass) {
324 synchronized (propertiesChangedUIListeners) {
325 if (propertiesChangedUIListeners.size() > 0) {
326 IPropertiesChangedUIListener listener;
327 Iterator<IPropertiesChangedUIListener> listenerItr = propertiesChangedUIListeners
329 while (listenerItr.hasNext()) {
330 listener = listenerItr.next();
331 if (null != listener) {
332 if (targetClass == Resource.class) {
333 listener.onResourcePropertyChange();
335 listener.onDevicePropertyChange();
343 public void deviceInfoReceivedNotification() {
344 synchronized (deviceInfoUIListeners) {
345 if (deviceInfoUIListeners.size() > 0) {
346 IDeviceInfoUIListener listener;
347 Iterator<IDeviceInfoUIListener> listenerItr = deviceInfoUIListeners
349 while (listenerItr.hasNext()) {
350 listener = listenerItr.next();
351 if (null != listener) {
352 listener.onDeviceInfoFound();