// Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov  Date: 08/10/2012 8:47:53
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   LeerXML.java

package project;

import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.InputStream;
import java.util.*;
import javax.swing.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
import traduccion.Traducir;

// Referenced classes of package project:
//            MensajeDeError, BotonCorrecto, EstructuraDeLosXMLs, AccederADatos, 
//            BotonSiguiente, EZIPImageLoader, ClasePantalla, LabelDeFondoDelFrame2, 
//            Application1, NumAlea, Caja, JLabel

public class LeerXML
{

    public LeerXML()
    {
        botonesCreados = false;
        arrayDeBotones = new Vector();
        punto1 = null;
        punto2 = null;
        laTeclaAPulsar = "";
        recogeLaTeclaAPulsar = "";
        estaAqui = 0;
        nTeclas = 0;
        numeroDeAreas = 0;
        listOfQuestions = null;
        listOfWays = null;
        acierto = 0;
        encontrado2 = 0;
        tipoPregunta = "";
        fichero = "";
        modificador = "";
        zip = "";
    }

    public void LeerXML2(int num, String fichero2, BotonSiguiente bSiguiente2)
    {
        modificador = "";
        bSiguiente = bSiguiente2;
        numero = num;
        try
        {
            if(fichero.compareToIgnoreCase(fichero2) != 0)
                listOfQuestions = seleccionarEstructura(fichero2).listOfQuestions1;
            fichero = fichero2;
            nextQuestion = (Element)listOfQuestions.item(numero);
            IDBuscado1 = nextQuestion.getAttribute("id");
            grado = nextQuestion.getAttribute("Grado");
            textoPregunta = nextQuestion.getAttribute(modificador + "Text");
            tipoPregunta = nextQuestion.getAttribute("type");
            primeraImagen = nextQuestion.getAttribute("Image1");
            updated = nextQuestion.getAttribute("updated");
            Area = nextQuestion.getAttribute("Area");
            fraseR = nextQuestion.getAttribute(modificador + "frase");
            respcorr = nextQuestion.getAttribute("correctas");
            zip = nextQuestion.getAttribute("Zip");
            encontrado2 = 1;
            estaAqui = numero;
            listOfWays = nextQuestion.getElementsByTagName("camino");
        }
        catch(Exception e)
        {
            e.printStackTrace();
            MensajeDeError mensaje = new MensajeDeError();
            mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301809", AccederADatos.idioma));
            mensaje = null;
            e.printStackTrace();
        }
    }

    public void cargarCoordenadasEImagen(int num, int niv, int pulsx2, int pulsy2, String tecla2, Icon icono2)
    {
        int encontrado = 0;
        acierto = 0;
        laTeclaAPulsar = "";
        recogeLaTeclaAPulsar = "";
        icono = icono2;
        tecla = tecla2;
        pulsx = pulsx2;
        pulsy = pulsy2;
        numero = num;
        nivel = niv;
        Imagen = null;
        try
        {
            IDBuscado2 = String.valueOf(nivel);
            String S_tecla = String.valueOf(tecla);
            for(int i = 0; i < listOfWays.getLength() && encontrado != 1; i++)
            {
                nextQuestion = (Element)listOfWays.item(i);
                if(tipoPregunta.equals("B"))
                {
                    if(!IDBuscado1.equals(nextQuestion.getAttribute("id")) || !IDBuscado2.equals(nextQuestion.getAttribute("nivel")))
                        continue;
                    String hola = nextQuestion.getAttribute("Image1");
                    Icon ic2 = null;
                    try
                    {
                        if(hola.startsWith("Imagen"))
                            ic2 = new ImageIcon((project.Frame1.class).getResource(hola));
                        else
                        if(!AccederADatos.entraComoApplet)
                        {
                            File ficheroACargar = new File(System.getProperties().getProperty("user.dir") + "/java/updates/" + zip);
                            String imagenesABuscar[] = {
                                hola
                            };
                            ImageIcon images[] = bSiguiente.eZIPImageLoader.getPicturesFromZIP(ficheroACargar, imagenesABuscar);
                            ic2 = images[0];
                        }
                    }
                    catch(Exception e)
                    {
                        e.printStackTrace();
                        MensajeDeError mensaje = new MensajeDeError();
                        mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301746", AccederADatos.idioma) + hola);
                        mensaje = null;
                    }
                    String uno = icono.toString();
                    String dos = ic2.toString();
                    if(dos.endsWith(uno) && pulsx > quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxp")), 8) && pulsx < quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxg")), 8) && pulsy > quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyp")), 3) && pulsy < quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyg")), 3))
                    {
                        encontrado = 1;
                        Ultima = nextQuestion.getAttribute("Ultimo");
                        Imagen = nextQuestion.getAttribute("Imagen");
                        acierto = 1;
                    } else
                    {
                        acierto = 0;
                    }
                    continue;
                }
                if(tipoPregunta.equals("BT"))
                {
                    if(!IDBuscado1.equals(nextQuestion.getAttribute("id")) || !IDBuscado2.equals(nextQuestion.getAttribute("nivel")))
                        continue;
                    String hola = nextQuestion.getAttribute("Image1");
                    Icon ic2 = null;
                    try
                    {
                        if(hola.startsWith("Imagen"))
                            ic2 = new ImageIcon((project.Frame1.class).getResource(hola));
                        else
                        if(!AccederADatos.entraComoApplet)
                        {
                            File ficheroACargar = new File(System.getProperties().getProperty("user.dir") + "/java/updates/" + zip);
                            String imagenesABuscar[] = {
                                hola
                            };
                            ImageIcon images[] = bSiguiente.eZIPImageLoader.getPicturesFromZIP(ficheroACargar, imagenesABuscar);
                            ic2 = images[0];
                        }
                    }
                    catch(Exception e)
                    {
                        e.printStackTrace();
                        MensajeDeError mensaje = new MensajeDeError();
                        mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301746", AccederADatos.idioma) + hola);
                        mensaje = null;
                    }
                    String uno = icono.toString();
                    String dos = ic2.toString();
                    if(dos.endsWith(uno) && String.valueOf("").compareTo(nextQuestion.getAttribute("Teclas")) != 0)
                        if(recogeLaTeclaAPulsar.compareToIgnoreCase("") == 0)
                        {
                            laTeclaAPulsar = nextQuestion.getAttribute("Teclas");
                            if(laTeclaAPulsar.indexOf(",") == -1)
                                recogeLaTeclaAPulsar = "\"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.length() - 1))) + "\"";
                            else
                            if(laTeclaAPulsar.indexOf(",") == laTeclaAPulsar.lastIndexOf(","))
                                recogeLaTeclaAPulsar = "\"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.indexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.indexOf(",") + 1, laTeclaAPulsar.length() - 1))) + "\"";
                            else
                            if(laTeclaAPulsar.indexOf(",") != laTeclaAPulsar.lastIndexOf(","))
                                recogeLaTeclaAPulsar = "\"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.indexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.indexOf(",") + 1, laTeclaAPulsar.lastIndexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.lastIndexOf(",") + 1, laTeclaAPulsar.length() - 1))) + "\"";
                        } else
                        {
                            laTeclaAPulsar = nextQuestion.getAttribute("Teclas");
                            if(laTeclaAPulsar.indexOf(",") == -1)
                                recogeLaTeclaAPulsar = recogeLaTeclaAPulsar + " o \"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.length() - 1))) + "\"";
                            else
                            if(laTeclaAPulsar.indexOf(",") == laTeclaAPulsar.lastIndexOf(","))
                                recogeLaTeclaAPulsar = recogeLaTeclaAPulsar + " o \"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.indexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.indexOf(",") + 1, laTeclaAPulsar.length() - 1))) + "\"";
                            else
                            if(laTeclaAPulsar.indexOf(",") != laTeclaAPulsar.lastIndexOf(","))
                                recogeLaTeclaAPulsar = recogeLaTeclaAPulsar + " o \"" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(1, laTeclaAPulsar.indexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.indexOf(",") + 1, laTeclaAPulsar.lastIndexOf(",")))) + "+" + KeyEvent.getKeyText(Integer.parseInt(laTeclaAPulsar.substring(laTeclaAPulsar.lastIndexOf(",") + 1, laTeclaAPulsar.length() - 1))) + "\"";
                        }
                    if(dos.endsWith(uno) && S_tecla.compareTo("(nada)") == 0 && pulsx > quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxp")), 8) && pulsx < quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxg")), 8) && pulsy > quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyp")), 3) && pulsy < quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyg")), 3))
                    {
                        encontrado = 1;
                        Ultima = nextQuestion.getAttribute("Ultimo");
                        Imagen = nextQuestion.getAttribute("Imagen");
                        acierto = 1;
                        continue;
                    }
                    if(dos.endsWith(uno) && S_tecla.compareTo(nextQuestion.getAttribute("Teclas")) == 0)
                    {
                        encontrado = 1;
                        Ultima = nextQuestion.getAttribute("Ultimo");
                        Imagen = nextQuestion.getAttribute("Imagen");
                        acierto = 1;
                    }
                    continue;
                }
                if(tipoPregunta.equals("C"))
                {
                    if(IDBuscado1.equals(nextQuestion.getAttribute("id")))
                    {
                        primeraImagen = nextQuestion.getAttribute("Image1");
                        textoRespuesta1 = nextQuestion.getAttribute(modificador + "resp1");
                        textoRespuesta2 = nextQuestion.getAttribute(modificador + "resp2");
                        textoRespuesta3 = nextQuestion.getAttribute(modificador + "resp3");
                        textoRespuesta4 = nextQuestion.getAttribute(modificador + "resp4");
                        respcorr = nextQuestion.getAttribute("correctas");
                        encontrado = 1;
                        acierto = 1;
                    }
                    continue;
                }
                if(tipoPregunta.equals("R"))
                {
                    if(IDBuscado1.equals(nextQuestion.getAttribute("id")))
                    {
                        primeraImagen = nextQuestion.getAttribute("Image1");
                        textoRespuesta1 = nextQuestion.getAttribute(modificador + "resp1");
                        textoRespuesta2 = nextQuestion.getAttribute(modificador + "resp2");
                        textoRespuesta3 = nextQuestion.getAttribute(modificador + "resp3");
                        textoRespuesta4 = nextQuestion.getAttribute(modificador + "resp4");
                        textoRespuesta5 = nextQuestion.getAttribute(modificador + "resp5");
                        textoRespuesta6 = nextQuestion.getAttribute(modificador + "resp6");
                        textoRespuesta7 = nextQuestion.getAttribute(modificador + "resp7");
                        textoRespuesta8 = nextQuestion.getAttribute(modificador + "resp8");
                        respcorr = nextQuestion.getAttribute("correctas");
                        encontrado = 1;
                        acierto = 1;
                    }
                    continue;
                }
                if(tipoPregunta.equals("I"))
                {
                    if(IDBuscado1.equals(nextQuestion.getAttribute("id")))
                    {
                        Imagen = ClasePantalla.StringImagenDefecto;
                        textoRespuesta1 = nextQuestion.getAttribute(modificador + "resp1");
                        textoRespuesta2 = nextQuestion.getAttribute(modificador + "resp2");
                        textoRespuesta3 = nextQuestion.getAttribute(modificador + "resp3");
                        textoRespuesta4 = nextQuestion.getAttribute(modificador + "resp4");
                        respcorr = nextQuestion.getAttribute("correctas");
                        encontrado = 1;
                        acierto = 1;
                    }
                    continue;
                }
                if(tipoPregunta.equals("G"))
                {
                    if(IDBuscado1.equals(nextQuestion.getAttribute("id")))
                    {
                        encontrado = 1;
                        acierto = 1;
                    }
                    continue;
                }
                if(tipoPregunta.equals("V") && IDBuscado1.equals(nextQuestion.getAttribute("id")))
                {
                    video = nextQuestion.getAttribute("video");
                    primeraImagen = nextQuestion.getAttribute("Image1");
                    textoRespuesta1 = nextQuestion.getAttribute(modificador + "resp1");
                    textoRespuesta2 = nextQuestion.getAttribute(modificador + "resp2");
                    textoRespuesta3 = nextQuestion.getAttribute(modificador + "resp3");
                    textoRespuesta4 = nextQuestion.getAttribute(modificador + "resp4");
                    respcorr = nextQuestion.getAttribute("correctas");
                    encontrado = 1;
                    acierto = 1;
                }
            }

            if(Imagen != null)
                try
                {
                    if(Imagen.startsWith("Imagen"))
                        icono = new ImageIcon((project.Frame1.class).getResource(Imagen));
                    else
                    if(!AccederADatos.entraComoApplet)
                    {
                        File ficheroACargar = new File(System.getProperties().getProperty("user.dir") + "/java/updates/" + zip);
                        String imagenesABuscar[] = {
                            Imagen
                        };
                        ImageIcon images[] = bSiguiente.eZIPImageLoader.getPicturesFromZIP(ficheroACargar, imagenesABuscar);
                        icono = images[0];
                    }
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                    MensajeDeError mensaje = new MensajeDeError();
                    mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301746", AccederADatos.idioma) + Imagen);
                    mensaje = null;
                }
        }
        catch(Exception e)
        {
            e.printStackTrace();
            MensajeDeError mensaje = new MensajeDeError();
            mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301809", AccederADatos.idioma));
            mensaje = null;
            e.printStackTrace();
        }
    }

    public String darTexto()
    {
        return textoPregunta;
    }

    public String darUltimo()
    {
        return Ultima;
    }

    public String darTipo()
    {
        return tipoPregunta;
    }

    public String darImagen()
    {
        return Imagen;
    }

    public String darImagenSinPath()
    {
        String imgSinPath = "";
        imgSinPath = Imagen.substring(Imagen.lastIndexOf('/') + 1);
        return imgSinPath;
    }

    public String darArea()
    {
        return Area;
    }

    public String darZip()
    {
        return zip;
    }

    public String darPrimeraImagen()
    {
        return primeraImagen;
    }

    public String darUpdated()
    {
        return updated;
    }

    public String darPrimeraImagenSinPath()
    {
        String primeraImgSinPath = "";
        primeraImgSinPath = primeraImagen.substring(primeraImagen.lastIndexOf('/') + 1);
        return primeraImgSinPath;
    }

    public void saberNumTeclas(int num, int niv, int pulsx2, int pulsy2)
    {
        pulsx = pulsx2;
        pulsy = pulsy2;
        numero = num;
        nivel = niv;
        int encontrado = 0;
        try
        {
            String IDBuscado2 = String.valueOf(nivel);
            String S_tecla = String.valueOf(tecla);
            for(int i = 0; i < listOfWays.getLength() && encontrado != 1; i++)
            {
                nextQuestion = (Element)listOfWays.item(i);
                if(IDBuscado1.equals(nextQuestion.getAttribute("id")) && IDBuscado2.equals(nextQuestion.getAttribute("nivel")) && pulsx == quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxp")), 8) && pulsx == quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxg")), 8) && pulsy == quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyp")), 3) && pulsy == quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyg")), 3))
                {
                    nTeclas = Integer.parseInt(nextQuestion.getAttribute("nTeclas"));
                    acierto = 1;
                    encontrado = 1;
                }
            }

        }
        catch(Exception e)
        {
            e.printStackTrace();
            MensajeDeError mensaje = new MensajeDeError();
            mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301809", AccederADatos.idioma));
            mensaje = null;
            e.printStackTrace();
        }
    }

    public String darPrimeraResp()
    {
        return textoRespuesta1;
    }

    public String darSegundaResp()
    {
        return textoRespuesta2;
    }

    public String darTerceraResp()
    {
        return textoRespuesta3;
    }

    public String darCuartaResp()
    {
        return textoRespuesta4;
    }

    public String darCorrecta()
    {
        return respcorr;
    }

    public EstructuraDeLosXMLs seleccionarEstructura(String fichero)
    {
        if(fichero.endsWith("tema1.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema1;
        if(fichero.endsWith("tema2.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema2;
        if(fichero.endsWith("tema3.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema3;
        if(fichero.endsWith("tema4.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema4;
        if(fichero.endsWith("tema5.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema5;
        if(fichero.endsWith("tema6.xml"))
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema6;
        else
            return bSiguiente.labelDeFondoDelFrame.application.estructuraDelTema7;
    }

    public void mostrarBotonCorrecta(JLabel pantalla)
    {
        for(int i = 0; i < listOfWays.getLength(); i++)
        {
            nextQuestion = (Element)listOfWays.item(i);
            if(botonesCreados || !tipoPregunta.equals("B") && !tipoPregunta.equals("BT") || !IDBuscado1.equals(nextQuestion.getAttribute("id")) || !IDBuscado2.equals(nextQuestion.getAttribute("nivel")))
                continue;
            String hola = nextQuestion.getAttribute("Image1");
            Icon ic2 = null;
            try
            {
                if(hola.startsWith("Imagen"))
                    ic2 = new ImageIcon((project.Frame1.class).getResource(hola));
                else
                if(!AccederADatos.entraComoApplet)
                {
                    File ficheroACargar = new File(System.getProperties().getProperty("user.dir") + "/java/updates/" + zip);
                    String imagenesABuscar[] = {
                        hola
                    };
                    ImageIcon images[] = bSiguiente.eZIPImageLoader.getPicturesFromZIP(ficheroACargar, imagenesABuscar);
                    ic2 = images[0];
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
                MensajeDeError mensaje = new MensajeDeError();
                mensaje.mensaje(true, Traducir.getTraduccion(AccederADatos.leer("h.proyecto"), "project.LeerXML", "200411301746", AccederADatos.idioma) + hola);
                mensaje = null;
            }
            String uno = icono.toString();
            String dos = ic2.toString();
            if(dos.endsWith(uno))
            {
                if(quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxp")), 8) != 0 && quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxg")), 8) != 0 && quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyp")), 3) != 0 && quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyg")), 3) != 0)
                {
                    punto1 = new Point(quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxp")), 8), quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyp")), 3));
                    punto2 = new Point(quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cxg")), 8), quitarAF1adido(Integer.parseInt(nextQuestion.getAttribute("cyg")), 3));
                    arrayDeBotones.add(new BotonCorrecto(punto1, punto2, this));
                }
            } else
            {
                punto1 = null;
                punto2 = null;
            }
        }

        for(Enumeration a = arrayDeBotones.elements(); a.hasMoreElements(); pantalla.add((BotonCorrecto)a.nextElement()));
        pantalla.repaint();
        botonesCreados = true;
    }

    public void borrarBotones()
    {
        BotonCorrecto boton;
        for(Enumeration a = arrayDeBotones.elements(); a.hasMoreElements(); boton.setVisible(false))
            boton = (BotonCorrecto)a.nextElement();

        arrayDeBotones.removeAllElements();
    }

    public int quitarAF1adido(int numero, int resta)
    {
        if(numero != 0)
            numero -= resta;
        return numero;
    }

    boolean botonesCreados;
    Vector arrayDeBotones;
    Point punto1;
    Point punto2;
    String laTeclaAPulsar;
    String recogeLaTeclaAPulsar;
    int estaAqui;
    Icon icono;
    String tecla;
    int nTeclas;
    int numeroDeAreas;
    int pulsx;
    int pulsy;
    int posXDelBoton;
    int posYDelBoton;
    int anchoDelBoton;
    int altoDelBoton;
    DocumentBuilderFactory m_dbf;
    DocumentBuilder db1;
    Document doc;
    NodeList listOfQuestions;
    NodeList listOfWays;
    Element nextQuestion;
    int numero;
    int nivel;
    int acierto;
    String fraseR;
    int encontrado2;
    String video;
    String textoRespuesta1;
    String textoRespuesta2;
    String textoRespuesta3;
    String textoRespuesta4;
    String textoRespuesta5;
    String textoRespuesta6;
    String textoRespuesta7;
    String textoRespuesta8;
    String respcorr;
    String textoPregunta;
    String tipoPregunta;
    String primeraImagen;
    String updated;
    String Imagen;
    String Ultima;
    String Area;
    String grado;
    NumAlea alea;
    Caja caja1;
    String buscar;
    InputStream stream;
    String fichero;
    BotonSiguiente bSiguiente;
    String IDBuscado1;
    String IDBuscado2;
    String modificador;
    String zip;
}