/* 
* 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;

import gestor.utiles.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.TextAttribute;
import java.util.Map;
import javax.swing.*;

public class DlgTecladoVirtual extends javax.swing.JDialog implements ISmartCardAvisable {

    Configuracion conf;
    boolean botonesCreados = false;
    boolean focoEnNif = true;
    public String nifTecleado = null;
    public String apellidoTecleado = null;
    boolean necesitaApllido = false;
    javax.swing.Timer timerCierreVentana;
    ValidaNif valNif = new ValidaNif();
    String[] txtBotones = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "\u25c4", "No Nif"};
    public PanelTactil padre;

    public boolean dnie = false;

    public DlgTecladoVirtual(PanelTactil padre) {
        super(padre, true);
        this.padre = padre;
        conf = Configuracion.instanciaUnica();
        initComponents();
        Font font = lbNif.getFont();
        Map attributes = font.getAttributes();
        attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
        lbNif.setFont(font.deriveFont(attributes));

        clear();

        PercentLayout pcly = new PercentLayout(PercentLayout.VERTICAL, 0);
        pcly.addLayoutComponent(panelEditores, "28%");
        pcly.addLayoutComponent(panelTeclado, "56%");
        pcly.addLayoutComponent(panelBotones, "16%");
        getContentPane().setLayout(pcly);

        PercentLayout pcly2 = new PercentLayout(PercentLayout.VERTICAL, 0);
        pcly2.addLayoutComponent(panelL1, "40%");
        pcly2.addLayoutComponent(panelL2, "30%");
        pcly2.addLayoutComponent(panelL3, "30%");
        panelEditores.setLayout(pcly2);

        if (Global.mainForm.lectorSC.hayTarjetaPresente()) {
            LectorSmartCard.DatosDNIe datos = Global.mainForm.lectorSC.leerDNIe();
            edNif.setText(datos.nif);
            edApellido.setText(datos.nombre);
            this.padre.haUsadoDNIe = true;
            this.repaint();
        }
        preparaTimerCierre();
    }

    @Override
    public void avisoSmartCardInsertada(String nif, String nombre) {
        try {
//         edNif.setText(nif);
//         edApellido.setText(nombre);
//         dnie = true;
//         pulsadoAceptar();
        } catch (Exception exc) {
            // por ahora, no queremos ningun tratamiento para esta excepcion.
            // Simplemente, no hacemos nada
        }
    }

    @Override
    public void avisoSmartCardExtraida() {
    }

    void preparaTimerCierre() {
        timerCierreVentana = new javax.swing.Timer(Configuracion.instanciaUnica().segundosCierreVentanas * 1000, new java.awt.event.ActionListener() {

            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pulsadoCancelar();
            }
        });
    }

    public void setNecesitaApellido(boolean valor) {
        if (!conf.usarApellidos) {
            necesitaApllido = false;
            edApellido.setEnabled(false);
            lbApellido.setEnabled(false);
            edApellido.setVisible(false);
            lbApellido.setVisible(false);
            return;
        }
        necesitaApllido = valor;
        edApellido.setEnabled(valor);
        lbApellido.setEnabled(valor);
    }

    public void clear() {
        edNif.setText("");
        if (!conf.usarApellidos) {
            edApellido.setEnabled(false);

            lbApellido.setEnabled(false);
            edApellido.setText("");
            edApellido.setVisible(false);
            lbApellido.setEnabled(false);
            lbApellido.setVisible(false);
        } else {

            edApellido.setEnabled(true);
            lbApellido.setEnabled(true);
            edApellido.setText("");
        }
        nifTecleado = null;
        apellidoTecleado = null;

        lbNifErroneo.setVisible(false);
        lbNombreErroneo.setVisible(false);
    }

    void ajustarPanelEditores() {
        int anchoPanel = panelL2.getWidth();
        int pos1 = anchoPanel / 2;
        int pos2 = pos1 + anchoPanel / 4;
        int alto = panelL2.getHeight();
        int posYEditores = (alto - 45) / 2;

        //lbIconoDNIe.setEnabled(false);
        //Dimension dimLogoDnie = new Dimension(0, 0);
        // if(Global.versionSO() > 5) {
        //dimLogoDnie = Global.panel.LogoDnieSize();
        //Point locLogoDnie = Global.panel.LogoDniePosicion();
        //lbIconoDNIe.setSize(dimLogoDnie);
        //lbIconoDNIe.setLocation(locLogoDnie);
//         if (conf.usarBotonDNI) {
//         try {
//            ResizedGif icon = new ResizedGif(getClass().getResource("/recursos/dnieAnimado.gif"));
//            icon.setSize(dimLogoDnie);
//            lbIconoDNIe.setIcon(icon);
//           lbIconoDNIe.setEnabled(true);
//         } catch(Exception exc) {}
        //} else {
        //   panelL1.remove(lbIconoDNIe);
        // }
        //int anchoPantalla = Toolkit.getDefaultToolkit().getScreenSize().width;
        //   }
        int anchoRotulo = anchoPanel; // - dimLogoDnie.width;
        lbRotulo.setSize(anchoRotulo, panelL1.getHeight());
        lbRotulo.setLocation(0, 0);

        lbApellido.setLocation(0, 0);
        lbApellido.setSize(pos1, alto);
        lbNif.setLocation(0, 0);
        lbNif.setSize(pos1, alto);

        edNif.setLocation(pos1, posYEditores);
        edNif.setSize(anchoPanel / 4, 45);
        edApellido.setLocation(pos1, posYEditores);
        edApellido.setSize(anchoPanel / 4, 45);

        lbNifErroneo.setSize(anchoPanel - pos2, alto);
        lbNifErroneo.setLocation(pos2, 0);
        lbNombreErroneo.setSize(anchoPanel - pos2, alto);
        lbNombreErroneo.setLocation(pos2, 0);

        lbNifErroneo.setVisible(false);
        lbNombreErroneo.setVisible(false);

    }

    void ajustarPanelTeclado() {
        Font fuenteBoton = new java.awt.Font("Arial", 3, 36);
        Font fuenteBoton2 = new java.awt.Font("Arial", 3, 16);
        int anchoPanel = this.panelTeclado.getWidth();
        int anchoCelda = anchoPanel / 10;
        int altoCelda = anchoCelda;
        int posX = 0;
        if (anchoCelda * 4 > panelTeclado.getHeight()) {
            altoCelda = panelTeclado.getHeight() / 4;
        }
        int anchoBoton = (anchoCelda * 4) / 5;
        int altoBoton = (altoCelda * 4) / 5;
        int posY = 20;
        for (int f = 0; f < 4; f++) {
            posX = anchoBoton / 8;
            int numBotones = 10;
            if (f == 3) {
                posX += anchoCelda / 2;
                numBotones = 9;
            }
            for (int c = 0; c < numBotones; c++) {
                JButton boton = new JButton();
                boton.setText(txtBotones[f * 10 + c]);
                if (txtBotones[f * 10 + c].equalsIgnoreCase("No Nif")) {
                    boton.setFont(fuenteBoton2);
                    boton.setToolTipText("<html>Si es un documento distinto de Identificación fiscal.<br /> Primer  dígito <b> '#' <br />Obligatorio 9 caracteres</b>");
                    boton.setForeground(Color.red);
                    if (conf.permitirNoIden == false) {
                        boton.setEnabled(false);
                    }
                } else {
                    boton.setFont(fuenteBoton);
                }
                boton.setFocusable(false);
                boton.addActionListener(botonPulsado);
                panelTeclado.add(boton);
                boton.setSize(anchoBoton, altoBoton);
                boton.setLocation(posX, posY);
                posX += anchoCelda;
            }
            posY += altoCelda;
        }

        botonesCreados = true;
    }

    void cargarValorTecla(String v) {
        if (focoEnNif) {
            if (edNif.getText().trim().length() < 14) {
                edNif.setText(edNif.getText() + v);
            }
//         if (edNif.getText().length() == 0) {
//            edNif.setText(v);
//            return;
//         }
//         if (v.equals("#")) return;
//          if (edNif.getText().length() == 15 && (edNif.getText().startsWith("#")))
//         {
//            completaYValidaNif(v);
//            return;
//         }
//         if (edNif.getText().length() < 15 && (edNif.getText().startsWith("#")))
//         {
//            edNif.setText(edNif.getText().trim()+v);
//            return;
//         }
//
//         if (edNif.getText().length() < 9) {
//            completaYValidaNif(v);
//         }
        } else {
            if (edApellido.getText().trim().length() < 40) {
                edApellido.setText(edApellido.getText() + v);
            }
        }
    }

    void teclaBorrar() {
        JTextField editor;
        if (focoEnNif) {
            editor = edNif;
        } else {
            editor = edApellido;
        }
        String texto = editor.getText();
        if (texto.length() > 0) {
            editor.setText(texto.substring(0, texto.length() - 1));
        }
    }

    void completaYValidaNif(String v) {
        String nif = edNif.getText();
        nif += v;

        if (validaNif(nif)) {
            //  edNif.setText(formatoNif(nif));
            edNif.setText(nif);
            //  edApellido.requestFocus();
            if (!conf.usarApellidos) {
                this.btAceptar.setFocusable(true); //
                this.btAceptar.requestFocus(true);

            } else {
                edApellido.requestFocus();

            }

        } else {
            edNif.setText(nif);
        }
    }

    public String formatoNif(String nif) {
        return nif;
    }

    boolean validaNif(String nif) {
        return valNif.checkNif(nif);
    }

    boolean validaNombre(String nombre) {
        if (!conf.usarApellidos) {
            return true;

        }
        if (necesitaApllido) {
            return nombre != null && nombre.trim().length() >= 3;
        }
        return true;
    }

    ActionListener botonPulsado = new java.awt.event.ActionListener() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            JButton boton = (JButton) evt.getSource();
            String v = boton.getText();
            if (v.equals("No Nif")) {
                procesoNoNif();
                return;
            }
            if (v.equals("\u25c4")) {
                teclaBorrar();
            } else {
                cargarValorTecla(v);
            }
            lbNifErroneo.setVisible(false);
            timerCierreVentana.restart();
        }
    };

    void procesoNoNif() {
        String valor = edNif.getText();
        if (edNif.getText().startsWith("#")) {
            return;
        }
        edNif.setText("#" + valor);
        lbNifErroneo.setVisible(false);
    }

    void pulsadoAceptar() {

        if (edNif.getText().startsWith("#") && conf.permitirNoIden == false) {
            edNif.requestFocus();
            ponerFocoEnNif(true);
            java.awt.Toolkit.getDefaultToolkit().beep();
            lbNifErroneo.setVisible(true);
            return;
        }
        if (edNif.getText().startsWith("#") && edNif.getText().length() < 9) {
            mostrarAyudaNif();
            edNif.requestFocus();
            return;
        }
        if (!validaNif(edNif.getText())) {
            edNif.requestFocus();
            ponerFocoEnNif(true);
            java.awt.Toolkit.getDefaultToolkit().beep();
            lbNifErroneo.setVisible(true);
            return;
        }
        if (!validaNombre(edApellido.getText())) {
            edApellido.requestFocus();
            ponerFocoEnNif(false);
            java.awt.Toolkit.getDefaultToolkit().beep();
            lbNombreErroneo.setVisible(true);
            return;
        }
        nifTecleado = edNif.getText().trim();
        apellidoTecleado = edApellido.getText().trim();
        cerrar();
    }

    void pulsadoCancelar() {
        cerrar();
    }

    void cerrar() {
        timerCierreVentana.stop();
        Global.mainForm.lectorSC.registrarVentanaAvisable(null);
        setVisible(false);
    }

    void teclaRealPulsada(java.awt.event.KeyEvent evt) {

        char k = evt.getKeyChar();
        if (k == '\b') {
            teclaBorrar();
        } else if (Character.isDigit(k) || Character.isLetter(k)) {
            String t = "" + evt.getKeyChar();
            cargarValorTecla(t.toUpperCase());
        }
        evt.consume();
        lbNifErroneo.setVisible(false);
        lbNombreErroneo.setVisible(false);
        timerCierreVentana.restart();
    }

    void ponerFocoEnNif(boolean poner) {
        if (poner) {
            lbNif.setForeground(Color.RED);
            lbApellido.setForeground(Color.BLACK);
        } else {
            lbNif.setForeground(Color.BLACK);
            lbApellido.setForeground(Color.RED);
        }
        focoEnNif = poner;
    }

    void mostrarAyudaNif() {
        DlgOtrosNif dlgnif = new DlgOtrosNif(null);
        dlgnif.setVisible(true);
        dlgnif.dispose();
        dlgnif = null;
        timerCierreVentana.restart();

    }

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

        panelEditores = new MiPanel();
        panelL1 = new javax.swing.JPanel();
        lbRotulo = new gestor.utiles.SmoothLabel();
        lbIconoDNIe = new javax.swing.JLabel();
        panelL2 = new javax.swing.JPanel();
        lbNif = new gestor.utiles.SmoothLabel();
        edNif = new javax.swing.JTextField();
        lbNifErroneo = new gestor.utiles.SmoothLabel();
        panelL3 = new javax.swing.JPanel();
        lbApellido = new gestor.utiles.SmoothLabel();
        edApellido = new javax.swing.JTextField();
        lbNombreErroneo = new gestor.utiles.SmoothLabel();
        panelTeclado = new MiPanel();
        panelBotones = new MiPanel();
        btCancelar = new javax.swing.JButton();
        btAceptar = new javax.swing.JButton();

        setBackground(conf.colorPanel);
        setUndecorated(true);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowActivated(java.awt.event.WindowEvent evt) {
                formWindowActivated(evt);
            }
        });
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                formComponentShown(evt);
            }
        });
        getContentPane().setLayout(null);

        panelEditores.setOpaque(false);
        panelEditores.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panelEditoresMouseClicked(evt);
            }
        });
        panelEditores.setLayout(null);

        panelL1.setOpaque(false);
        panelL1.setLayout(null);

        lbRotulo.setFont(new java.awt.Font("Microsoft Sans Serif", 3, 30)); // NOI18N
        lbRotulo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbRotulo.setText(Global.trad.valor("TicketRequiereIdentificacion"));
        lbRotulo.setMaximumSize(new java.awt.Dimension(2000, 200));
        lbRotulo.setPreferredSize(new java.awt.Dimension(2000, 200));
        panelL1.add(lbRotulo);
        lbRotulo.setBounds(-10, 10, 440, 40);

        lbIconoDNIe.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        lbIconoDNIe.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        lbIconoDNIe.setFocusable(false);
        lbIconoDNIe.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
        lbIconoDNIe.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                lbIconoDNIelbDniePresionada(evt);
            }
        });
        panelL1.add(lbIconoDNIe);
        lbIconoDNIe.setBounds(1054, 11, 68, 48);

        panelEditores.add(panelL1);
        panelL1.setBounds(10, 10, 790, 50);

        panelL2.setOpaque(false);
        panelL2.setLayout(null);

        lbNif.setFont(new java.awt.Font("Microsoft Sans Serif", 3, 30)); // NOI18N
        lbNif.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNif.setText(Global.trad.valor("IntroduzcaNifPassaporte"));
        lbNif.setToolTipText("<html>Si es un documento distinto de Identificación fiscal.<br /> Primer  dígito <b> '#' <br />Obligatorio 9 caracteres</b>");
        lbNif.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                lbNifMouseClicked(evt);
            }
        });
        panelL2.add(lbNif);
        lbNif.setBounds(10, 10, 420, 40);

        edNif.setColumns(14);
        edNif.setFont(new java.awt.Font("Microsoft Sans Serif", 1, 36)); // NOI18N
        edNif.setToolTipText("<html>Si es un documento distinto de Identificación fiscal.<br /> Primer  dígito <b> '#' <br />Obligatorio 9 caracteres</b>");
        edNif.setMargin(new java.awt.Insets(1, 6, 1, 1));
        edNif.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                edNifMouseClicked(evt);
            }
        });
        edNif.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                edNifFocusGained(evt);
            }
        });
        edNif.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                edNifKeyTyped(evt);
            }
        });
        panelL2.add(edNif);
        edNif.setBounds(390, 10, 360, 46);

        lbNifErroneo.setFont(new java.awt.Font("Microsoft Sans Serif", 3, 30)); // NOI18N
        lbNifErroneo.setForeground(new java.awt.Color(255, 0, 0));
        lbNifErroneo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNifErroneo.setText("Error Ident. Fiscal.");
        lbNifErroneo.setToolTipText("");
        panelL2.add(lbNifErroneo);
        lbNifErroneo.setBounds(750, 10, 290, 50);

        panelEditores.add(panelL2);
        panelL2.setBounds(0, 60, 1100, 80);

        panelL3.setOpaque(false);
        panelL3.setLayout(null);

        lbApellido.setFont(new java.awt.Font("Microsoft Sans Serif", 3, 30)); // NOI18N
        lbApellido.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbApellido.setText(Global.trad.valor("IntroduzcaApellido"));
        panelL3.add(lbApellido);
        lbApellido.setBounds(0, 10, 430, 35);

        edApellido.setColumns(4);
        edApellido.setFont(new java.awt.Font("Microsoft Sans Serif", 1, 36)); // NOI18N
        edApellido.setMargin(new java.awt.Insets(1, 6, 1, 1));
        edApellido.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                edApellidoMouseClicked(evt);
            }
        });
        edApellido.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                edApellidoFocusGained(evt);
            }
        });
        edApellido.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                edApellidoKeyTyped(evt);
            }
        });
        panelL3.add(edApellido);
        edApellido.setBounds(390, 0, 360, 46);

        lbNombreErroneo.setFont(new java.awt.Font("Microsoft Sans Serif", 3, 30)); // NOI18N
        lbNombreErroneo.setForeground(new java.awt.Color(255, 0, 0));
        lbNombreErroneo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNombreErroneo.setText("Apellido erróneo");
        panelL3.add(lbNombreErroneo);
        lbNombreErroneo.setBounds(750, 0, 340, 40);

        panelEditores.add(panelL3);
        panelL3.setBounds(0, 130, 1100, 70);

        getContentPane().add(panelEditores);
        panelEditores.setBounds(0, 0, 1110, 240);

        panelTeclado.setOpaque(false);
        panelTeclado.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panelTecladoMouseClicked(evt);
            }
        });
        panelTeclado.setLayout(null);
        getContentPane().add(panelTeclado);
        panelTeclado.setBounds(0, 0, 0, 10);

        panelBotones.setOpaque(false);

        btCancelar.setFont(new java.awt.Font("Microsoft Sans Serif", 1, 30)); // NOI18N
        btCancelar.setText(Global.trad.valor("Cancelar"));
        btCancelar.setFocusable(false);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });

        btAceptar.setFont(new java.awt.Font("Microsoft Sans Serif", 1, 30)); // NOI18N
        btAceptar.setText(Global.trad.valor("Aceptar"));
        btAceptar.setFocusable(false);
        btAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAceptarActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout panelBotonesLayout = new org.jdesktop.layout.GroupLayout(panelBotones);
        panelBotones.setLayout(panelBotonesLayout);
        panelBotonesLayout.setHorizontalGroup(
            panelBotonesLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(panelBotonesLayout.createSequentialGroup()
                .add(140, 140, 140)
                .add(btAceptar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 279, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 199, Short.MAX_VALUE)
                .add(btCancelar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 293, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(147, 147, 147))
        );
        panelBotonesLayout.setVerticalGroup(
            panelBotonesLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, panelBotonesLayout.createSequentialGroup()
                .add(30, 30, 30)
                .add(panelBotonesLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(btAceptar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE)
                    .add(btCancelar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))
                .addContainerGap())
        );

        getContentPane().add(panelBotones);
        panelBotones.setBounds(10, 450, 1058, 139);

        pack();
    }// </editor-fold>//GEN-END:initComponents
    private void edApellidoFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_edApellidoFocusGained
        ponerFocoEnNif(false);
    }//GEN-LAST:event_edApellidoFocusGained

    private void panelEditoresMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panelEditoresMouseClicked
        timerCierreVentana.restart();
    }//GEN-LAST:event_panelEditoresMouseClicked

    private void panelTecladoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panelTecladoMouseClicked
        timerCierreVentana.restart();
    }//GEN-LAST:event_panelTecladoMouseClicked

    private void edApellidoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_edApellidoMouseClicked
        timerCierreVentana.restart();
    }//GEN-LAST:event_edApellidoMouseClicked

    private void edNifMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_edNifMouseClicked
        timerCierreVentana.restart();
    }//GEN-LAST:event_edNifMouseClicked

    private void edApellidoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_edApellidoKeyTyped
        teclaRealPulsada(evt);
    }//GEN-LAST:event_edApellidoKeyTyped

    private void edNifKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_edNifKeyTyped
        teclaRealPulsada(evt);
    }//GEN-LAST:event_edNifKeyTyped

    private void edNifFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_edNifFocusGained
        ponerFocoEnNif(true);
    }//GEN-LAST:event_edNifFocusGained

    private void btAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAceptarActionPerformed
        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        pulsadoAceptar();
        setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));

    }//GEN-LAST:event_btAceptarActionPerformed

    private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
        if (!botonesCreados) {
            ajustarPanelTeclado();
            ajustarPanelEditores();
        }
        edNif.requestFocus();
        ponerFocoEnNif(true);
        timerCierreVentana.start();
        Global.mainForm.desactivarSalvaPantalla();
    }//GEN-LAST:event_formComponentShown

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

    private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
        Global.mainForm.lectorSC.registrarVentanaAvisable(this);
    }//GEN-LAST:event_formWindowActivated

    private void lbIconoDNIelbDniePresionada(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lbIconoDNIelbDniePresionada
       //Global.panel.mostrarAyudaDNIe();
}//GEN-LAST:event_lbIconoDNIelbDniePresionada

    private void lbNifMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lbNifMouseClicked
        // TODO add your handling code here:
        mostrarAyudaNif();
    }//GEN-LAST:event_lbNifMouseClicked

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAceptar;
    private javax.swing.JButton btCancelar;
    private javax.swing.JTextField edApellido;
    private javax.swing.JTextField edNif;
    private javax.swing.JLabel lbApellido;
    private javax.swing.JLabel lbIconoDNIe;
    private javax.swing.JLabel lbNif;
    private javax.swing.JLabel lbNifErroneo;
    private javax.swing.JLabel lbNombreErroneo;
    private javax.swing.JLabel lbRotulo;
    private javax.swing.JPanel panelBotones;
    private javax.swing.JPanel panelEditores;
    private javax.swing.JPanel panelL1;
    private javax.swing.JPanel panelL2;
    private javax.swing.JPanel panelL3;
    private javax.swing.JPanel panelTeclado;
    // End of variables declaration//GEN-END:variables
}
