📄 jticketsbagrestaurantmap.java
字号:
// Tina POS is a point of sales application designed for touch screens.// Copyright (C) 2005 Adrian Romero Corchado.// http://sourceforge.net/projects/tinapos//// This program 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 2 of the License, or// (at your option) any later version.//// This program 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 this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USApackage net.adrianromero.tpv.panelsales.restaurant;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import net.adrianromero.tpv.panelsales.*;import net.adrianromero.tpv.ticket.*; import net.adrianromero.tpv.forms.*; import net.adrianromero.data.loader.StaticSentence;import net.adrianromero.data.loader.SerializerReadClass;import net.adrianromero.basic.BasicException;import net.adrianromero.data.loader.ImageUtils;import net.adrianromero.data.gui.NullIcon;import net.adrianromero.data.loader.SentenceList;import net.adrianromero.tpv.panelsales.restaurant.Floor;import net.adrianromero.tpv.panelsales.restaurant.Place;public class JTicketsBagRestaurantMap extends JTicketsBag { private static final Icon ICO_OCU = new ImageIcon(JTicketsBag.class.getResource("/net/adrianromero/images/edit_group.png")); private static final Icon ICO_FRE = new NullIcon(22, 22); private java.util.List m_aplaces; private java.util.List m_afloors;// private SharedObjects m_sharedobjects; private JTicketsBagRestaurant m_restaurantmap; private JTicketsBagRestaurantRes m_jreservations; private TicketsEditor m_panelticket; private Place m_PlaceCurrent; private Place m_PlaceClipboard; /** Creates new form JTicketsBagRestaurant */ public JTicketsBagRestaurantMap(AppView oApp, TicketsEditor panelticket) { super(oApp); m_panelticket = panelticket; m_restaurantmap = new JTicketsBagRestaurant(this); m_PlaceCurrent = null; m_PlaceClipboard = null; m_restaurantmap.setTableName(null); try { SentenceList sent = new StaticSentence( oApp.getSession(), "SELECT ID, NAME, IMAGE FROM FLOORS ORDER BY ID", null, new SerializerReadClass(Floor.class)); m_afloors = sent.list(); } catch (BasicException eD) { m_afloors = new ArrayList(); } try { SentenceList sent = new StaticSentence( oApp.getSession(), "SELECT NAME, X, Y, FLOOR FROM PLACES ORDER BY FLOOR", null, new SerializerReadClass(Place.class)); m_aplaces = sent.list(); } catch (BasicException eD) { m_aplaces = new ArrayList(); } initComponents(); // Por ahora hasta que no esten las reservas finas lo deshabilitamos. // m_jbtnReservations.setVisible(false); // anado los contenedores if (m_afloors.size() > 1) { JTabbedPane jTabFloors = new JTabbedPane(); jTabFloors.setBorder(new javax.swing.border.EmptyBorder(new Insets(5, 5, 5, 5))); jTabFloors.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); jTabFloors.setFocusable(false); jTabFloors.setRequestFocusEnabled(false); m_jPanelMap.add(jTabFloors, BorderLayout.CENTER); for (int i = 0; i < m_afloors.size(); i++) { Floor f = (Floor) m_afloors.get(i); JScrollPane jScrCont = new JScrollPane(); JPanel jPanCont = new JPanel(); jTabFloors.addTab(f.getName(), f.getIcon(), jScrCont); jScrCont.setViewportView(jPanCont); jPanCont.add(f.getContainer()); } } else if (m_afloors.size() == 1) { // solo una planta, entonces sin tabs... Floor f = (Floor) m_afloors.get(0); JPanel jPlaces = new JPanel(); jPlaces.setLayout(new BorderLayout()); jPlaces.setBorder(new javax.swing.border.CompoundBorder( new javax.swing.border.EmptyBorder(new Insets(5, 5, 5, 5)), new javax.swing.border.TitledBorder(f.getName()))); JScrollPane jScrCont = new JScrollPane(); JPanel jPanCont = new JPanel(); // jPlaces.setLayout(new FlowLayout()); m_jPanelMap.add(jPlaces, BorderLayout.CENTER); jPlaces.add(jScrCont, BorderLayout.CENTER); jScrCont.setViewportView(jPanCont); jPanCont.add(f.getContainer()); } // anado los botones a los contenedores Floor currfloor = null; int iFloor = 0; for (int i = 0; i < m_aplaces.size(); i++) { Place pl = (Place) m_aplaces.get(i); if (currfloor == null || pl.getFloor() != currfloor.getID()) { // tenemos que buscar una nueva planta... do { currfloor = (Floor) m_afloors.get(iFloor++); } while (pl.getFloor() != currfloor.getID()); } currfloor.getContainer().add(pl.getButton()); pl.setButtonBounds(); pl.getButton().addActionListener(new MyActionListener(pl)); // anado el evento } // Y alora el panel de reservas.. m_jreservations = new JTicketsBagRestaurantRes(oApp, this); add(m_jreservations, "res"); } public void activate() { // precondicion es que no tenemos ticket activado ni ticket en el panel loadTickets(); printState(); m_panelticket.setActiveTicket(null, null); showView("map"); // arrancamos en la vista de las mesas. // postcondicion es que tenemos ticket activado aqui y ticket en el panel } public boolean deactivate() { // precondicion es que tenemos ticket activado aqui y ticket en el panel if (viewTables()) { // borramos el clipboard m_PlaceClipboard = null; // guardamos el ticket if (m_PlaceCurrent != null) { m_PlaceCurrent.setTicket(m_panelticket.getActiveTicket()); // m_sharedobjects.checkin(m_PlaceCurrent.getName(), m_PlaceCurrent.getTicket()); m_PlaceCurrent = null; m_restaurantmap.setTableName(null); } // desactivamos cositas. printState(); m_panelticket.setActiveTicket(null, null); // Guardamos los tickets HashMap atickets = new HashMap(); for (int i = 0; i < m_aplaces.size(); i++) { Place p = (Place) m_aplaces.get(i); if (p.getTicket() != null) { atickets.put(p.getName(), p.getTicket()); } } // ImageUtils.writeToFile("ticketsbagrest.ser", atickets); m_App.lookupDataLogic(DataLogicSystem.class).setResourceAsBinary(m_App.getHost() + "/ticketsbagrest", ImageUtils.writeSerializable(atickets)); return true; } else { return false; } // postcondicion es que no tenemos ticket activado } protected JComponent getBagComponent() { return m_restaurantmap; } protected JComponent getNullComponent() { return this; } public void moveTicket() { // guardamos el ticket if (m_PlaceCurrent != null) { m_PlaceCurrent.setTicket(m_panelticket.getActiveTicket());// m_sharedobjects.commit(m_PlaceCurrent.getName(), m_PlaceCurrent.getTicket());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -