br.com.registro.view.TelaHoras.java Source code

Java tutorial

Introduction

Here is the source code for br.com.registro.view.TelaHoras.java

Source

/*
 * 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 br.com.registro.view;

import br.com.registro.entidade.Controle;
import br.com.registro.entidade.Funcionario;
import br.com.registro.modelo.ControleDAO;
import br.com.registro.modelo.FuncionarioDAO;
import br.com.registro.modelo.TableModelControle;
import br.com.registro.util.HoraUtil;
import com.mysql.fabric.xmlrpc.base.Data;
import java.awt.Color;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.joda.time.DateTime;
import org.joda.time.Period;

/**
 *
 * @author user_mw
 */
public class TelaHoras extends javax.swing.JInternalFrame {

    public TableModelControle tabelaControle;

    /**
     * Creates new form Horas
     */
    public TelaHoras() {
        initComponents();

        preencheComboboxFuncionario();

        //========================
        //--Tabela
        this.tabelaControle = new TableModelControle();
        this.jTable1.setModel(tabelaControle);
    }

    /**
     * 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() {

        jPanel1 = new javax.swing.JPanel();
        jButtonCodigoPesquisa = new javax.swing.JButton();
        jButtonDataPesquisa = new javax.swing.JButton();
        jTextFieldCodigoPesquisa = new javax.swing.JTextField();
        jLabelCodigoPesquisa = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jDateChooserDataPesquisa = new com.toedter.calendar.JDateChooser();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jTextFieldStatus = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextAreaDescricao = new javax.swing.JTextArea();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jFormattedTextFieldHoraEntrada = new javax.swing.JFormattedTextField();
        jFormattedTextFieldHoraSaida = new javax.swing.JFormattedTextField();
        jLabel11 = new javax.swing.JLabel();
        jFormattedTextFieldHoraExtra = new javax.swing.JFormattedTextField();
        jComboBoxFuncionario = new javax.swing.JComboBox();
        jFormattedTextFieldData = new javax.swing.JFormattedTextField();
        jButtonAdicionar = new javax.swing.JButton();
        jButtonConfirmar = new javax.swing.JButton();
        jButtonCancelar = new javax.swing.JButton();
        jButtonAtualizar = new javax.swing.JButton();
        jButtonExcluir = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setClosable(true);
        setIconifiable(true);
        setTitle("Atualizar Hora");
        setPreferredSize(new java.awt.Dimension(800, 500));

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));

        jButtonCodigoPesquisa
                .setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/registro/img/lupa_32x32.png"))); // NOI18N
        jButtonCodigoPesquisa.setToolTipText("Digite o cdigo do funcionrio");
        jButtonCodigoPesquisa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCodigoPesquisaActionPerformed(evt);
            }
        });

        jButtonDataPesquisa
                .setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/registro/img/lupa_32x32.png"))); // NOI18N
        jButtonDataPesquisa.setToolTipText("Selecione a data do registro");
        jButtonDataPesquisa.setEnabled(false);

        jTextFieldCodigoPesquisa.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldCodigoPesquisaKeyPressed(evt);
            }

            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTextFieldCodigoPesquisaKeyReleased(evt);
            }
        });

        jLabelCodigoPesquisa.setText("Digite o cdigo do cliente");

        jLabel2.setText("Selecione a data de registro");

        jDateChooserDataPesquisa.setEnabled(false);

        jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { {}, {}, {}, {} }, new String[] {

        }));
        jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN);
        jTable1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTable1MouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTable1);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Atualizao de Registro"));

        jLabel3.setText("Cdigo do Funcionario.:");

        jLabel4.setText("Hora de entrada.:");

        jLabel7.setText("Hora Sada.:");

        jLabel8.setText("Status.:");

        jTextFieldStatus.setEnabled(false);

        jTextAreaDescricao.setColumns(20);
        jTextAreaDescricao.setRows(5);
        jTextAreaDescricao.setEnabled(false);
        jScrollPane2.setViewportView(jTextAreaDescricao);

        jLabel9.setText("Descrio");

        jLabel10.setText("Data.:");

        try {
            jFormattedTextFieldHoraEntrada.setFormatterFactory(
                    new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##:##:##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        jFormattedTextFieldHoraEntrada.setEnabled(false);
        jFormattedTextFieldHoraEntrada.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jFormattedTextFieldHoraEntradaActionPerformed(evt);
            }
        });

        try {
            jFormattedTextFieldHoraSaida.setFormatterFactory(
                    new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##:##:##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        jFormattedTextFieldHoraSaida.setEnabled(false);
        jFormattedTextFieldHoraSaida.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jFormattedTextFieldHoraSaidaActionPerformed(evt);
            }
        });

        jLabel11.setText("Hora Extra.:");

        jFormattedTextFieldHoraExtra.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(
                new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
        jFormattedTextFieldHoraExtra.setEnabled(false);
        jFormattedTextFieldHoraExtra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jFormattedTextFieldHoraExtraActionPerformed(evt);
            }
        });

        jComboBoxFuncionario
                .setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione um funcionrio" }));
        jComboBoxFuncionario.setEnabled(false);

        try {
            jFormattedTextFieldData.setFormatterFactory(
                    new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##/##/####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        jFormattedTextFieldData.setEnabled(false);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(jPanel2Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(
                                        jLabel3).addGap(18, 18, 18).addComponent(jComboBoxFuncionario,
                                                javax.swing.GroupLayout.PREFERRED_SIZE, 175,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(jPanel2Layout.createSequentialGroup().addGap(111, 111, 111).addGroup(
                                        jPanel2Layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jLabel7)
                                                .addComponent(jLabel4))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel2Layout.createParallelGroup(
                                                javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                                                        jFormattedTextFieldHoraEntrada,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 48,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jFormattedTextFieldHoraSaida,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 48,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel2Layout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel9).addGap(320,
                                        320, 320))
                                .addGroup(jPanel2Layout.createSequentialGroup().addComponent(jScrollPane2)
                                        .addContainerGap())
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                        jPanel2Layout.createSequentialGroup().addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout
                                                        .createSequentialGroup().addComponent(jLabel11)
                                                        .addPreferredGap(
                                                                javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                        .addComponent(jFormattedTextFieldHoraExtra,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 48,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout
                                                        .createSequentialGroup().addComponent(jLabel8)
                                                        .addPreferredGap(
                                                                javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(jTextFieldStatus,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 135,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addGap(18, 18, 18).addComponent(jLabel10)
                                                        .addPreferredGap(
                                                                javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(jFormattedTextFieldData,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                                                .addContainerGap()))));
        jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                                        .addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel11).addComponent(jFormattedTextFieldHoraExtra,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(0, 0, Short.MAX_VALUE))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout
                                        .createSequentialGroup()
                                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel3).addComponent(jComboBoxFuncionario,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(18, 18, 18)))
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout
                                        .createSequentialGroup()
                                        .addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel4).addComponent(jFormattedTextFieldHoraEntrada,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel7).addComponent(jFormattedTextFieldHoraSaida,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(64, 64, 64))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        jPanel2Layout.createSequentialGroup().addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(jLabel10)
                                                .addComponent(jTextFieldStatus,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jLabel8).addComponent(jFormattedTextFieldData,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jLabel9)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        84, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap()));

        jButtonAdicionar.setText("Adicionar");
        jButtonAdicionar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAdicionarActionPerformed(evt);
            }
        });

        jButtonConfirmar.setText("Confirmar");
        jButtonConfirmar.setEnabled(false);
        jButtonConfirmar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonConfirmarActionPerformed(evt);
            }
        });

        jButtonCancelar.setText("Cancelar");
        jButtonCancelar.setEnabled(false);
        jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelarActionPerformed(evt);
            }
        });

        jButtonAtualizar.setText("Atualizar");
        jButtonAtualizar.setEnabled(false);
        jButtonAtualizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAtualizarActionPerformed(evt);
            }
        });

        jButtonExcluir.setText("Excluir");
        jButtonExcluir.setEnabled(false);
        jButtonExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonExcluirActionPerformed(evt);
            }
        });

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/registro/img/resize.png"))); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout
                .setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(85, 85, 85)
                                .addComponent(jButtonAdicionar).addGap(18, 18, 18).addComponent(jButtonConfirmar)
                                .addGap(18, 18, 18).addComponent(jButtonCancelar).addGap(18, 18, 18)
                                .addComponent(jButtonAtualizar).addGap(18, 18, 18).addComponent(jButtonExcluir)
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(
                                                jPanel2, javax.swing.GroupLayout.Alignment.TRAILING,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout
                                                .createSequentialGroup()
                                                .addGroup(jPanel1Layout.createParallelGroup(
                                                        javax.swing.GroupLayout.Alignment.LEADING)
                                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                                .addComponent(jButtonCodigoPesquisa)
                                                                .addPreferredGap(
                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                .addComponent(jTextFieldCodigoPesquisa,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 62,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                                        .addComponent(jLabelCodigoPesquisa,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 157,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addGroup(jPanel1Layout
                                                        .createParallelGroup(
                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                        .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                Short.MAX_VALUE)
                                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                                .addComponent(jButtonDataPesquisa)
                                                                .addPreferredGap(
                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                .addComponent(jDateChooserDataPesquisa,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 128,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addGap(0, 12, Short.MAX_VALUE)))
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        386, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                                jPanel1Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
                                                        .addComponent(jLabel1,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 142,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                                        .addContainerGap()));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jButtonDataPesquisa, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jDateChooserDataPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 41,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel2))
                        .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jTextFieldCodigoPesquisa).addComponent(jButtonCodigoPesquisa,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabelCodigoPesquisa)))
                        .addGap(18, 18, 18)
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jButtonAdicionar).addComponent(jButtonConfirmar)
                                .addComponent(jButtonCancelar).addComponent(jButtonAtualizar)
                                .addComponent(jButtonExcluir))
                        .addGap(13, 13, 13).addComponent(jLabel1).addContainerGap(27, Short.MAX_VALUE)));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                Short.MAX_VALUE));

        setBounds(0, 20, 800, 483);
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonAdicionarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAdicionarActionPerformed
        // TODO add your handling code here:

        SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();
        jFormattedTextFieldData.setText(data.format(date));

        jButtonAdicionar.setEnabled(false);
        jButtonConfirmar.setEnabled(true);
        jButtonCancelar.setEnabled(true);
        jButtonAtualizar.setEnabled(false);
        jButtonExcluir.setEnabled(false);

        jComboBoxFuncionario.setEnabled(true);
        jFormattedTextFieldHoraEntrada.setEnabled(true);

        jFormattedTextFieldHoraSaida.setEnabled(true);
        jFormattedTextFieldHoraExtra.setEnabled(false);
        jTextFieldStatus.setEnabled(false);
        jFormattedTextFieldData.setEnabled(true);
        jTextAreaDescricao.setEnabled(true);

    }//GEN-LAST:event_jButtonAdicionarActionPerformed

    private void jButtonConfirmarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonConfirmarActionPerformed
        // TODO add your handling code here:

        ControleDAO dao = new ControleDAO();
        Controle control = new Controle();
        HoraUtil util = new HoraUtil();

        SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();
        String d = data.format(date);

        int indiceLinha = jTable1.getSelectedRow();

        if (jComboBoxFuncionario.getSelectedItem().equals("Selecione um funciorio")
                || jFormattedTextFieldHoraEntrada.getText().isEmpty()
                || jFormattedTextFieldHoraSaida.getText().isEmpty()
                || jFormattedTextFieldData.getText().isEmpty()) {

            JOptionPane.showMessageDialog(null, "Campos obrigatrios vazios", "Ateno",
                    JOptionPane.INFORMATION_MESSAGE);

        } else if (jFormattedTextFieldData.getText().equals(d)) {

            JOptionPane.showMessageDialog(null, "Funcionrio j registrou ponto nesta data", "Ateno",
                    JOptionPane.ERROR_MESSAGE);

            jButtonAdicionar.setEnabled(true);
            jButtonConfirmar.setEnabled(false);
            jButtonCancelar.setEnabled(false);
            jButtonAtualizar.setEnabled(false);
            jButtonExcluir.setEnabled(false);

            jComboBoxFuncionario.setEnabled(false);
            jFormattedTextFieldHoraEntrada.setEnabled(false);

            jFormattedTextFieldHoraSaida.setEnabled(false);
            jFormattedTextFieldHoraExtra.setEnabled(false);
            jFormattedTextFieldData.setEnabled(false);
            jTextAreaDescricao.setEnabled(false);

            jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
            jFormattedTextFieldHoraEntrada.setText("");

            jFormattedTextFieldHoraSaida.setText("");
            jFormattedTextFieldHoraExtra.setText("");
            jFormattedTextFieldData.setText("");
            jTextAreaDescricao.setText("");

        } else {

            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

            Date dataInicial = null;
            Date dataFinal = null;

            try {

                dataInicial = format
                        .parse(jFormattedTextFieldData.getText() + " " + jFormattedTextFieldHoraEntrada.getText());
                dataFinal = format
                        .parse(jFormattedTextFieldData.getText() + " " + jFormattedTextFieldHoraSaida.getText());

                Timestamp inicialStamp = new Timestamp(dataInicial.getTime());
                Timestamp finalStamp = new Timestamp(dataFinal.getTime());

                control.setHoraEntrada(inicialStamp);
                control.setHoraSaida(finalStamp);

                DateTime dataHoraEntrada = new DateTime(inicialStamp);
                DateTime dataHoraSaida = new DateTime(finalStamp);

                Period tempoTrabalhado = new Period(dataHoraEntrada, dataHoraSaida);

                int horaLocal = tempoTrabalhado.getMinutes() + tempoTrabalhado.getHours() * 60
                        + tempoTrabalhado.getDays() * 1440;

                int hora = horaLocal - 540;

                control.setHoraExtra(hora);

                control.setFuncionario((Funcionario) jComboBoxFuncionario.getSelectedItem());

                control.setData(jFormattedTextFieldData.getText());
                control.setStatus(util.informaAtraso(horaLocal) + "");
                control.setDescricao(jTextAreaDescricao.getText());

                if (dao.savar(control)) {

                    JOptionPane.showMessageDialog(null, "Ponto registrado com sucesso", "Ateno",
                            JOptionPane.INFORMATION_MESSAGE);

                    jButtonAdicionar.setEnabled(true);
                    jButtonConfirmar.setEnabled(false);
                    jButtonCancelar.setEnabled(false);
                    jButtonAtualizar.setEnabled(false);
                    jButtonExcluir.setEnabled(false);

                    jComboBoxFuncionario.setEnabled(false);
                    jFormattedTextFieldHoraEntrada.setEnabled(false);

                    jFormattedTextFieldHoraSaida.setEnabled(false);
                    jFormattedTextFieldHoraExtra.setEnabled(false);
                    jFormattedTextFieldData.setEnabled(false);
                    jTextAreaDescricao.setEnabled(false);

                    jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
                    jFormattedTextFieldHoraEntrada.setText("");

                    jFormattedTextFieldHoraSaida.setText("");
                    jFormattedTextFieldHoraExtra.setText("");
                    jFormattedTextFieldData.setText("");
                    jTextAreaDescricao.setText("");

                    //========================
                    //--Tabela
                    this.tabelaControle = new TableModelControle();
                    this.jTable1.setModel(tabelaControle);

                } else {

                    JOptionPane.showMessageDialog(null, "Erro ao cadastrar.", "Ateno",
                            JOptionPane.ERROR_MESSAGE);

                    jButtonAdicionar.setEnabled(true);
                    jButtonConfirmar.setEnabled(false);
                    jButtonCancelar.setEnabled(false);
                    jButtonAtualizar.setEnabled(false);
                    jButtonExcluir.setEnabled(false);

                    jComboBoxFuncionario.setEnabled(false);
                    jFormattedTextFieldHoraEntrada.setEnabled(false);

                    jFormattedTextFieldHoraSaida.setEnabled(false);
                    jFormattedTextFieldHoraExtra.setEnabled(false);
                    jFormattedTextFieldData.setEnabled(false);
                    jTextAreaDescricao.setEnabled(false);

                    jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
                    jFormattedTextFieldHoraEntrada.setText("");

                    jFormattedTextFieldHoraSaida.setText("");
                    jFormattedTextFieldHoraExtra.setText("");
                    jFormattedTextFieldData.setText("");
                    jTextAreaDescricao.setText("");
                }

            } catch (Exception e) {
            }
        }

    }//GEN-LAST:event_jButtonConfirmarActionPerformed

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
        // TODO add your handling code here:

        //Funcionario func = new Funcionario();
        FuncionarioDAO dao = new FuncionarioDAO();

        int indiceLinha = jTable1.getSelectedRow();

        long codigoFuncionario = Long.parseLong(jTable1.getValueAt(indiceLinha, 0) + "");

        //Funcionario func = null;

        jComboBoxFuncionario.removeAllItems();

        List<Funcionario> listaFuncionario = dao.pesquisaPorCodigoFuncionario(codigoFuncionario);

        listaFuncionario.forEach((func) -> {
            jComboBoxFuncionario.addItem(func);
        });

        jComboBoxFuncionario.setSelectedIndex(0);

        jFormattedTextFieldHoraEntrada.setText(jTable1.getValueAt(indiceLinha, 1) + "");
        jFormattedTextFieldHoraSaida.setText(jTable1.getValueAt(indiceLinha, 2) + "");
        jFormattedTextFieldHoraExtra.setText(jTable1.getValueAt(indiceLinha, 4) + "");
        jTextFieldStatus.setText(jTable1.getValueAt(indiceLinha, 3).toString());
        jFormattedTextFieldData.setText(jTable1.getValueAt(indiceLinha, 5).toString());
        jTextAreaDescricao.setText(jTable1.getValueAt(indiceLinha, 6).toString());

        jComboBoxFuncionario.setEnabled(true);
        jFormattedTextFieldHoraEntrada.setEnabled(true);
        jFormattedTextFieldHoraSaida.setEnabled(true);
        jFormattedTextFieldHoraExtra.setEnabled(false);
        jTextFieldStatus.setEnabled(false);
        jTextAreaDescricao.setEnabled(true);

        jButtonAdicionar.setEnabled(false);
        jButtonConfirmar.setEnabled(false);
        jButtonCancelar.setEnabled(true);
        jButtonAtualizar.setEnabled(true);
        jButtonExcluir.setEnabled(true);

    }//GEN-LAST:event_jTable1MouseClicked

    private void jButtonCodigoPesquisaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCodigoPesquisaActionPerformed
        // TODO add your handling code here:

        Funcionario func = new Funcionario();
        FuncionarioDAO daoFunc = new FuncionarioDAO();

        if (jTextFieldCodigoPesquisa.getText().isEmpty()) {

            jLabelCodigoPesquisa.setText("Digite o cdigo do funcionrio");
            jLabelCodigoPesquisa.setForeground(Color.red);

        } else {

            func.setIdFuncionario(Long.parseLong(jTextFieldCodigoPesquisa.getText()));

            long idFunc = 0;

            List<Funcionario> listaFuncionario = daoFunc.pesquisaPorCodigoFuncionario(func.getIdFuncionario());

            for (Funcionario funcionario : listaFuncionario) {

                idFunc = funcionario.getIdFuncionario();

            }

            if (idFunc != func.getIdFuncionario()) {

                jLabelCodigoPesquisa.setText("Funcionario no cadastrado.");
                jLabelCodigoPesquisa.setForeground(Color.red);

            } else {

                this.tabelaControle = new TableModelControle(idFunc);
                this.jTable1.setModel(tabelaControle);

                jDateChooserDataPesquisa.setEnabled(true);
                jButtonDataPesquisa.setEnabled(true);

            }

        }

    }//GEN-LAST:event_jButtonCodigoPesquisaActionPerformed

    private void jTextFieldCodigoPesquisaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldCodigoPesquisaKeyPressed
        // TODO add your handling code here:

    }//GEN-LAST:event_jTextFieldCodigoPesquisaKeyPressed

    private void jTextFieldCodigoPesquisaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldCodigoPesquisaKeyReleased
        // TODO add your handling code here:

        if (jTextFieldCodigoPesquisa.getText().isEmpty()) {

            this.tabelaControle = new TableModelControle();
            this.jTable1.setModel(tabelaControle);

            jDateChooserDataPesquisa.setEnabled(false);
            jButtonDataPesquisa.setEnabled(false);

        }

    }//GEN-LAST:event_jTextFieldCodigoPesquisaKeyReleased

    private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelarActionPerformed
        // TODO add your handling code here:

        jButtonAdicionar.setEnabled(true);
        jButtonConfirmar.setEnabled(false);
        jButtonCancelar.setEnabled(false);
        jButtonAtualizar.setEnabled(false);
        jButtonExcluir.setEnabled(false);

        jComboBoxFuncionario.setEnabled(false);
        jFormattedTextFieldHoraEntrada.setEnabled(false);

        jFormattedTextFieldHoraSaida.setEnabled(false);
        jFormattedTextFieldHoraExtra.setEnabled(false);
        jFormattedTextFieldData.setEnabled(false);
        jTextAreaDescricao.setEnabled(false);

        jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
        jFormattedTextFieldHoraEntrada.setText("");

        jFormattedTextFieldHoraSaida.setText("");
        jFormattedTextFieldHoraExtra.setText("");
        jFormattedTextFieldData.setText("");
        jTextAreaDescricao.setText("");

        jComboBoxFuncionario.removeAllItems();
        jComboBoxFuncionario.addItem("Selecione um funcionrio");
        jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
        preencheComboboxFuncionario();

    }//GEN-LAST:event_jButtonCancelarActionPerformed

    private void jButtonAtualizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAtualizarActionPerformed
        // TODO add your handling code here:

        ControleDAO dao = new ControleDAO();
        Controle control = new Controle();
        HoraUtil util = new HoraUtil();

        if (jComboBoxFuncionario.getSelectedItem().equals("Selecione um funciorio")
                || jFormattedTextFieldHoraEntrada.getText().isEmpty()
                || jFormattedTextFieldHoraSaida.getText().isEmpty()
                || jFormattedTextFieldData.getText().isEmpty()) {

            JOptionPane.showMessageDialog(null, "Campos obrigatrios vazios", "Ateno",
                    JOptionPane.INFORMATION_MESSAGE);

        } else {

            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

            Date dataInicial = null;
            Date dataFinal = null;

            try {

                dataInicial = format
                        .parse(jFormattedTextFieldData.getText() + " " + jFormattedTextFieldHoraEntrada.getText());
                dataFinal = format
                        .parse(jFormattedTextFieldData.getText() + " " + jFormattedTextFieldHoraSaida.getText());

                Timestamp inicialStamp = new Timestamp(dataInicial.getTime());
                Timestamp finalStamp = new Timestamp(dataFinal.getTime());

                control.setHoraEntrada(inicialStamp);
                control.setHoraSaida(finalStamp);

                DateTime dataHoraEntrada = new DateTime(inicialStamp);
                DateTime dataHoraSaida = new DateTime(finalStamp);

                Period tempoTrabalhado = new Period(dataHoraEntrada, dataHoraSaida);

                int horaLocal = tempoTrabalhado.getMinutes() + tempoTrabalhado.getHours() * 60
                        + tempoTrabalhado.getDays() * 1440;

                int hora = horaLocal - 540;

                control.setHoraExtra(hora);

                control.setStatus(util.informaAtraso(horaLocal) + "");
                control.setDescricao(jTextAreaDescricao.getText());

                if (dao.update(control)) {

                    JOptionPane.showMessageDialog(null, "Ponto Atualizado com sucesso", "Ateno",
                            JOptionPane.INFORMATION_MESSAGE);

                    jButtonAdicionar.setEnabled(true);
                    jButtonConfirmar.setEnabled(false);
                    jButtonCancelar.setEnabled(false);
                    jButtonAtualizar.setEnabled(false);
                    jButtonExcluir.setEnabled(false);

                    jComboBoxFuncionario.setEnabled(false);
                    jFormattedTextFieldHoraEntrada.setEnabled(false);

                    jFormattedTextFieldHoraSaida.setEnabled(false);
                    jFormattedTextFieldHoraExtra.setEnabled(false);
                    jFormattedTextFieldData.setEnabled(false);
                    jTextAreaDescricao.setEnabled(false);

                    jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
                    jFormattedTextFieldHoraEntrada.setText("");

                    jFormattedTextFieldHoraSaida.setText("");
                    jFormattedTextFieldHoraExtra.setText("");
                    jFormattedTextFieldData.setText("");
                    jTextAreaDescricao.setText("");

                    //========================
                    //--Tabela
                    this.tabelaControle = new TableModelControle();
                    this.jTable1.setModel(tabelaControle);

                } else {

                    JOptionPane.showMessageDialog(null, "Em Desenvolvimento.", "Ateno",
                            JOptionPane.ERROR_MESSAGE);

                    jButtonAdicionar.setEnabled(true);
                    jButtonConfirmar.setEnabled(false);
                    jButtonCancelar.setEnabled(false);
                    jButtonAtualizar.setEnabled(false);
                    jButtonExcluir.setEnabled(false);

                    jComboBoxFuncionario.setEnabled(false);
                    jFormattedTextFieldHoraEntrada.setEnabled(false);

                    jFormattedTextFieldHoraSaida.setEnabled(false);
                    jFormattedTextFieldHoraExtra.setEnabled(false);
                    jFormattedTextFieldData.setEnabled(false);
                    jTextAreaDescricao.setEnabled(false);

                    jComboBoxFuncionario.setSelectedItem("Selecione um funcionrio");
                    jFormattedTextFieldHoraEntrada.setText("");

                    jFormattedTextFieldHoraSaida.setText("");
                    jFormattedTextFieldHoraExtra.setText("");
                    jFormattedTextFieldData.setText("");
                    jTextAreaDescricao.setText("");
                }

            } catch (Exception e) {
            }
        }

    }//GEN-LAST:event_jButtonAtualizarActionPerformed

    private void jButtonExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExcluirActionPerformed
        // TODO add your handling code here:

        JOptionPane.showMessageDialog(null, "Em Desenvolvimento.", "Ateno", JOptionPane.ERROR_MESSAGE);

    }//GEN-LAST:event_jButtonExcluirActionPerformed

    private void jFormattedTextFieldHoraEntradaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jFormattedTextFieldHoraEntradaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jFormattedTextFieldHoraEntradaActionPerformed

    private void jFormattedTextFieldHoraSaidaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jFormattedTextFieldHoraSaidaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jFormattedTextFieldHoraSaidaActionPerformed

    private void jFormattedTextFieldHoraExtraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jFormattedTextFieldHoraExtraActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jFormattedTextFieldHoraExtraActionPerformed

    private void preencheComboboxFuncionario() {

        FuncionarioDAO dao = new FuncionarioDAO();

        List<Funcionario> listaFuncionario = dao.listaFuncionario();

        listaFuncionario.forEach((func) -> {
            jComboBoxFuncionario.addItem(func);
        });

    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonAdicionar;
    private javax.swing.JButton jButtonAtualizar;
    private javax.swing.JButton jButtonCancelar;
    private javax.swing.JButton jButtonCodigoPesquisa;
    private javax.swing.JButton jButtonConfirmar;
    private javax.swing.JButton jButtonDataPesquisa;
    private javax.swing.JButton jButtonExcluir;
    private javax.swing.JComboBox jComboBoxFuncionario;
    private com.toedter.calendar.JDateChooser jDateChooserDataPesquisa;
    private javax.swing.JFormattedTextField jFormattedTextFieldData;
    private javax.swing.JFormattedTextField jFormattedTextFieldHoraEntrada;
    private javax.swing.JFormattedTextField jFormattedTextFieldHoraExtra;
    private javax.swing.JFormattedTextField jFormattedTextFieldHoraSaida;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabelCodigoPesquisa;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextArea jTextAreaDescricao;
    private javax.swing.JTextField jTextFieldCodigoPesquisa;
    private javax.swing.JTextField jTextFieldStatus;
    // End of variables declaration//GEN-END:variables
}