/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package club.ui;
import club.beans.EventTypeBean;
import club.data.DataEventType;
import club.ulti.Validator;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author sior
*/
public class EventType extends javax.swing.JDialog {
private String actionFlag;
/**
* Creates new form MembershipDialog
*/
private void refreshData() throws SQLException {
DataEventType dataType = new DataEventType();
DefaultTableModel model = dataType.getAllTypesAsModel();
tblEventType.setModel(model);
}
public EventType(java.awt.Frame parent, boolean modal) {
super(parent, modal);
try {
initComponents();
refreshData();
this.setLocation(400,100);
} catch (SQLException ex) {
Logger.getLogger(EventType.class.getName()).log(Level.SEVERE, null, ex);
}
panelForm.setVisible(false);
this.setSize(this.getWidth(), 290);
}
/**
* 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
btn_Add = new javax.swing.JButton();
btn_Update = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblEventType = new javax.swing.JTable();
btn_Delete = new javax.swing.JButton();
panelForm = new javax.swing.JPanel();
lbType = new javax.swing.JLabel();
txtTypeName = new javax.swing.JTextField();
btn_Submit = new javax.swing.JButton();
btn_Abort = new javax.swing.JButton();
txtHiddenID = new javax.swing.JTextField();
lbID = new javax.swing.JLabel();
jButton1.setText("jButton1");
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Membership");
setResizable(false);
btn_Add.setText("Add");
btn_Add.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_AddActionPerformed(evt);
}
});
btn_Update.setText("Update");
btn_Update.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_UpdateActionPerformed(evt);
}
});
btnCancel.setText("Cancel");
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCancelActionPerformed(evt);
}
});
tblEventType.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(tblEventType);
btn_Delete.setText("Delete");
btn_Delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_DeleteActionPerformed(evt);
}
});
panelForm.setBorder(javax.swing.BorderFactory.createTitledBorder("Membership Details"));
lbType.setText("Type");
txtTypeName.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txtTypeNameKeyReleased(evt);
}
});
btn_Submit.setText("Submit");
btn_Submit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_SubmitActionPerformed(evt);
}
});
btn_Abort.setText("Abort");
btn_Abort.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_AbortActionPerformed(evt);
}
});
txtHiddenID.setEditable(false);
txtHiddenID.setBackground(new java.awt.Color(204, 204, 204));
txtHiddenID.setText("jTextField1");
lbID.setText("ID");
javax.swing.GroupLayout panelFormLayout = new javax.swing.GroupLayout(panelForm);
panelForm.setLayout(panelFormLayout);
panelFormLayout.setHorizontalGroup(
panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelFormLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbID)
.addComponent(txtHiddenID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelFormLayout.createSequentialGroup()
.addComponent(txtTypeName, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_Submit))
.addComponent(lbType))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_Abort)
.addGap(12, 12, 12))
);
panelFormLayout.setVerticalGroup(
panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelFormLayout.createSequentialGroup()
.addGroup(panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbType)
.addComponent(lbID))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelFormLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_Abort, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_Submit)
.addComponent(txtTypeName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtHiddenID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelFormLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {btn_Abort, btn_Submit});
panelFormLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {txtHiddenID, txtTypeName});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelForm, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 495, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(btn_Add)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_Update)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_Delete)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnCancel)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 207, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btn_Add, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_Update)
.addComponent(btnCancel)
.addComponent(btn_Delete)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelForm, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {btn_Add, btn_Update});
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
this.dispose();
}//GEN-LAST:event_btnCancelActionPerformed
private void btn_UpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_UpdateActionPerformed
int selectedRow = tblEventType.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(rootPane, "You must chose one event type first!", "Error!", JOptionPane.ERROR_MESSAGE);
} else {
int id = (int) tblEventType.getModel().getValueAt(selectedRow, 0);
DataEventType dateEventType = new DataEventType();
EventTypeBean bean = dateEventType.getEventTypeByID(id);
txtTypeName.setText(bean.getType());
txtHiddenID.setText(String.valueOf(bean.getEventType()));
panelForm.setVisible(true);
this.setSize(this.getWidth(), 400);
actionFlag = "Update";
}
}//GEN-LAST:event_btn_UpdateActionPerformed
private void btn_AddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_AddActionPerformed
txtTypeName.setText("");
txtHiddenID.setText("#");
panelForm.setVisible(true);
this.setSize(this.getWidth(), 400);
actionFlag = "Add";
}//GEN-LAST:event_btn_AddActionPerformed
private void btn_AbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_AbortActionPerformed
panelForm.setVisible(false);
this.setSize(this.getWidth(), 290);
}//GEN-LAST:event_btn_AbortActionPerformed
private void btn_DeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_DeleteActionPerformed
int selectedRow = tblEventType.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(rootPane, "You must chose one event type first!", "Error!", JOptionPane.ERROR_MESSAGE);
} else {
int id = (int) tblEventType.getModel().getValueAt(selectedRow, 0);
if (!DataEventType.isRemovable(id)) {
JOptionPane.showMessageDialog(rootPane, "There are still some event relate to this type!\n Can't delete !", "Error!", JOptionPane.ERROR_MESSAGE);
} else {
try {
DataEventType.removeTypeByID(id);
refreshData();
} catch (SQLException ex) {
Logger.getLogger(EventType.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(rootPane, "Error Removing !", "Error!", JOptionPane.ERROR_MESSAGE);
}
}
}
}//GEN-LAST:event_btn_DeleteActionPerformed
private void btn_SubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_SubmitActionPerformed
if (Validator.checkIsNotEmpty(txtTypeName.getText())) {
DataEventType dataType = new DataEventType();
if (actionFlag.equals("Update")) {
try {
int id = Integer.parseInt(txtHiddenID.getText());
dataType.updateTypeByID(id, txtTypeName.getText().trim());
panelForm.setVisible(false);
this.setSize(this.getWidth(), 290);
refreshData();
} catch (SQLException ex) {
Logger.getLogger(EventType.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(rootPane, "Error Updating !", "Error!", JOptionPane.ERROR_MESSAGE);
}
}
if (actionFlag.equals("Add")) {
try {
dataType.insertEventType(txtTypeName.getText().trim());
panelForm.setVisible(false);
this.setSize(this.getWidth(), 290);
refreshData();
} catch (SQLException ex) {
Logger.getLogger(EventType.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(rootPane, "Error Adding !", "Error!", JOptionPane.ERROR_MESSAGE);
}
}
} else {
JOptionPane.showMessageDialog(rootPane, "You can not leave the type blank !", "Error!", JOptionPane.ERROR_MESSAGE);
}
}//GEN-LAST:event_btn_SubmitActionPerformed
private void txtTypeNameKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTypeNameKeyReleased
// TODO add your handling code here:
Validator.Validate(txtTypeName, Validator.checkIsNotEmpty(txtTypeName.getText()));
}//GEN-LAST:event_txtTypeNameKeyReleased
/**
* @param args the command line arguments
*/
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnCancel;
private javax.swing.JButton btn_Abort;
private javax.swing.JButton btn_Add;
private javax.swing.JButton btn_Delete;
private javax.swing.JButton btn_Submit;
private javax.swing.JButton btn_Update;
private javax.swing.JButton jButton1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lbID;
private javax.swing.JLabel lbType;
private javax.swing.JPanel panelForm;
private javax.swing.JTable tblEventType;
private javax.swing.JTextField txtHiddenID;
private javax.swing.JTextField txtTypeName;
// End of variables declaration//GEN-END:variables
}