/*
 * Clase creada por Martin, modificada para su integracion con la herramienta.
 *
 *
 */
package com.uvigo.tMaestro.SCOCreator.tool.properties.cellEditors.contentEditors;

import com.uvigo.tMaestro.SCOCreator.tool.MainFrame;
import com.uvigo.tMaestro.SCOCreator.tool.MyFileFilter;
import com.uvigo.tMaestro.SCOCreator.tool.ImageView;
import com.uvigo.tMaestro.SCOCreator.tool.MyOptionPane;

import java.awt.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.xml.bind.*;
import com.uvigo.mhp.xml.ui.*;

public class WidgetContentEditorPanel extends javax.swing.JPanel implements ContentEditorPanel {

    private String[] strings;
    private Image[] images;
    private String[] urls;
    private int current;
    private MediaTracker trk;
    private JAXBContext jc;
    //Ruta hasta el directorio de la aplicacion
    private String sBase;
    //Ruta desde sBase hasta el directorio en donde esta el fichero xml
    private String sRuta;
    //Nombre del fichero .xml
    private String sFile;
    //Ruta al directorio del componente (dentro del directorio del proyecto). Desde /Projects
    private String sDir;
    //Listado de ficheros anadidos desde este panel en algun momento.
    //Guarda tanto los actuales como los descartados
    private java.util.ArrayList<java.io.File> oAddedFiles = new java.util.ArrayList<java.io.File>();
    /**
     * Referencia al dialogo que va a contener este panel
     */
    private ContentEditorDialog oDialog;

    /**
     * Constructor
     * @param sPathFile Ruta relativa al directorio de la aplicaci�n, del fichero .xml
     * del Hbutton
     * @param oDialog Referencia al dialogo contenedor de este panel.
     */
    public WidgetContentEditorPanel(String sPathFile, ContentEditorDialog oDialog) {
         if ((sPathFile==null)||(sPathFile.isEmpty())) sPathFile = "RESOURCES/WidgetCE.xml";//M: inicializaci�n
      
         initComponents();
        this.oDialog = oDialog;
        jPanel2.setBorder(new javax.swing.border.TitledBorder(MainFrame.oMainFrame.getMessage("Border2")));
        jScrollPane2.setBorder(new javax.swing.border.TitledBorder(MainFrame.oMainFrame.getMessage("Border3")));
        jButton11.setText(MainFrame.oMainFrame.getMessage("Button7"));
        jButton10.setText(MainFrame.oMainFrame.getMessage("Button6"));
        try {
            jc = JAXBContext.newInstance("com.uvigo.mhp.xml.ui");
            current = 0;
            trk = new MediaTracker(this);
            strings = new String[8];
            images = new Image[8];
            urls = new String[8];
            sBase= new String (MainFrame.oMainFrame.sDir+ "/"); 
            sDir= new String("TEMP/COMPONENTS/");
            if (sPathFile != null) {
                //Parte de sPathFile que corresponde a ruta (que no es fichero)
                String[] split = sPathFile.split("/");
                sRuta = new String();
                int z = 0;
                for (z = 0; z < split.length - 1; z++) {
                    sRuta = sRuta.concat(split[z] + "/");
                }

                //Parte de sPathFile que corresponde al fichero
                sFile = split[split.length - 1];

                load(new java.io.File(sBase+sPathFile));
               
            }
        } catch (Exception ex) {
            System.out.println(ex);
        }
    }

    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jButton11 = new javax.swing.JButton();
        jButton10 = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        jSplitPane2 = new javax.swing.JSplitPane();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jLabel1 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField();
        jPanel6 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        jToggleButton1 = new javax.swing.JToggleButton();
        jToggleButton2 = new javax.swing.JToggleButton();
        jToggleButton3 = new javax.swing.JToggleButton();
        jToggleButton4 = new javax.swing.JToggleButton();
        jToggleButton5 = new javax.swing.JToggleButton();
        jToggleButton6 = new javax.swing.JToggleButton();
        jToggleButton7 = new javax.swing.JToggleButton();
        jToggleButton8 = new javax.swing.JToggleButton();

        setLayout(new java.awt.BorderLayout());

        jPanel1.setLayout(new java.awt.GridLayout(1, 0));

        jButton11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton11ActionPerformed(evt);
            }
        });

        jPanel1.add(jButton11);

        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        jPanel1.add(jButton10);

        add(jPanel1, java.awt.BorderLayout.SOUTH);

        jPanel5.setLayout(new java.awt.BorderLayout());

        jSplitPane2.setDividerLocation(125);
        jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
        jPanel4.setLayout(new java.awt.BorderLayout());

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jScrollPane1.setViewportView(jLabel1);

        jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER);

        jPanel3.setLayout(new java.awt.BorderLayout());

        jTextField1.setEditable(false);
        jPanel3.add(jTextField1, java.awt.BorderLayout.CENTER);

        jPanel6.setLayout(new java.awt.GridLayout(1, 0));

        jButton1.setText("...");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jPanel6.add(jButton1);

        jButton2.setText("X");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jPanel6.add(jButton2);

        jPanel3.add(jPanel6, java.awt.BorderLayout.EAST);

        jPanel4.add(jPanel3, java.awt.BorderLayout.SOUTH);

        jSplitPane2.setRightComponent(jPanel4);

        jTextArea1.setMargin(new java.awt.Insets(2, 2, 2, 2));
        jScrollPane2.setViewportView(jTextArea1);

        jSplitPane2.setLeftComponent(jScrollPane2);

        jPanel5.add(jSplitPane2, java.awt.BorderLayout.CENTER);

        add(jPanel5, java.awt.BorderLayout.CENTER);

        jPanel2.setLayout(new java.awt.GridLayout(0, 1));

        buttonGroup1.add(jToggleButton1);
        jToggleButton1.setSelected(true);
        jToggleButton1.setText("NORMAL");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton1);

        buttonGroup1.add(jToggleButton2);
        jToggleButton2.setText("ACTIONED");
        jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton2ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton2);

        buttonGroup1.add(jToggleButton3);
        jToggleButton3.setText("FOCUSED");
        jToggleButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton3ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton3);

        buttonGroup1.add(jToggleButton4);
        jToggleButton4.setText("ACTIONED_FOCUSED");
        jToggleButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton4ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton4);

        buttonGroup1.add(jToggleButton5);
        jToggleButton5.setText("DISABLED");
        jToggleButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton5ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton5);

        buttonGroup1.add(jToggleButton6);
        jToggleButton6.setText("DISABLED_ACTIONED");
        jToggleButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton6ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton6);

        buttonGroup1.add(jToggleButton7);
        jToggleButton7.setText("DISABLED_FOCUSED");
        jToggleButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton7ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton7);

        buttonGroup1.add(jToggleButton8);
        jToggleButton8.setText("DISABLED_ACTIONED_FOCUSED");
        jToggleButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton8ActionPerformed(evt);
            }
        });

        jPanel2.add(jToggleButton8);

        add(jPanel2, java.awt.BorderLayout.WEST);

    }
    // </editor-fold>//GEN-END:initComponents
    /**
     * El usuario ha pulsado sobre el boton OK
     */
    private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed
        // Hay que grabar un fichero XML con el contenido creado, en el
        // directorio del proyecto (dentro del directorio de componente).
        // Ademas hay que copiar las imagenes al mismo directorio

        try {
            setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
            java.io.File oDirComponent = new java.io.File(sBase + sDir);
           
            oDirComponent.mkdir();
            if (!sFile.contains("(")) sFile = new String("(" + MainFrame.oMainFrame.getPSheet().getSelectedOption() + ")" +
                        MainFrame.oMainFrame.oGetCapsulaActiva().oGetBean().getName() + ".xml");//M:le damos el nombre del componente
            java.io.File oFile = new File(oDirComponent, sFile);
            java.util.ArrayList<java.io.File> oFiles = new java.util.ArrayList<java.io.File>();

            ObjectFactory objFactory = new ObjectFactory();
            ContentList clist = objFactory.createContentList();

            ContentType c = objFactory.createContentType();
            c.setTextContent(strings[0]);
            c.setGraphicContent(urls[0]);
            clist.setNormalStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[1]);
            c.setGraphicContent(urls[1]);
            clist.setActionedStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[2]);
            c.setGraphicContent(urls[2]);
            clist.setFocusedStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[3]);
            c.setGraphicContent(urls[3]);
            clist.setActionedFocusedStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[4]);
            c.setGraphicContent(urls[4]);
            clist.setDisabledStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[5]);
            c.setGraphicContent(urls[5]);
            clist.setDisabledActionedStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[6]);
            c.setGraphicContent(urls[6]);
            clist.setDisabledFocusedStateContent(c);

            c = objFactory.createContentType();
            c.setTextContent(strings[7]);
            c.setGraphicContent(urls[7]);
            clist.setDisabledActionedFocusedStateContent(c);

            Marshaller m = jc.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            oFiles.add(oFile);
            m.marshal(clist, new FileOutputStream(oFile));

            int i = 0;
            for (i = 0; i < 8; i++) {
                if (urls[i] == null) continue;

                //Copiamos las imagenes
                java.io.File oComponentFile = new java.io.File(oDirComponent, urls[i]);
                oFiles.add(oComponentFile);
                if (!oComponentFile.exists()) {
                   MainFrame.copyFile(new java.io.File(sBase + sRuta + urls[i]), oComponentFile);
                    }
            }

            MainFrame.oMainFrame.getEditionProperty().putOptionFiles(oFiles, MainFrame.oMainFrame.getPSheet().getSelectedOption());
            oDialog.setAction(ContentEditorDialog.OK, sDir + sFile);

        } catch (Exception ex) {
            System.out.println(ex);
            oDialog.setAction(ContentEditorDialog.CANCEL, null); // Si se produce alg�n error es como cancelar el proceso

        }
        setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
        oDialog.dispose();
    }//GEN-LAST:event_jButton11ActionPerformed

    /**
     * El usuario ha pulsado sobre cancelar
     */
    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton10ActionPerformed
    {//GEN-HEADEREND:event_jButton10ActionPerformed
        oDialog.setAction(ContentEditorDialog.CANCEL, null);
        oDialog.dispose();
    }//GEN-LAST:event_jButton10ActionPerformed

    private void load(java.io.File file) {
        try {
       if (file == null) return;
            Unmarshaller u = jc.createUnmarshaller();
            u.setValidating(true);
            ContentList clist = (ContentList) u.unmarshal(new FileInputStream(file));

            ContentType ctemp[] = new ContentType[8];
            ctemp[0] = clist.getNormalStateContent();
            ctemp[1] = clist.getActionedStateContent();
            ctemp[2] = clist.getFocusedStateContent();
            ctemp[3] = clist.getActionedFocusedStateContent();
            ctemp[4] = clist.getDisabledStateContent();
            ctemp[5] = clist.getDisabledActionedStateContent();
            ctemp[6] = clist.getDisabledFocusedStateContent();
            ctemp[7] = clist.getDisabledActionedFocusedStateContent();

            Image itemp[] = new Image[8];
            for (int i = 0; i < 8; i++) {
                if (ctemp[i].getGraphicContent() == null) continue;
                if (ctemp[i].getGraphicContent().equals("")) continue;
                URL temp = new URL("file:/" + sBase + sRuta + ctemp[i].getGraphicContent());
                itemp[i] = Toolkit.getDefaultToolkit().getImage(temp);
                trk.addImage(itemp[i], i);
            }

            trk.waitForAll();

            // Si todo se ha cargado correctamente, se inicializan los arrays
            for (int i = 0; i < 8; i++) {
                strings[i] = ctemp[i].getTextContent();
                images[i] = itemp[i];
                urls[i] = ctemp[i].getGraphicContent();
            }

            jTextArea1.setText(strings[current]);
            jTextField1.setText(urls[current]);
            if ((images[current] != null) && (images[current].getWidth(null) != -1) && (images[current].getHeight(null) != -1))
                jLabel1.setIcon(new ImageIcon(images[current]));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton2ActionPerformed
    {//GEN-HEADEREND:event_jButton2ActionPerformed
        images[current] = null;
        urls[current] = null;
        strings[current] = null;
        jTextArea1.setText("");
        jTextField1.setText("");
        jLabel1.setIcon(null);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
    {//GEN-HEADEREND:event_jButton1ActionPerformed
        javax.swing.JFileChooser chooser = new javax.swing.JFileChooser();
        MyFileFilter oFilter = new MyFileFilter();
        oFilter.vAddExtension("jpeg");
        oFilter.vAddExtension("jpg");
        oFilter.vSetDescripcion(".jpeg");
        chooser.addChoosableFileFilter(oFilter);
        oFilter = new MyFileFilter();
        oFilter.vAddExtension("gif");
        oFilter.vSetDescripcion(".gif");
        chooser.addChoosableFileFilter(oFilter);
        oFilter = new MyFileFilter();
        oFilter.vAddExtension("png");
        oFilter.vSetDescripcion(".png");
        chooser.addChoosableFileFilter(oFilter);
        oFilter = new MyFileFilter();
        oFilter.vAddExtension("tif");
        oFilter.vAddExtension("tiff");
        oFilter.vSetDescripcion(".tiff");
        chooser.addChoosableFileFilter(oFilter);
        oFilter = new MyFileFilter();
        oFilter.vAddExtension("tif");
        oFilter.vAddExtension("tiff");
        oFilter.vAddExtension("jpeg");
        oFilter.vAddExtension("jpg");
        oFilter.vAddExtension("png");
        oFilter.vAddExtension("gif");
        oFilter.vSetDescripcion(".jpeg .tiff .gif .png");
        chooser.addChoosableFileFilter(oFilter);
        chooser.setAccessory(new ImageView(chooser));
        chooser.setCurrentDirectory(MainFrame.oMainFrame.getLastDir());
        boolean bExit = false;
        while (!bExit) {
            int option = chooser.showOpenDialog(this);
            if (option == javax.swing.JFileChooser.APPROVE_OPTION) {
                File file = chooser.getSelectedFile();
                //Comprobamos que no exista ningun fichero con el mismo nombre entre los componentes de la plantilla original
//                if (new java.io.File(MainFrame.oMainFrame.getToolDir(), "templates/" + MainFrame.oMainFrame.getTemplateName() + "/" + file.getName()).exists()) {
//                    MyOptionPane.showMessageDialog(MainFrame.oMainFrame, MainFrame.oMainFrame.getMessage("Error21"), "Error", javax.swing.JOptionPane.ERROR_MESSAGE);
//                    continue;
//                }//M- no hace falta: no habra componentes en la plantilla
                //Si existe un fichero con el mismo nombre entre los elementos que el usuario ha configurado, lo avisamos
                if (new java.io.File(sBase + sDir, file.getName()).exists()) {
                    int iOption = MyOptionPane.showConfirmDialog(MainFrame.oMainFrame, MainFrame.oMainFrame.getMessage("Question4"), MainFrame.oMainFrame.getMessage("Title2"), javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.WARNING_MESSAGE);
                    if (iOption == javax.swing.JOptionPane.NO_OPTION) continue;
                }
                bExit = true;
                try {
                    setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
                    MainFrame.oMainFrame.setLastDir(file.getParentFile());
                    java.io.File oDirComponent = new java.io.File(sBase + sDir);
                    oDirComponent.mkdir();

                    java.io.File oImage = new java.io.File(oDirComponent, file.getName());
                    MainFrame.copyFile(file, oImage);
                    oAddedFiles.add(oImage);

                    URL urltemp = new URL("file:/" + sBase + sDir + file.getName());
                    Image temp = Toolkit.getDefaultToolkit().getImage(urltemp);
                    trk.waitForAll();

                    images[current] = temp;
                    urls[current] = file.getName();
                    jTextField1.setText(urls[current]);
                    jTextField1.setCaretPosition(0);
                    jLabel1.setIcon(new ImageIcon(images[current]));

                } catch (Exception ex) {
                    System.out.println(ex);
                }
                setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
            } else bExit = true;
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jToggleButton8ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton8ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton8ActionPerformed
        show(7);
    }//GEN-LAST:event_jToggleButton8ActionPerformed

    private void jToggleButton7ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton7ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton7ActionPerformed
        show(6);
    }//GEN-LAST:event_jToggleButton7ActionPerformed

    private void jToggleButton6ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton6ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton6ActionPerformed
        show(5);
    }//GEN-LAST:event_jToggleButton6ActionPerformed

    private void jToggleButton5ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton5ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton5ActionPerformed
        show(4);
    }//GEN-LAST:event_jToggleButton5ActionPerformed

    private void jToggleButton4ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton4ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton4ActionPerformed
        show(3);
    }//GEN-LAST:event_jToggleButton4ActionPerformed

    private void jToggleButton3ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton3ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton3ActionPerformed
        show(2);
    }//GEN-LAST:event_jToggleButton3ActionPerformed

    private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton2ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton2ActionPerformed
        show(1);
    }//GEN-LAST:event_jToggleButton2ActionPerformed

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jToggleButton1ActionPerformed
    {//GEN-HEADEREND:event_jToggleButton1ActionPerformed
        show(0);
    }//GEN-LAST:event_jToggleButton1ActionPerformed

    private void show(int i) {
        strings[current] = jTextArea1.getText();
        urls[current] = jTextField1.getText();

        current = i;
        if ((images[current] == null) || (images[current].getWidth(null) == -1) || (images[current].getHeight(null) == -1)) {
            try {
                URL url = new URL(urls[current]);
                images[current] = Toolkit.getDefaultToolkit().getImage(url);
                trk.addImage(images[current], 0);
                trk.waitForAll();
            } catch (Exception ex) {
            }
        }

        if ((images[current] != null) && (images[current].getWidth(null) != -1) && (images[current].getHeight(null) != -1))
            jLabel1.setIcon(new ImageIcon(images[current]));
        else
            jLabel1.setIcon(null);

        jTextArea1.setText(strings[current]);
        jTextField1.setText(urls[current]);
        jTextField1.setCaretPosition(0);
    }

    /**
     * Devuelve los ficheros anadidos
     */
    public java.util.ArrayList<java.io.File> getFiles() {
        return oAddedFiles;
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JSplitPane jSplitPane2;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JToggleButton jToggleButton2;
    private javax.swing.JToggleButton jToggleButton3;
    private javax.swing.JToggleButton jToggleButton4;
    private javax.swing.JToggleButton jToggleButton5;
    private javax.swing.JToggleButton jToggleButton6;
    private javax.swing.JToggleButton jToggleButton7;
    private javax.swing.JToggleButton jToggleButton8;
    // End of variables declaration//GEN-END:variables
}
