/************************************************************************** * Copyright (c) 2001, 2002, 2003 by Acunia N.V. All rights reserved. * * * * This software is copyrighted by and is the sole property of Acunia N.V. * * and its licensors, if any. All rights, title, ownership, or other * * interests in the software remain the property of Acunia N.V. and its * * licensors, if any. * * * * This software may only be used in accordance with the corresponding * * license agreement. Any unauthorized use, duplication, transmission, * * distribution or disclosure of this software is expressly forbidden. * * * * This Copyright notice may not be removed or modified without prior * * written consent of Acunia N.V. * * * * Acunia N.V. reserves the right to modify this software without notice. * * * * Acunia N.V. * * Philips-site 5, box 3 info@acunia.com * * 3001 Leuven http://www.acunia.com * * Belgium - EUROPE * **************************************************************************/ package java.awt.image; import java.util.*; public class FilteredImageSource implements ImageProducer { private ImageProducer producer; private ImageFilter filter; private Vector consumers; private Hashtable properties; public FilteredImageSource(ImageProducer producer, ImageFilter filter) { this.producer = producer; this.filter = filter; consumers = new Vector(); } public void addConsumer(ImageConsumer ic) { consumers.add(ic); } public boolean isConsumer(ImageConsumer ic) { return consumers.contains(ic); } public void removeConsumer(ImageConsumer ic) { consumers.remove(ic); } public void requestTopDownLeftRightResend(ImageConsumer ic) { } public synchronized void startProduction(ImageConsumer ic) { if(ic != null) { addConsumer(ic); } Iterator iter = consumers.iterator(); while(iter.hasNext()) { producer.startProduction( (ImageConsumer)filter.getFilterInstance( (ImageConsumer)(iter.next()) ) ); } consumers = new Vector(); } }