// uniCenta oPOS - Touch Friendly Point Of Sale // Copyright (c) 2009-2013 uniCenta & previous Openbravo POS works // http://www.unicenta.net/unicentaopos // // This file is part of uniCenta oPOS // // uniCenta oPOS 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. // // uniCenta oPOS 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 uniCenta oPOS. If not, see <http://www.gnu.org/licenses/>. package com.openbravo.pos.customers; import com.openbravo.basic.BasicException; import com.openbravo.data.gui.ComboBoxValModel; import com.openbravo.data.loader.SentenceList; import com.openbravo.data.user.DirtyManager; import com.openbravo.data.user.EditorRecord; import com.openbravo.format.Formats; import com.openbravo.pos.forms.AppLocal; import com.openbravo.pos.forms.AppView; import com.openbravo.pos.forms.DataLogicSales; import com.openbravo.pos.util.StringUtils; import java.awt.Component; import java.awt.image.BufferedImage; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.AbstractTableModel; /** * * @author adrianromero */ public class CustomersView extends javax.swing.JPanel implements EditorRecord { private static final long serialVersionUID = 1L; private Object m_oId; private SentenceList m_sentcat; private List<CustomerTransaction> customerTransactionList; private TransactionTableModel transactionModel; private ComboBoxValModel m_CategoryModel; private DirtyManager m_Dirty; private DataLogicSales dlSales; /** Creates new form CustomersView */ public CustomersView(AppView app, DirtyManager dirty) { try { dlSales = (DataLogicSales) app.getBean("com.openbravo.pos.forms.DataLogicSales"); // DataLogicSales dlSales = (DataLogicSales) app.getBean("com.openbravo.pos.forms.DataLogicSales"); initComponents(); m_sentcat = dlSales.getTaxCustCategoriesList(); //customerTransactionList = dlSales.getCustomersTransactionList(); m_CategoryModel = new ComboBoxValModel(); m_Dirty = dirty; m_jTaxID.getDocument().addDocumentListener(dirty); m_jSearchkey.getDocument().addDocumentListener(dirty); m_jName.getDocument().addDocumentListener(dirty); m_jCategory.addActionListener(dirty); m_jNotes.getDocument().addDocumentListener(dirty); txtMaxdebt.getDocument().addDocumentListener(dirty); m_jVisible.addActionListener(dirty); txtFirstName.getDocument().addDocumentListener(dirty); txtLastName.getDocument().addDocumentListener(dirty); txtEmail.getDocument().addDocumentListener(dirty); txtPhone.getDocument().addDocumentListener(dirty); txtPhone2.getDocument().addDocumentListener(dirty); txtFax.getDocument().addDocumentListener(dirty); m_jImage.addPropertyChangeListener(dirty); txtAddress.getDocument().addDocumentListener(dirty); txtAddress2.getDocument().addDocumentListener(dirty); // txtAddress3.getDocument().addDocumentListener(dirty); txtPostal.getDocument().addDocumentListener(dirty); txtCity.getDocument().addDocumentListener(dirty); txtRegion.getDocument().addDocumentListener(dirty); txtCountry.getDocument().addDocumentListener(dirty); init(); } catch (Exception ex) { Logger.getLogger(CustomersView.class.getName()).log(Level.SEVERE, null, ex); } } private void init() { writeValueEOF(); } @SuppressWarnings("unchecked") public void activate() throws BasicException { List a = m_sentcat.list(); a.add(0, null); // The null item m_CategoryModel = new ComboBoxValModel(a); m_jCategory.setModel(m_CategoryModel); customerTransactionList = dlSales.getCustomersTransactionList(); } @Override public void refresh() { } @Override public void writeValueEOF() { m_oId = null; m_jTaxID.setText(null); m_jSearchkey.setText(null); m_jName.setText(null); m_CategoryModel.setSelectedKey(null); m_jNotes.setText(null); txtMaxdebt.setText(null); txtCurdebt.setText(null); txtCurdate.setText(null); m_jVisible.setSelected(false); jcard.setText(null); txtFirstName.setText(null); txtLastName.setText(null); txtEmail.setText(null); txtPhone.setText(null); txtPhone2.setText(null); txtFax.setText(null); m_jImage.setImage(null); txtAddress.setText(null); txtAddress2.setText(null); // txtAddress3.setText(null); txtPostal.setText(null); txtCity.setText(null); txtRegion.setText(null); txtCountry.setText(null); m_jTaxID.setEnabled(false); m_jSearchkey.setEnabled(false); m_jName.setEnabled(false); m_jCategory.setEnabled(false); m_jNotes.setEnabled(false); txtMaxdebt.setEnabled(false); txtCurdebt.setEnabled(false); txtCurdate.setEnabled(false); m_jVisible.setEnabled(false); jcard.setEnabled(false); txtFirstName.setEnabled(false); txtLastName.setEnabled(false); txtEmail.setEnabled(false); txtPhone.setEnabled(false); txtPhone2.setEnabled(false); txtFax.setEnabled(false); m_jImage.setEnabled(false); txtAddress.setEnabled(false); txtAddress2.setEnabled(false); // txtAddress3.setEnabled(false); txtPostal.setEnabled(false); txtCity.setEnabled(false); txtRegion.setEnabled(false); txtCountry.setEnabled(false); jButton2.setEnabled(false); jButton3.setEnabled(false); jTable1.setEnabled(false); } @Override public void writeValueInsert() { m_oId = null; m_jTaxID.setText(null); m_jSearchkey.setText(null); m_jName.setText(null); m_CategoryModel.setSelectedKey(null); m_jNotes.setText(null); txtMaxdebt.setText(null); txtCurdebt.setText(null); txtCurdate.setText(null); m_jVisible.setSelected(true); jcard.setText(null); txtFirstName.setText(null); txtLastName.setText(null); txtEmail.setText(null); txtPhone.setText(null); txtPhone2.setText(null); txtFax.setText(null); m_jImage.setImage(null); txtAddress.setText(null); txtAddress2.setText(null); // txtAddress3.setText(null); txtPostal.setText(null); txtCity.setText(null); txtRegion.setText(null); txtCountry.setText(null); m_jTaxID.setEnabled(true); m_jSearchkey.setEnabled(true); m_jName.setEnabled(true); m_jCategory.setEnabled(true); m_jNotes.setEnabled(true); txtMaxdebt.setEnabled(true); txtCurdebt.setEnabled(true); txtCurdate.setEnabled(true); m_jVisible.setEnabled(true); jcard.setEnabled(true); txtFirstName.setEnabled(true); txtLastName.setEnabled(true); txtEmail.setEnabled(true); txtPhone.setEnabled(true); txtPhone2.setEnabled(true); txtFax.setEnabled(true); m_jImage.setEnabled(true); txtAddress.setEnabled(true); txtAddress2.setEnabled(true); // txtAddress3.setEnabled(true); txtPostal.setEnabled(true); txtCity.setEnabled(true); txtRegion.setEnabled(true); txtCountry.setEnabled(true); jButton2.setEnabled(true); jButton3.setEnabled(true); jTable1.setEnabled(false); } @Override public void writeValueDelete(Object value) { Object[] customer = (Object[]) value; m_oId = customer[0]; m_jTaxID.setText((String) customer[1]); m_jSearchkey.setText((String) customer[2]); m_jName.setText((String) customer[3]); m_jNotes.setText((String) customer[4]); m_jVisible.setSelected(((Boolean) customer[5]).booleanValue()); jcard.setText((String) customer[6]); txtMaxdebt.setText(Formats.CURRENCY.formatValue(customer[7])); txtCurdate.setText(Formats.DATE.formatValue(customer[8])); txtCurdebt.setText(Formats.CURRENCY.formatValue(customer[9])); txtFirstName.setText(Formats.STRING.formatValue(customer[10])); txtLastName.setText(Formats.STRING.formatValue(customer[11])); txtEmail.setText(Formats.STRING.formatValue(customer[12])); txtPhone.setText(Formats.STRING.formatValue(customer[13])); txtPhone2.setText(Formats.STRING.formatValue(customer[14])); txtFax.setText(Formats.STRING.formatValue(customer[15])); txtAddress.setText(Formats.STRING.formatValue(customer[16])); txtAddress2.setText(Formats.STRING.formatValue(customer[17])); txtPostal.setText(Formats.STRING.formatValue(customer[18])); txtCity.setText(Formats.STRING.formatValue(customer[19])); txtRegion.setText(Formats.STRING.formatValue(customer[20])); txtCountry.setText(Formats.STRING.formatValue(customer[21])); m_CategoryModel.setSelectedKey(customer[22]); // JG 3 Oct 2013 - Customer Image m_jImage.setImage((BufferedImage) customer[23]); m_jTaxID.setEnabled(false); m_jSearchkey.setEnabled(false); m_jName.setEnabled(false); m_jNotes.setEnabled(false); txtMaxdebt.setEnabled(false); txtCurdebt.setEnabled(false); txtCurdate.setEnabled(false); m_jVisible.setEnabled(false); jcard.setEnabled(false); txtFirstName.setEnabled(false); txtLastName.setEnabled(false); txtEmail.setEnabled(false); txtPhone.setEnabled(false); txtPhone2.setEnabled(false); txtFax.setEnabled(false); m_jImage.setEnabled(true); txtAddress.setEnabled(false); txtAddress2.setEnabled(false); // txtAddress3.setEnabled(false); txtPostal.setEnabled(false); txtCity.setEnabled(false); txtRegion.setEnabled(false); txtCountry.setEnabled(false); m_jCategory.setEnabled(false); jButton2.setEnabled(false); jButton3.setEnabled(false); // JG 3 Oct 2013 - for Transaction List table transactionModel = new TransactionTableModel(getTransactionOfName((String) customer[3])); jTable1.setModel(transactionModel); jTable1.setEnabled(false); } @Override public void writeValueEdit(Object value) { Object[] customer = (Object[]) value; m_oId = customer[0]; m_jTaxID.setText((String) customer[1]); m_jSearchkey.setText((String) customer[2]); m_jName.setText((String) customer[3]); m_jNotes.setText((String) customer[4]); m_jVisible.setSelected(((Boolean) customer[5]).booleanValue()); jcard.setText((String) customer[6]); txtMaxdebt.setText(Formats.CURRENCY.formatValue(customer[7])); txtCurdate.setText(Formats.DATE.formatValue(customer[8])); txtCurdebt.setText(Formats.CURRENCY.formatValue(customer[9])); txtFirstName.setText(Formats.STRING.formatValue(customer[10])); txtLastName.setText(Formats.STRING.formatValue(customer[11])); txtEmail.setText(Formats.STRING.formatValue(customer[12])); txtPhone.setText(Formats.STRING.formatValue(customer[13])); txtPhone2.setText(Formats.STRING.formatValue(customer[14])); txtFax.setText(Formats.STRING.formatValue(customer[15])); txtAddress.setText(Formats.STRING.formatValue(customer[16])); txtAddress2.setText(Formats.STRING.formatValue(customer[17])); txtPostal.setText(Formats.STRING.formatValue(customer[18])); txtCity.setText(Formats.STRING.formatValue(customer[19])); txtRegion.setText(Formats.STRING.formatValue(customer[20])); txtCountry.setText(Formats.STRING.formatValue(customer[21])); m_CategoryModel.setSelectedKey(customer[22]); // JG 3 Oct 2013 - Customer image m_jImage.setImage((BufferedImage) customer[23]); m_jTaxID.setEnabled(true); m_jSearchkey.setEnabled(true); m_jName.setEnabled(true); m_jNotes.setEnabled(true); txtMaxdebt.setEnabled(true); txtCurdebt.setEnabled(true); txtCurdate.setEnabled(true); m_jVisible.setEnabled(true); jcard.setEnabled(true); txtFirstName.setEnabled(true); txtLastName.setEnabled(true); txtEmail.setEnabled(true); txtPhone.setEnabled(true); txtPhone2.setEnabled(true); txtFax.setEnabled(true); m_jImage.setEnabled(true); txtAddress.setEnabled(true); txtAddress2.setEnabled(true); // txtAddress3.setEnabled(true); txtPostal.setEnabled(true); txtCity.setEnabled(true); txtRegion.setEnabled(true); txtCountry.setEnabled(true); m_jCategory.setEnabled(true); jButton2.setEnabled(true); jButton3.setEnabled(true); transactionModel = new TransactionTableModel(getTransactionOfName((String) customer[3])); jTable1.setModel(transactionModel); jTable1.setEnabled(true); } @Override public Object createValue() throws BasicException { Object[] customer = new Object[24]; customer[0] = m_oId == null ? UUID.randomUUID().toString() : m_oId; customer[1] = m_jTaxID.getText(); customer[2] = m_jSearchkey.getText(); customer[3] = m_jName.getText(); customer[4] = m_jNotes.getText(); customer[5] = Boolean.valueOf(m_jVisible.isSelected()); customer[6] = Formats.STRING.parseValue(jcard.getText()); // Format to manage NULL values customer[7] = Formats.CURRENCY.parseValue(txtMaxdebt.getText(), new Double(0.0)); customer[8] = Formats.TIMESTAMP.parseValue(txtCurdate.getText()); // not saved customer[9] = Formats.CURRENCY.parseValue(txtCurdebt.getText()); // not saved customer[10] = Formats.STRING.parseValue(txtFirstName.getText()); customer[11] = Formats.STRING.parseValue(txtLastName.getText()); customer[12] = Formats.STRING.parseValue(txtEmail.getText()); customer[13] = Formats.STRING.parseValue(txtPhone.getText()); customer[14] = Formats.STRING.parseValue(txtPhone2.getText()); customer[15] = Formats.STRING.parseValue(txtFax.getText()); customer[16] = Formats.STRING.parseValue(txtAddress.getText()); customer[17] = Formats.STRING.parseValue(txtAddress2.getText()); customer[18] = Formats.STRING.parseValue(txtPostal.getText()); customer[19] = Formats.STRING.parseValue(txtCity.getText()); customer[20] = Formats.STRING.parseValue(txtRegion.getText()); customer[21] = Formats.STRING.parseValue(txtCountry.getText()); customer[22] = m_CategoryModel.getSelectedKey(); // JG 3 Oct 2013 - Customer image customer[23] = m_jImage.getImage(); return customer; } @Override public Component getComponent() { return this; } // JG 3 Oct 2013 - Customer Transaction List private List<CustomerTransaction> getTransactionOfName(String name) { List<CustomerTransaction> customerList = new ArrayList<>(); for (CustomerTransaction customerTransaction : customerTransactionList) { String customerName = customerTransaction.getCustomerName(); if (customerName.equals(name)) { customerList.add(customerTransaction); } } return customerList; } class TransactionTableModel extends AbstractTableModel { List<CustomerTransaction> transactionList; String[] columnNames = {"TicketID", "Product", "Date", "Unit", "Total"}; public TransactionTableModel(List<CustomerTransaction> list) { transactionList = list; } @Override public int getColumnCount() { return 5; } @Override public int getRowCount() { return transactionList.size(); } // this method is called to set the value of each cell @Override public Object getValueAt(int row, int column) { CustomerTransaction customerTransaction = transactionList.get(row); switch (column) { case 0: return customerTransaction.getTicketId(); case 1: return customerTransaction.getProductName(); case 2: Date transactionDate = customerTransaction.getTransactionDate(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String formattedDate = sdf.format(transactionDate); return formattedDate; case 3: return customerTransaction.getUnit(); case 4: Double amount = customerTransaction.getTotal(); DecimalFormat df = new DecimalFormat("#.##"); String formattedAmount = df.format(amount); return formattedAmount; default: return ""; } } @Override public String getColumnName(int col) { return columnNames[col]; } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel7 = new javax.swing.JLabel(); m_jTaxID = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); m_jSearchkey = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); m_jName = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jcard = new javax.swing.JTextField(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jLabel9 = new javax.swing.JLabel(); m_jCategory = new javax.swing.JComboBox(); jLabel4 = new javax.swing.JLabel(); m_jVisible = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); txtMaxdebt = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); txtCurdebt = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); txtCurdate = new javax.swing.JTextField(); jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jLabel19 = new javax.swing.JLabel(); txtFirstName = new javax.swing.JTextField(); jLabel15 = new javax.swing.JLabel(); txtLastName = new javax.swing.JTextField(); jLabel16 = new javax.swing.JLabel(); txtEmail = new javax.swing.JTextField(); jLabel17 = new javax.swing.JLabel(); txtPhone = new javax.swing.JTextField(); jLabel18 = new javax.swing.JLabel(); txtPhone2 = new javax.swing.JTextField(); jLabel14 = new javax.swing.JLabel(); txtFax = new javax.swing.JTextField(); jPanel2 = new javax.swing.JPanel(); jLabel13 = new javax.swing.JLabel(); txtAddress = new javax.swing.JTextField(); jLabel20 = new javax.swing.JLabel(); txtCountry = new javax.swing.JTextField(); jLabel21 = new javax.swing.JLabel(); txtAddress2 = new javax.swing.JTextField(); jLabel22 = new javax.swing.JLabel(); txtPostal = new javax.swing.JTextField(); jLabel23 = new javax.swing.JLabel(); txtCity = new javax.swing.JTextField(); jLabel24 = new javax.swing.JLabel(); txtRegion = new javax.swing.JTextField(); jPanel4 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jPanel5 = new javax.swing.JPanel(); m_jImage = new com.openbravo.data.gui.JImageEditor(); jPanel3 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); m_jNotes = new javax.swing.JTextArea(); jLabel7.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel7.setText(AppLocal.getIntString("label.taxid")); // NOI18N m_jTaxID.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel8.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel8.setText(AppLocal.getIntString("label.searchkey")); // NOI18N m_jSearchkey.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel3.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel3.setText(AppLocal.getIntString("label.name")); // NOI18N m_jName.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel5.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel5.setText(AppLocal.getIntString("label.card")); // NOI18N jcard.setEditable(false); jcard.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/openbravo/images/encrypted.png"))); // NOI18N jButton2.setToolTipText("Create Key"); jButton2.setMaximumSize(new java.awt.Dimension(64, 32)); jButton2.setMinimumSize(new java.awt.Dimension(64, 32)); jButton2.setPreferredSize(new java.awt.Dimension(64, 32)); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/openbravo/images/fileclose.png"))); // NOI18N jButton3.setToolTipText("Clear Key"); jButton3.setMaximumSize(new java.awt.Dimension(64, 32)); jButton3.setMinimumSize(new java.awt.Dimension(64, 32)); jButton3.setPreferredSize(new java.awt.Dimension(64, 32)); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jLabel9.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel9.setText(AppLocal.getIntString("label.custtaxcategory")); // NOI18N m_jCategory.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel4.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel4.setText(AppLocal.getIntString("label.visible")); // NOI18N m_jVisible.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel1.setText(AppLocal.getIntString("label.maxdebt")); // NOI18N txtMaxdebt.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N txtMaxdebt.setHorizontalAlignment(javax.swing.JTextField.RIGHT); jLabel2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel2.setText(AppLocal.getIntString("label.curdebt")); // NOI18N txtCurdebt.setEditable(false); txtCurdebt.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N txtCurdebt.setHorizontalAlignment(javax.swing.JTextField.RIGHT); jLabel6.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel6.setText(AppLocal.getIntString("label.curdate")); // NOI18N txtCurdate.setEditable(false); txtCurdate.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N txtCurdate.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtCurdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtCurdateActionPerformed(evt); } }); jTabbedPane1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jTabbedPane1.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent evt) { jTabbedPane1PropertyChange(evt); } }); jLabel19.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel19.setText(AppLocal.getIntString("label.firstname")); // NOI18N jLabel19.setAlignmentX(0.5F); txtFirstName.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel15.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel15.setText(AppLocal.getIntString("label.lastname")); // NOI18N txtLastName.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel16.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel16.setText(AppLocal.getIntString("label.email")); // NOI18N txtEmail.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel17.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel17.setText(AppLocal.getIntString("label.phone")); // NOI18N txtPhone.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel18.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel18.setText(AppLocal.getIntString("label.phone2")); // NOI18N txtPhone2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel14.setText(AppLocal.getIntString("label.fax")); // NOI18N txtFax.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtFaxActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtLastName, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtFax, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtPhone2, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPhone, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGap(156, 156, 156)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtLastName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPhone, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPhone2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtFax, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(57, 57, 57)) ); jTabbedPane1.addTab(AppLocal.getIntString("label.contact"), jPanel1); // NOI18N jLabel13.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel13.setText(AppLocal.getIntString("label.address")); // NOI18N txtAddress.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel20.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel20.setText(AppLocal.getIntString("label.country")); // NOI18N txtCountry.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel21.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel21.setText(AppLocal.getIntString("label.address2")); // NOI18N txtAddress2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel22.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel22.setText(AppLocal.getIntString("label.postal")); // NOI18N txtPostal.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel23.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel23.setText(AppLocal.getIntString("label.city")); // NOI18N txtCity.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel24.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel24.setText(AppLocal.getIntString("label.region")); // NOI18N txtRegion.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel24, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtCity, javax.swing.GroupLayout.DEFAULT_SIZE, 186, Short.MAX_VALUE) .addComponent(txtAddress) .addComponent(txtAddress2) .addComponent(txtRegion) .addComponent(txtCountry)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPostal, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(104, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(29, 29, 29) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtCity, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel24, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtRegion, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtPostal, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtCountry, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtAddress2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(19, 19, 19)) ); jTabbedPane1.addTab(AppLocal.getIntString("label.location"), jPanel2); // NOI18N jTable1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null} }, new String [] { "TicketID", "Product", "Date", "Unit", "Total" } )); jTable1.setRowHeight(20); jTable1.setShowHorizontalLines(false); jScrollPane2.setViewportView(jTable1); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE) .addContainerGap()) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE) .addContainerGap()) ); jTabbedPane1.addTab("Transactions", jPanel4); m_jImage.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(142, 142, 142) .addComponent(m_jImage, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(143, Short.MAX_VALUE)) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addContainerGap() .addComponent(m_jImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jTabbedPane1.addTab("Photo", jPanel5); m_jNotes.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jScrollPane1.setViewportView(m_jNotes); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 458, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(67, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE) .addContainerGap()) ); jTabbedPane1.addTab(AppLocal.getIntString("label.notes"), jPanel3); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 540, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(10, 10, 10) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(m_jName, javax.swing.GroupLayout.PREFERRED_SIZE, 319, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(m_jTaxID, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(12, 12, 12) .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(m_jSearchkey, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(txtCurdebt, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtMaxdebt, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtCurdate, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(m_jCategory, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jcard, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(m_jVisible, javax.swing.GroupLayout.Alignment.LEADING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8) .addComponent(m_jSearchkey, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(m_jTaxID, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(m_jName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jcard, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(m_jVisible, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(m_jCategory, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtMaxdebt, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtCurdate, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtCurdebt, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 231, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed if (JOptionPane.showConfirmDialog(this, AppLocal.getIntString("message.cardnew"), AppLocal.getIntString("title.editor"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { jcard.setText("c" + StringUtils.getCardNumber()); m_Dirty.setDirty(true); } }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed if (JOptionPane.showConfirmDialog(this, AppLocal.getIntString("message.cardremove"), AppLocal.getIntString("title.editor"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) { jcard.setText(null); m_Dirty.setDirty(true); } }//GEN-LAST:event_jButton3ActionPerformed private void txtFaxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtFaxActionPerformed }//GEN-LAST:event_txtFaxActionPerformed private void txtCurdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCurdateActionPerformed }//GEN-LAST:event_txtCurdateActionPerformed private void jTabbedPane1PropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_jTabbedPane1PropertyChange // TODO add your handling code here: }//GEN-LAST:event_jTabbedPane1PropertyChange // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jcard; private javax.swing.JComboBox m_jCategory; private com.openbravo.data.gui.JImageEditor m_jImage; private javax.swing.JTextField m_jName; private javax.swing.JTextArea m_jNotes; private javax.swing.JTextField m_jSearchkey; private javax.swing.JTextField m_jTaxID; private javax.swing.JCheckBox m_jVisible; private javax.swing.JTextField txtAddress; private javax.swing.JTextField txtAddress2; private javax.swing.JTextField txtCity; private javax.swing.JTextField txtCountry; private javax.swing.JTextField txtCurdate; private javax.swing.JTextField txtCurdebt; private javax.swing.JTextField txtEmail; private javax.swing.JTextField txtFax; private javax.swing.JTextField txtFirstName; private javax.swing.JTextField txtLastName; private javax.swing.JTextField txtMaxdebt; private javax.swing.JTextField txtPhone; private javax.swing.JTextField txtPhone2; private javax.swing.JTextField txtPostal; private javax.swing.JTextField txtRegion; // End of variables declaration//GEN-END:variables }