001         package com.croftsoft.core.animation.updater;
002    
003         import javax.swing.JComponent;
004    
005         import com.croftsoft.core.animation.ComponentUpdater;
006         import com.croftsoft.core.lang.NullArgumentException;
007         import com.croftsoft.core.util.ArrayLib;
008    
009         /*********************************************************************
010         * Makes a ComponentUpdater array look like a single ComponentUpdater.
011         *
012         * @version
013         *   2003-07-05
014         * @since
015         *   2002-03-06
016         * @author
017         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
018         *********************************************************************/
019    
020         public final class  ArrayComponentUpdater
021           implements ComponentUpdater
022         //////////////////////////////////////////////////////////////////////
023         //////////////////////////////////////////////////////////////////////
024         {
025    
026         private ComponentUpdater [ ]  componentUpdaters;
027    
028         //////////////////////////////////////////////////////////////////////
029         // constructor methods
030         //////////////////////////////////////////////////////////////////////
031    
032         public  ArrayComponentUpdater (
033           ComponentUpdater [ ]  componentUpdaters )
034         //////////////////////////////////////////////////////////////////////
035         {
036           setComponentUpdaters ( componentUpdaters );
037         }
038    
039         public  ArrayComponentUpdater ( )
040         //////////////////////////////////////////////////////////////////////
041         {
042           this ( new ComponentUpdater [ 0 ] );
043         }
044    
045         //////////////////////////////////////////////////////////////////////
046         // accessor/mutator methods
047         //////////////////////////////////////////////////////////////////////
048    
049         public ComponentUpdater [ ]  getComponentUpdaters ( )
050         //////////////////////////////////////////////////////////////////////
051         {
052           return componentUpdaters;
053         }
054    
055         public void  add ( ComponentUpdater  componentUpdater )
056         //////////////////////////////////////////////////////////////////////
057         {
058           componentUpdaters = ( ComponentUpdater [ ] )
059             ArrayLib.append ( componentUpdaters, componentUpdater );
060         }
061    
062         public void  setComponentUpdaters (
063           ComponentUpdater [ ]  componentUpdaters )
064         //////////////////////////////////////////////////////////////////////
065         {
066           NullArgumentException.check (
067             this.componentUpdaters = componentUpdaters );
068         }
069    
070         //////////////////////////////////////////////////////////////////////
071         //////////////////////////////////////////////////////////////////////
072    
073         /*********************************************************************
074         * Updates each element in the ComponentUpdater array.
075         *********************************************************************/
076         public void  update ( JComponent  component )
077         //////////////////////////////////////////////////////////////////////
078         {
079           for ( int  i = 0; i < componentUpdaters.length; i++ )
080           {
081             componentUpdaters [ i ].update ( component );
082           }
083         }
084    
085         //////////////////////////////////////////////////////////////////////
086         //////////////////////////////////////////////////////////////////////
087         }