Coverage Report - palmed.edit.scrollbar.RepeatableTimer

Classes in this Package Line Coverage Branch Coverage Complexity
RepeatableTimer
0% 
0% 
1,667

 1  
 /**
 2  
  * Redistribution  and use  in source  and binary  forms, with  or without
 3  
  * modification, are permitted provided  that the following conditions are
 4  
  * met :
 5  
  *
 6  
  * . Redistributions  of  source  code  must  retain  the  above copyright
 7  
  *   notice, this list of conditions and the following disclaimer.
 8  
  *
 9  
  * . Redistributions in  binary form  must reproduce  the above  copyright
 10  
  *   notice, this list of conditions  and the following disclaimer in  the
 11  
  *   documentation and/or other materials provided with the distribution.
 12  
  *
 13  
  * . The name of the author may not be used to endorse or promote products
 14  
  *   derived from this software without specific prior written permission.
 15  
  *
 16  
  * THIS SOFTWARE IS  PROVIDED BY THE  AUTHOR ``AS IS''  AND ANY EXPRESS  OR
 17  
  * IMPLIED  WARRANTIES,  INCLUDING,  BUT   NOT  LIMITED  TO,  THE   IMPLIED
 18  
  * WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE ARE
 19  
  * DISCLAIMED.  IN NO  EVENT SHALL  THE AUTHOR  BE LIABLE  FOR ANY  DIRECT,
 20  
  * INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES
 21  
  * (INCLUDING,  BUT  NOT LIMITED  TO,  PROCUREMENT OF  SUBSTITUTE  GOODS OR
 22  
  * SERVICES;  LOSS  OF USE,  DATA,  OR PROFITS;  OR  BUSINESS INTERRUPTION)
 23  
  * HOWEVER CAUSED  AND ON  ANY THEORY  OF LIABILITY,  WHETHER IN  CONTRACT,
 24  
  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 25  
  * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE, EVEN  IF  ADVISED OF  THE
 26  
  * POSSIBILITY OF SUCH DAMAGE.
 27  
  *
 28  
  * $Id$
 29  
  */
 30  
 
 31  
 package palmed.edit.scrollbar;
 32  
 
 33  
 import java.util.Timer;
 34  
 import java.util.TimerTask;
 35  
 
 36  
 /**
 37  
  * This class preventS a timer to be reinitialized when already running.
 38  
  *
 39  
  * @author Mathieu Champlon
 40  
  * @version $Revision$ $Date$
 41  
  */
 42  
 public final class RepeatableTimer
 43  
 {
 44  
     /**
 45  
      * The delay to start the timer when activated.
 46  
      */
 47  
     private static final int DELAY = 500;
 48  
     /**
 49  
      * The period to trigger the timer event.
 50  
      */
 51  
     private static final int PERIOD = 100;
 52  
     /**
 53  
      * The timer.
 54  
      */
 55  
     private final Timer timer_;
 56  
     /**
 57  
      * The scrollbar timer task.
 58  
      */
 59  
     private TimerTask task_;
 60  
 
 61  
     /**
 62  
      * Create a scrolling timer.
 63  
      */
 64  
     public RepeatableTimer()
 65  0
     {
 66  0
         timer_ = new Timer();
 67  0
     }
 68  
 
 69  
     /**
 70  
      * Start the timer.
 71  
      * <p>
 72  
      * Calling this method again without calling stop has no effect.
 73  
      *
 74  
      * @param task the task to execute
 75  
      */
 76  
     public void start( final TimerTask task )
 77  
     {
 78  0
         if( task_ == null )
 79  
         {
 80  0
             task_ = task;
 81  0
             timer_.scheduleAtFixedRate( task_, DELAY, PERIOD );
 82  
         }
 83  0
     }
 84  
 
 85  
     /**
 86  
      * Stop the timer.
 87  
      * <p>
 88  
      * Calling this method twice has no effect.
 89  
      */
 90  
     public void stop()
 91  
     {
 92  0
         if( task_ != null )
 93  0
             task_.cancel();
 94  0
         task_ = null;
 95  0
     }
 96  
 }