// Openbravo POS is a point of sales application designed for touch screens. // Copyright (C) 2007-2009 Openbravo, S.L. // http://www.openbravo.com/product/pos // // This file is part of Openbravo POS. // // Openbravo POS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Openbravo POS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Openbravo POS. If not, see <http://www.gnu.org/licenses/>. package com.openbravo.pos.payment; import java.awt.event.KeyEvent; public class MagCardReaderAlternative implements MagCardReader { private MagCardParser magcardparser; private StringBuffer asciiCode = null; /** Creates a new instance of GenericMagCardReader */ public MagCardReaderAlternative() { magcardparser = new MagCardParserGeneric(); } @Override public String getReaderName() { return "Alternative magnetic card reader"; } @Override public void keyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ALT) { asciiCode = new StringBuffer(); } } @Override public void keyReleased(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ALT) { if (asciiCode != null) { try { magcardparser.append((char) Integer.parseInt(asciiCode.toString())); } catch (NumberFormatException e) { // ignore the entry } } asciiCode = null; } } @Override public void keyTyped(java.awt.event.KeyEvent evt) { if (asciiCode != null && Character.isDigit(evt.getKeyChar())) { asciiCode.append(evt.getKeyChar()); } else if (evt.getKeyChar() == '\n') { magcardparser.append(evt.getKeyChar()); } } @Override public MagCardParser getMagCard() { return magcardparser; } }