/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.communication.core.progressmonitor;
import org.eclipse.riena.core.util.ListenerList;
import org.eclipse.riena.core.util.ListenerList.Mode;
/**
*
*/
public class ProgressMonitorListImpl implements IRemoteProgressMonitorList {
private final ListenerList<IRemoteProgressMonitor> progressMonitorList;
public ProgressMonitorListImpl(final IRemoteProgressMonitor[] progressMonitors) {
super();
this.progressMonitorList = new ListenerList<IRemoteProgressMonitor>(Mode.IDENTITY, IRemoteProgressMonitor.class);
for (final IRemoteProgressMonitor listener : progressMonitors) {
this.progressMonitorList.add(listener);
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.riena.communication.core.progressmonitor.IProgressMonitorList
* #fireReadEvent(int, int)
*/
public void fireReadEvent(final int totalBytes, final int bytesRead) {
final RemoteProgressMonitorEvent remoteProgressMonitorEvent = new RemoteProgressMonitorEvent(totalBytes,
bytesRead);
for (final IRemoteProgressMonitor listener : progressMonitorList.getListeners()) {
listener.response(remoteProgressMonitorEvent);
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.riena.communication.core.progressmonitor.IProgressMonitorList
* #fireSendEvent(int, int)
*/
public void fireWriteEvent(final int totalBytes, final int bytesSent) {
final RemoteProgressMonitorEvent remoteProgressMonitorEvent = new RemoteProgressMonitorEvent(totalBytes,
bytesSent);
for (final IRemoteProgressMonitor listener : progressMonitorList.getListeners()) {
listener.request(remoteProgressMonitorEvent);
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.riena.communication.core.progressmonitor.IProgressMonitorList
* #fireStartEvent()
*/
public void fireStartEvent() {
for (final IRemoteProgressMonitor listener : progressMonitorList.getListeners()) {
listener.start();
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.riena.communication.core.progressmonitor.IProgressMonitorList
* #fireEndEvent(int)
*/
public void fireEndEvent(final int totalBytes) {
for (final IRemoteProgressMonitor listener : progressMonitorList.getListeners()) {
listener.end();
}
}
}