
            /**
            IMPORTANT !!!
       
            DO NOT EDIT THIS FILE. IT IS GENERATED FROM approriate xml file in xmlresources/gbinfomessages BY
            THE JavaClassesGenerator.xslt. MODIFY THESE FILES INSTEAD OF THIS ONE.
       
            IMPORTANT END !!!
            */
            package
            cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
	    		import java.util.*;    
    import javax.vecmath.*;    
    import cz.cuni.amis.pogamut.base.communication.messages.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.objects.*;    
    import cz.cuni.amis.pogamut.base.communication.translator.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;    
    import cz.cuni.amis.pogamut.base.exceptions.*;    
    import cz.cuni.amis.pogamut.base3d.worldview.objects.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.*;    
    import cz.cuni.amis.pogamut.ut2004.agent.worldview.objects.*;    
                
            
            /**
              
		Asynchronous message. Response to key event (key press, key release...) when previous SETSENDKEYS command turned this sending on. 
	
                          Corresponding GameBots message is 
                          KEYEVENT.
                      
             */
            
            public class
            KeyEvent
                    extends GBEvent
                
	            	implements IWorldEvent
                        
            {
            
            
            
    	/** Example how the message looks like - used during parser tests. */
    	public static final String PROTOTYPE = 
    		"KEYEVENT {Player text} {Action text} {Key text}";
    
            
            /////// Properties BEGIN
            
        /**
        
			Name of player who has triggered the key event.
		 */
        protected
         String Player = 
        	null;
        
        
        /**
        
			Name of player who has triggered the key event.
		 */
        public
        String getPlayer() {
            return
         Player;
        }
        

        
        /**
        
			Action that happened with the key. Possible are: PRESS, HOLD, RELEASE.
		 */
        protected
         String Action = 
        	null;
        
        
        /**
        
			Action that happened with the key. Possible are: PRESS, HOLD, RELEASE.
		 */
        public
        String getAction() {
            return
         Action;
        }
        

        
        /**
        
			Key that has been pressed, released or held. See Interactions.EInputKey for choices - these are without the "IK_" prefix with original case.
		 */
        protected
         String Key = 
        	null;
        
        
        /**
        
			Key that has been pressed, released or held. See Interactions.EInputKey for choices - these are without the "IK_" prefix with original case.
		 */
        public
        String getKey() {
            return
         Key;
        }
        

        
            /////// Properties END
            
            /////// Extra Java code BEGIN
                        	
            	/////// Additional code from xslt BEGIN            	 
            			
            		
            		
            	/////// Additional code from xslt END            
				                    
	            /////// Extra Java from XML BEGIN
            		
            	/////// Extra Java from XML END
            	    
            /////// Extra Java code END
            
            
            
            /**
              * Cloning constructor.
              */
             public KeyEvent(KeyEvent original) {
                
                     this.Player=original.Player;
                
                     this.Action=original.Action;
                
                     this.Key=original.Key;
                
             }   
             
             
                 /**
                  * Used by Yylex to create empty message then to fill it's protected fields (Yylex is in the same package).
                  */
	             public KeyEvent() {
	             }
             
                
                 
            public String toString() {
                return
                
                		super.toString() + " | " +
                		
				               "Player = " + 
				               String.valueOf(Player) + " | " +
				            
				               "Action = " + 
				               String.valueOf(Action) + " | " +
				            
				               "Key = " + 
				               String.valueOf(Key) + " | " +
				             "";
                	 
             }
             
             public String toHtmlString() {
                return super.toString() +
             
            "<b>Player</b> : " + 
            String.valueOf(Player) + 
            " <br/> " +
             
            "<b>Action</b> : " + 
            String.valueOf(Action) + 
            " <br/> " +
             
            "<b>Key</b> : " + 
            String.valueOf(Key) + 
            " <br/> " +
             "";
             }            
             
             
             
             }
                         
        