// Chromis POS - The New Face of Open Source POS
// Copyright (c) (c) 2015-2016
// http://www.chromis.co.uk
//
// This file is part of Chromis POS
//
// Chromis 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.
//
// Chromis 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 Chromis POS. If not, see <http://www.gnu.org/licenses/>.
package uk.chromis.data.gui;
import javax.swing.JPanel;
import uk.chromis.basic.BasicException;
import uk.chromis.data.loader.LocalRes;
import uk.chromis.data.user.BrowsableEditableData;
import uk.chromis.data.user.StateListener;
/**
*
*
*/
public class JSaver extends JPanel implements StateListener {
/**
*
*/
protected BrowsableEditableData m_bd;
/**
* Creates new form JSaver
*
* @param bd
*/
public JSaver(BrowsableEditableData bd) {
initComponents();
m_bd = bd;
// m_bd.addBrowseListener(this);
m_bd.addStateListener(this);
}
/**
*
* @param iState
*/
@Override
public void updateState(int iState) {
switch (iState) {
case BrowsableEditableData.ST_INSERT:
jbtnNew.setEnabled(m_bd.canInsertData());
jbtnDelete.setEnabled(false);
jbtnSave.setEnabled(m_bd.canInsertData());
break;
case BrowsableEditableData.ST_DELETE:
jbtnNew.setEnabled(m_bd.canInsertData());
jbtnDelete.setEnabled(false);
jbtnSave.setEnabled(m_bd.canDeleteData());
break;
case BrowsableEditableData.ST_NORECORD:
jbtnNew.setEnabled(m_bd.canInsertData());
jbtnDelete.setEnabled(false);
jbtnSave.setEnabled(false);
break;
case BrowsableEditableData.ST_UPDATE:
jbtnNew.setEnabled(m_bd.canInsertData());
jbtnDelete.setEnabled(m_bd.canDeleteData());
jbtnSave.setEnabled(m_bd.canUpdateData());
break;
}
}
/**
* 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() {
jbtnNew = new javax.swing.JButton();
jbtnDelete = new javax.swing.JButton();
jSeparator1 = new javax.swing.JSeparator();
jbtnSave = new javax.swing.JButton();
setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
jbtnNew.setIcon(new javax.swing.ImageIcon(getClass().getResource("/uk/chromis/images/editnew.png"))); // NOI18N
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("pos_messages"); // NOI18N
jbtnNew.setToolTipText(bundle.getString("tiptext.addnew")); // NOI18N
jbtnNew.setFocusPainted(false);
jbtnNew.setFocusable(false);
jbtnNew.setMargin(new java.awt.Insets(2, 8, 2, 8));
jbtnNew.setRequestFocusEnabled(false);
jbtnNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnNewActionPerformed(evt);
}
});
add(jbtnNew);
jbtnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/uk/chromis/images/sale_delete.png"))); // NOI18N
jbtnDelete.setToolTipText(bundle.getString("tiptext.delete")); // NOI18N
jbtnDelete.setFocusPainted(false);
jbtnDelete.setFocusable(false);
jbtnDelete.setMargin(new java.awt.Insets(2, 8, 2, 8));
jbtnDelete.setRequestFocusEnabled(false);
jbtnDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnDeleteActionPerformed(evt);
}
});
add(jbtnDelete);
add(jSeparator1);
jbtnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/uk/chromis/images/filesave.png"))); // NOI18N
jbtnSave.setToolTipText(bundle.getString("tiptext.save")); // NOI18N
jbtnSave.setFocusPainted(false);
jbtnSave.setFocusable(false);
jbtnSave.setMargin(new java.awt.Insets(2, 8, 2, 8));
jbtnSave.setRequestFocusEnabled(false);
jbtnSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnSaveActionPerformed(evt);
}
});
add(jbtnSave);
}// </editor-fold>//GEN-END:initComponents
private void jbtnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnSaveActionPerformed
try {
m_bd.saveData();
m_bd.refreshData();
} catch (BasicException eD) {
MessageInf msg = new MessageInf(MessageInf.SGN_NOTICE, LocalRes.getIntString("message.nosave"), eD);
msg.show(this);
}
}//GEN-LAST:event_jbtnSaveActionPerformed
private void jbtnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnDeleteActionPerformed
try {
m_bd.actionDelete();
m_bd.refreshData();
} catch (BasicException eD) {
MessageInf msg = new MessageInf(MessageInf.SGN_NOTICE, LocalRes.getIntString("message.nodelete"), eD);
msg.show(this);
}
}//GEN-LAST:event_jbtnDeleteActionPerformed
private void jbtnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnNewActionPerformed
try {
m_bd.refreshData();
m_bd.actionInsert();
} catch (BasicException eD) {
MessageInf msg = new MessageInf(MessageInf.SGN_NOTICE, LocalRes.getIntString("message.nonew"), eD);
msg.show(this);
}
}//GEN-LAST:event_jbtnNewActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JSeparator jSeparator1;
private javax.swing.JButton jbtnDelete;
private javax.swing.JButton jbtnNew;
private javax.swing.JButton jbtnSave;
// End of variables declaration//GEN-END:variables
}