1 25 package org.ofbiz.pos.device.impl; 26 27 import java.util.List ; 28 29 import jpos.JposException; 30 31 import org.ofbiz.base.util.Debug; 32 import org.ofbiz.pos.adaptor.DataEventAdaptor; 33 import org.ofbiz.pos.config.ButtonEventConfig; 34 import org.ofbiz.pos.device.GenericDevice; 35 import org.ofbiz.pos.screen.PosScreen; 36 37 49 public class Keyboard extends GenericDevice { 50 51 public static final String module = CashDrawer.class.getName(); 52 53 public Keyboard(String deviceName, int timeout) { 54 super(deviceName, timeout); 55 this.control = new jpos.POSKeyboard(); 56 } 57 58 protected void initialize() throws JposException { 59 Debug.logInfo("Keyboard [" + control.getPhysicalDeviceName() + "] Claimed : " + control.getClaimed(), module); 60 final jpos.POSKeyboard keyboard = (jpos.POSKeyboard) control; 61 62 keyboard.addDataListener(new DataEventAdaptor() { 63 public void dataOccurred(jpos.events.DataEvent event) { 64 Debug.log("POSKeyboard DataEvent - " + event.getWhen(), module); 65 try { 66 int keyCode = keyboard.getPOSKeyData(); 67 Debug.log("Received KeyCode From POSKeyboard DataEvent : " + keyCode, module); 68 69 if (keyCode == -1) { 71 return; 72 } 73 74 if (PosScreen.currentScreen.isLocked()) { 76 Debug.log("PosScreen is locked; not running POSKeyboard Event!", module); 77 return; 78 } 79 80 List buttonEvents = ButtonEventConfig.findButtonKeyAssign(keyCode); 81 if (buttonEvents != null && buttonEvents.size() > 0) { 82 83 Debug.log("Key -> Button Mapping(s) Found [" + keyCode + "]", module); 84 try { 85 ButtonEventConfig.invokeButtonEvents(buttonEvents, PosScreen.currentScreen); 86 } catch (ButtonEventConfig.ButtonEventNotFound e) { 87 Debug.logError(e, module); 88 } catch (ButtonEventConfig.ButtonEventException e) { 89 Debug.logError(e, module); 90 } 91 } else { 92 Debug.logWarning("No key-code button mappings found for key-code [" + keyCode + "]", module); 93 } 94 } catch (JposException e) { 95 Debug.logError(e, module); 96 } 97 } 98 }); 99 } 100 } 101 | Popular Tags |