|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.javacore.internalapi; import java.util.ArrayList; import java.util.Iterator; import org.openide.ErrorManager; /** * @author Martin Matula, Jan Becicka */ public final class ProgressSupport { /** Utility field holding list of ProgressListeners. */ private transient ArrayList progressListenerList = null; public ProgressSupport() { progressListenerList = new ArrayList(); } public synchronized void addProgressListener(ProgressListener listener) { progressListenerList.add(listener); } /** Removes ProgressListener from the list of listeners. * @param listener The listener to remove. * */ public synchronized void removeProgressListener(ProgressListener listener) { progressListenerList.remove(listener); } /** Notifies all registered listeners about the event. * * @param type Type of operation that is starting. * @param count Number of steps the operation consists of. * */ public void fireProgressListenerStart(int type, int count) { ArrayList list; ProgressEvent event = new ProgressEvent(this, ProgressEvent.START, type, count); synchronized (this) { list = (ArrayList) progressListenerList.clone(); } for (Iterator it = list.iterator(); it.hasNext();) { try { ((ProgressListener) it.next()).start(event); } catch (RuntimeException e) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e); } } } /** Notifies all registered listeners about the event. */ public void fireProgressListenerStep(int count) { ArrayList list; ProgressEvent event = new ProgressEvent(this, ProgressEvent.STEP, 0, count); synchronized (this) { list = (ArrayList) progressListenerList.clone(); } for (Iterator it = list.iterator(); it.hasNext();) { try { ((ProgressListener) it.next()).step(event); } catch (RuntimeException e) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e); } } } /** Notifies all registered listeners about the event. */ public void fireProgressListenerStep() { fireProgressListenerStep(1); } /** Notifies all registered listeners about the event. */ public void fireProgressListenerStop() { ArrayList list; ProgressEvent event = new ProgressEvent(this, ProgressEvent.STOP); synchronized (this) { list = (ArrayList) progressListenerList.clone(); } for (Iterator it = list.iterator(); it.hasNext();) { try { ((ProgressListener) it.next()).stop(event); } catch (RuntimeException e) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e); } } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.