001         package com.croftsoft.apps.mars.controller;
002    
003         import java.awt.*;
004         import java.awt.event.*;
005    
006         import com.croftsoft.core.animation.animator.FrameRateAnimator;
007         import com.croftsoft.core.lang.NullArgumentException;
008    
009         /*********************************************************************
010         * Toggle the frame rate display.
011         *
012         * @version
013         *   2003-04-11
014         * @since
015         *   2003-04-11
016         * @author
017         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
018         *********************************************************************/
019    
020         public final class  FrameRateController
021           extends KeyAdapter
022         //////////////////////////////////////////////////////////////////////
023         //////////////////////////////////////////////////////////////////////
024         {
025    
026         private final FrameRateAnimator  frameRateAnimator;
027    
028         //////////////////////////////////////////////////////////////////////
029         //////////////////////////////////////////////////////////////////////
030    
031         public  FrameRateController (
032           FrameRateAnimator  frameRateAnimator,
033           Component          component )
034         //////////////////////////////////////////////////////////////////////
035         {
036           NullArgumentException.check (
037             this.frameRateAnimator = frameRateAnimator );
038    
039           component.addKeyListener ( this );
040    
041           component.requestFocus ( );
042         }
043    
044         //////////////////////////////////////////////////////////////////////
045         // interface KeyListener methods
046         //////////////////////////////////////////////////////////////////////
047    
048         public void  keyPressed ( KeyEvent  keyEvent )
049         //////////////////////////////////////////////////////////////////////
050         {
051           if ( keyEvent.getKeyCode ( ) == KeyEvent.VK_F )
052           {
053             frameRateAnimator.toggle ( );
054           }
055         }
056    
057         //////////////////////////////////////////////////////////////////////
058         //////////////////////////////////////////////////////////////////////
059         }