package Ġcom . github . ch ristop h pick l . der ba uer . ui Ċ Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . common . misc . Dispatcher Ċ import Ġcom . github . ch ristop h pick l . k pot p our ri . common . misc . Dispatcher Listener Ċ import Ġjava . awt . event . Key Adapter Ċ import Ġjava . awt . event . KeyEvent Ċ Ċ class ĠKeyboard ( ĊĠĠĠ Ġprivate Ġval Ġallowed To Type : Ġ( KeyEvent ) Ġ-> ĠBoolean Ċ ) Ġ: ĠKey Adapter () Ġ{ ĊĊĠĠĠ Ġval Ġdispatcher Ġ= ĠDispatcher < Keyboard Listener >() ĊĊĠĠĠ Ġoverride Ġfun Ġkey Pressed ( e : ĠKeyEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( e . keyCode Ġ== ĠKeyEvent . VK _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher . dispatch Ġ{ Ġon Keyboard ( Keyboard Event . Enter ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( e . keyCode Ġ== ĠKeyEvent . VK _ BACK _ SPACE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher . dispatch Ġ{ Ġon Keyboard ( Keyboard Event . Back space ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Typed ( e : ĠKeyEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( allowed To Type ( e )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher . dispatch Ġ{ Ġon Keyboard ( Keyboard Event . Input ( e . key Char )) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠKeyboard Listener Ġ: ĠDispatcher Listener Ġ{ ĊĠĠĠ Ġfun Ġon Keyboard ( event : ĠKeyboard Event ) Ċ } Ċ Ċ sealed Ġclass ĠKeyboard Event Ġ{ ĊĠĠĠ Ġobject ĠEnter Ġ: ĠKeyboard Event () ĊĠĠĠ Ġobject ĠBack space Ġ: ĠKeyboard Event () ĊĠĠĠ Ġclass ĠInput ( val Ġdigit : ĠChar ) Ġ: ĠKeyboard Event () Ċ } Ċ Ċ val ĠKeyEvent . is Digit Ġget () Ġ= Ġkey Char . category Ġ== ĠChar Category . DECIMAL _ DIGIT _ NUMBER Ċ val ĠKeyEvent . is Lower case Letter Ġget () Ġ= Ġkey Char . category Ġ== ĠChar Category . LOWER CASE _ LET TER Ċ