/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.yf.kp.design.kelas;
import com.yf.kp.model.Kelas;
import com.yf.kp.service.CountService;
import com.yf.kp.service.KelasService;
import com.yf.kp.service.impl.CountServiceImpl;
import com.yf.kp.service.impl.KelasServiceImpl;
import com.yf.kp.utility.TableAutoColumnWidth;
import java.util.List;
import javax.swing.JOptionPane;
/**
*
* @author aspire
*/
public class FrameKelas extends javax.swing.JInternalFrame {
Integer noHalaman = 1;
Integer banyakBaris = 10;
Integer totalHalaman = 1;
Integer totalData = 0;
private KelasService service;
private KelasTableModel tableModel;
private CountService countService;
private List<Kelas> list;
private Kelas model;
/**
* Creates new form FrameKelas
*/
public FrameKelas() {
initComponents();
}
private void loadData() {
service = new KelasServiceImpl();
tableModel = new KelasTableModel();
countService = new CountServiceImpl();
totalData = countService.countKelas().intValue();
banyakBaris = Integer.parseInt(cmbJumlahBaris.getSelectedItem().toString());
Double totalHalD = Math.ceil(totalData.doubleValue() / banyakBaris.doubleValue());
totalHalaman = totalHalD.intValue();
if (noHalaman == 1) {
btnFirst.setEnabled(false);
btnPrev.setEnabled(false);
} else {
btnFirst.setEnabled(true);
btnPrev.setEnabled(true);
}
if (noHalaman.equals(totalHalaman)) {
btnNext.setEnabled(false);
btnLast.setEnabled(false);
} else {
btnNext.setEnabled(true);
btnLast.setEnabled(true);
}
if (noHalaman > totalHalaman) {
noHalaman = 1;
}
list = service.findAll(noHalaman, banyakBaris);
tableModel.setList(list);
tableKelas.setModel(tableModel);
TableAutoColumnWidth tableAutoColumnWidth = new TableAutoColumnWidth(tableKelas);
}
public void cbBaris() {
cmbJumlahBaris.addItem("10");
cmbJumlahBaris.addItem("20");
}
/**
* 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() {
jPanel3 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
tableKelas = new javax.swing.JTable();
jPanel4 = new javax.swing.JPanel();
btnFirst = new javax.swing.JButton();
btnPrev = new javax.swing.JButton();
cmbJumlahBaris = new javax.swing.JComboBox();
btnNext = new javax.swing.JButton();
btnLast = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
txtNamaKelas = new javax.swing.JTextField();
jButton4 = new javax.swing.JButton();
setTitle("Data Kelas");
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
formInternalFrameOpened(evt);
}
});
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Data Kelas", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 14))); // NOI18N
jPanel3.setOpaque(false);
jScrollPane2.setViewportView(tableKelas);
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 598, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)
.addContainerGap())
);
jPanel4.setOpaque(false);
btnFirst.setText("<<");
btnFirst.setToolTipText("First");
btnFirst.setPreferredSize(new java.awt.Dimension(50, 30));
btnFirst.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnFirstActionPerformed(evt);
}
});
jPanel4.add(btnFirst);
btnPrev.setText("<");
btnPrev.setToolTipText("Prev");
btnPrev.setPreferredSize(new java.awt.Dimension(50, 30));
btnPrev.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnPrevActionPerformed(evt);
}
});
jPanel4.add(btnPrev);
cmbJumlahBaris.setPreferredSize(new java.awt.Dimension(50, 25));
jPanel4.add(cmbJumlahBaris);
btnNext.setText(">");
btnNext.setToolTipText("Next");
btnNext.setPreferredSize(new java.awt.Dimension(50, 30));
btnNext.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNextActionPerformed(evt);
}
});
jPanel4.add(btnNext);
btnLast.setText(">>");
btnLast.setToolTipText("Last");
btnLast.setPreferredSize(new java.awt.Dimension(50, 30));
btnLast.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnLastActionPerformed(evt);
}
});
jPanel4.add(btnLast);
jButton1.setText("Hapus");
jButton1.setPreferredSize(new java.awt.Dimension(100, 30));
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1);
jButton3.setText("Edit");
jButton3.setPreferredSize(new java.awt.Dimension(100, 30));
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jPanel1.add(jButton3);
jButton2.setText("Keluar");
jButton2.setPreferredSize(new java.awt.Dimension(100, 30));
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jPanel1.add(jButton2);
jLabel1.setText("Nama Kelas");
txtNamaKelas.setPreferredSize(new java.awt.Dimension(200, 30));
jButton4.setText("Simpan");
jButton4.setPreferredSize(new java.awt.Dimension(100, 30));
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
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()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtNamaKelas, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtNamaKelas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
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(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnFirstActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFirstActionPerformed
// TODO add your handling code here:
noHalaman = 1;
loadData();
}//GEN-LAST:event_btnFirstActionPerformed
private void btnPrevActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrevActionPerformed
// TODO add your handling code here:
if (noHalaman > 1) {
noHalaman--;
loadData();
}
}//GEN-LAST:event_btnPrevActionPerformed
private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNextActionPerformed
// TODO add your handling code here:
if (noHalaman < totalHalaman) {
noHalaman++;
loadData();
}
}//GEN-LAST:event_btnNextActionPerformed
private void btnLastActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLastActionPerformed
// TODO add your handling code here:
noHalaman = totalHalaman;
loadData();
}//GEN-LAST:event_btnLastActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
this.dispose();
}//GEN-LAST:event_jButton2ActionPerformed
private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameOpened
cbBaris();
loadData();
}//GEN-LAST:event_formInternalFrameOpened
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// TODO add your handling code here:
if (tableKelas.getSelectedRow() != -1) {
int index = tableKelas.convertRowIndexToModel(tableKelas.getSelectedRow());
Kelas kelas = list.get(index);
txtNamaKelas.setText(kelas.getNama_kelas());
this.setTitle(kelas.getId().toString());
jButton4.setText("Update");
} else {
JOptionPane.showMessageDialog(this, "Silahakan Pilih Data Terlebih Dahulu");
}
}//GEN-LAST:event_jButton3ActionPerformed
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
if (txtNamaKelas.getText().trim().isEmpty()) {
JOptionPane.showMessageDialog(this, "Nama Kelas Masih Kosong", "Info", JOptionPane.INFORMATION_MESSAGE);
} else {
service = new KelasServiceImpl();
model = new Kelas();
if ("Update".equals(jButton4.getText())) {
model.setId(Long.valueOf(this.getTitle()));
model.setNama_kelas(txtNamaKelas.getText());
service.update(model);
txtNamaKelas.setText("");
loadData();
jButton4.setText("Simpan");
} else {
model.setNama_kelas(txtNamaKelas.getText());
service.save(model);
txtNamaKelas.setText("");
loadData();
}
}
}//GEN-LAST:event_jButton4ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
if (tableKelas.getSelectedRow() != -1) {
int index = tableKelas.convertRowIndexToModel(tableKelas.getSelectedRow());
Kelas kelas = list.get(index);
if (JOptionPane.showConfirmDialog(this, "Are You Sure To Delete This Item?", "Delete Item", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
service = new KelasServiceImpl();
service.delete(kelas.getId());
loadData();
}
} else {
JOptionPane.showMessageDialog(this, "Silahakan Pilih Data Terlebih Dahulu");
}
}//GEN-LAST:event_jButton1ActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnFirst;
private javax.swing.JButton btnLast;
private javax.swing.JButton btnNext;
private javax.swing.JButton btnPrev;
private javax.swing.JComboBox cmbJumlahBaris;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable tableKelas;
private javax.swing.JTextField txtNamaKelas;
// End of variables declaration//GEN-END:variables
}