Import from http://drts.cvs.sourceforge.net/viewvc/drts/projects/jxinput/ tarball
This commit is contained in:
141
java/de/hardcode/jxinput/keyboard/KeyboardDriver.java
Normal file
141
java/de/hardcode/jxinput/keyboard/KeyboardDriver.java
Normal file
@@ -0,0 +1,141 @@
|
||||
//**********************************************************************************************
|
||||
// (C) Copyright 2002 by Dipl. Phys. Joerg Plewe, HARDCODE Development
|
||||
// All rights reserved. Copying, modification,
|
||||
// distribution or publication without the prior written
|
||||
// consent of the author is prohibited.
|
||||
//
|
||||
// Created on 9. April 2002, 22:43
|
||||
//**********************************************************************************************
|
||||
package de.hardcode.jxinput.keyboard;
|
||||
|
||||
import java.awt.event.KeyListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.HashMap;
|
||||
import java.security.InvalidParameterException;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Listen to a JComponent handle handle all associated button objects.
|
||||
* This is the main worker class for JXKeyboardInputDevice.
|
||||
*
|
||||
* @author Herkules
|
||||
*/
|
||||
class KeyboardDriver implements KeyListener
|
||||
{
|
||||
// HashMap mKeysToObserveMap = new HashMap();
|
||||
|
||||
int mNumberOfKeysObserved = 0;
|
||||
KeyButton [] mKeysObserved = new KeyButton [ 0x100 ];
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new instance of KeyboardDriver.
|
||||
*/
|
||||
public KeyboardDriver()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* How many buttons are registered?
|
||||
*/
|
||||
final int getNumberOfButtons()
|
||||
{
|
||||
return mNumberOfKeysObserved;
|
||||
// return mKeysToObserveMap.size();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Place a new button under my observation.
|
||||
*/
|
||||
final boolean registerKeyButton( KeyButton b )
|
||||
{
|
||||
final int keycode = b.getKeyCode();
|
||||
|
||||
if ( 0 > keycode || 0x100 < keycode )
|
||||
throw new InvalidKeyCodeException();
|
||||
|
||||
if ( null == mKeysObserved[ keycode ] )
|
||||
{
|
||||
mKeysObserved[ keycode ] = b;
|
||||
mNumberOfKeysObserved++;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Integer code = new Integer( b.getKeyCode() );
|
||||
// if ( ! mKeysToObserveMap.containsKey( code ) )
|
||||
// {
|
||||
// mKeysToObserveMap.put( code, b );
|
||||
// return true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
}
|
||||
|
||||
final void unregisterKeyButton( KeyButton b )
|
||||
{
|
||||
final int keycode = b.getKeyCode();
|
||||
|
||||
if ( 0 > keycode || 0x100 < keycode )
|
||||
throw new InvalidKeyCodeException();
|
||||
|
||||
if ( null != mKeysObserved[ b.getKeyCode() ] )
|
||||
{
|
||||
mKeysObserved[ keycode ] = null;
|
||||
mNumberOfKeysObserved--;
|
||||
}
|
||||
|
||||
// Integer code = new Integer( b.getKeyCode() );
|
||||
// mKeysToObserveMap.remove( code );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve the button from its keycode.
|
||||
*/
|
||||
final KeyButton getButton( int keycode )
|
||||
{
|
||||
if ( 0 > keycode || 0x100 < keycode )
|
||||
throw new InvalidKeyCodeException();
|
||||
|
||||
return mKeysObserved[ keycode ];
|
||||
|
||||
// Integer code = new Integer( keycode );
|
||||
// return (KeyButton)mKeysToObserveMap.get( code );
|
||||
}
|
||||
|
||||
|
||||
//*********************************************************************************************
|
||||
//
|
||||
// Implement KeyListener
|
||||
//
|
||||
//*********************************************************************************************
|
||||
|
||||
public void keyPressed( KeyEvent keyEvent )
|
||||
{
|
||||
KeyButton b = getButton( keyEvent.getKeyCode() );
|
||||
if ( null != b )
|
||||
b.setIsPressed( true );
|
||||
}
|
||||
|
||||
public void keyReleased( KeyEvent keyEvent )
|
||||
{
|
||||
KeyButton b = getButton( keyEvent.getKeyCode() );
|
||||
if ( null != b )
|
||||
b.setIsPressed( false );
|
||||
}
|
||||
|
||||
public void keyTyped( KeyEvent keyEvent )
|
||||
{
|
||||
// Intentionally empty.
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user