/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 

package gestor.utiles;

import java.util.regex.*;

public class DlgPeticionHora extends javax.swing.JDialog {

    Pattern regHora = Pattern.compile("([0-9]{1,2}):([0-9]{1,2})");
    public String resultado = null;

    public DlgPeticionHora(java.awt.Frame parent) {
        super(parent, true);
        initComponents();
        rootPane.setDefaultButton(btAceptar);
        setSize(360, 125);
        setLocationRelativeTo(parent);
    }

    void pulsadoAceptar() {
        if (!verificar()) {
            edText.requestFocus();
        } else {
            resultado = edText.getText().trim();
            setVisible(false);
        }
    }

    void pulsadoCancelar() {
        setVisible(false);
    }

    public boolean verificar() {
        Matcher match = regHora.matcher(edText.getText().trim());
        if (!match.matches()) {
            return false;
        }
        int hora = Integer.parseInt(match.group(1));
        if (hora > 23) {
            return false;
        }
        int minutos = Integer.parseInt(match.group(2));
        return minutos <= 59;
    }

    /**
     * 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() {
        edText = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        btAceptar = new javax.swing.JButton();
        btCancelar = new javax.swing.JButton();

        getContentPane().setLayout(null);

        setTitle("Introducci\u00f3n manual  Hora de Cita");
        setModal(true);
        setResizable(false);
        edText.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                edTextKeyTyped(evt);
            }
        });

        getContentPane().add(edText);
        edText.setBounds(160, 16, 167, 25);

        jLabel1.setText("Introduzca hora (HH:MM):");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(28, 20, 136, 19);

        btAceptar.setText("Aceptar");
        btAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAceptarActionPerformed(evt);
            }
        });

        getContentPane().add(btAceptar);
        btAceptar.setBounds(52, 60, 112, 30);

        btCancelar.setText("Cancelar");
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });

        getContentPane().add(btCancelar);
        btCancelar.setBounds(192, 60, 108, 31);

        pack();
    }// </editor-fold>//GEN-END:initComponents
    private void edTextKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_edTextKeyTyped
        if (evt.getKeyChar() == '.') {
            evt.setKeyChar(':');
        }
    }//GEN-LAST:event_edTextKeyTyped

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        pulsadoCancelar();
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAceptarActionPerformed
        pulsadoAceptar();
    }//GEN-LAST:event_btAceptarActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAceptar;
    private javax.swing.JButton btCancelar;
    private javax.swing.JTextField edText;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration//GEN-END:variables
}
