1 /* 2 * Copyright (c) 2003-2008 by Cosylab d. d. 3 * 4 * This file is part of CosyBeans. 5 * 6 * CosyBeans is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * CosyBeans is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with CosyBeans. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package com.cosylab.gui.adapters; 21 22 import com.cosylab.gui.displayers.AsynchronousNumberConsumer; 23 import com.cosylab.gui.displayers.DataConsumer; 24 import com.cosylab.gui.displayers.UpdateRequest; 25 import com.cosylab.util.CommonException; 26 27 28 /** 29 * <code>AsynchronousDispatcher</code> is implementation of 30 * <code>AsynchronousNumberConsumer</code> which delegates value updates to 31 * registered consumers. 32 * 33 * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a> 34 * @version $Id: AsynchronousDispatcher.java,v 1.5 2008-04-22 12:31:02 jbobnar Exp $ 35 * 36 * @since Feb 14, 2004. 37 */ 38 public class AsynchronousDispatcher extends DataConsumerDispatcher 39 implements AsynchronousNumberConsumer 40 { 41 private static final long serialVersionUID = 1L; 42 43 /** 44 * Creates new dispatcher. 45 */ 46 public AsynchronousDispatcher() 47 { 48 super(new Class[]{ AsynchronousNumberConsumer.class }); 49 } 50 51 /* (non-Javadoc) 52 * @see com.cosylab.gui.displayers.NonblockingNumberConsumer#updateNonblocking(java.lang.Number) 53 */ 54 /* (non-Javadoc) 55 * @see com.cosylab.gui.displayers.AsynchronousNumberConsumer#updateAcynchronously(com.cosylab.gui.displayers.UpdateRequest) 56 */ 57 public void updateAcynchronously(UpdateRequest request) 58 throws CommonException { 59 DataConsumer[] delegates = getConsumers(); 60 61 for (int i = 0; i < delegates.length; i++) { 62 try { 63 ((AsynchronousNumberConsumer)delegates[i]).updateAcynchronously(request); 64 } catch (CommonException e) { 65 throw e; 66 } catch (Exception e) { 67 e.printStackTrace(); 68 } 69 } 70 } 71 72 } 73 74 /* __oOo__ */