skoa.views.ModificarNombreVivienda.java Source code

Java tutorial

Introduction

Here is the source code for skoa.views.ModificarNombreVivienda.java

Source

/**                   
 * 
 GNU GENERAL PUBLIC LICENSE
                   Version 3, 29 June 2007
    
 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.
 */
package skoa.views;

import javax.swing.*;

import java.awt.Label;
import java.awt.event.*;
import java.io.*;

import javax.swing.JButton;

import javax.swing.JPanel;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.IOException;
import java.io.File;

public class ModificarNombreVivienda extends JPanel {

    public static JFrame FRAME_MODIFICAR_VIVIENDA = new JFrame();
    static String nombre = "";
    public static JTextField nombre_vivienda = new JTextField(15);
    static String imagen_viv = "";
    static Label nombreviv = new Label();
    public static int llamado = 0;
    private static final long serialVersionUID = 1L;
    static org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application
            .getInstance(skoa.views.SkoaApp.class).getContext().getResourceMap(ConfiguracionProyecto.class);
    private static JScrollPane MOSTRAR_CONFIGURACION = new javax.swing.JScrollPane();

    public static void main() {
        llamado = 1;

        MOSTRAR_CONFIGURACION.setViewportView(Arbol.generarArbol());

        FRAME_MODIFICAR_VIVIENDA.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        FRAME_MODIFICAR_VIVIENDA.setTitle(resourceMap.getString("FRAME_MODIFICAR_VIVIENDA.title"));
        FRAME_MODIFICAR_VIVIENDA.setResizable(true);
        FRAME_MODIFICAR_VIVIENDA.setSize(900, 600);
        FRAME_MODIFICAR_VIVIENDA.setLocation(120, 20);
        FRAME_MODIFICAR_VIVIENDA.addWindowListener(new java.awt.event.WindowAdapter() {

            public void windowClosing(java.awt.event.WindowEvent evt) {
                FRAME_MODIFICAR_VIVIENDA.setVisible(false);
                try {
                    if (ConfiguracionProyecto.llamado == 0) {
                        ConfiguracionProyecto.main();
                    } else {
                        ConfiguracionProyecto.FRAME_CONFIGURACION.setVisible(true);
                        //Arbol.generarArbol();
                        //ConfiguracionProyecto.ARBOL_CONFIGURACION = Arbol.MOSTRAR_CONFIGURACION;
                    }

                } catch (DocumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });

        //Solicitar email
        JLabel etiquetaModificarVivienda = new JLabel();
        etiquetaModificarVivienda.setText(resourceMap.getString("etiquetaModificarVivienda.text"));

        //Recoger email
        ModificarNombreVivienda.nombre_vivienda.setColumns(15);
        ModificarNombreVivienda.nombre_vivienda.setCaretPosition(0);
        ModificarNombreVivienda.nombre_vivienda.setText("");
        ModificarNombreVivienda.nombre_vivienda.setSelectionEnd(-1);
        ModificarNombreVivienda.nombre_vivienda.setSelectionStart(-1);

        nombre_vivienda.setText("");
        nombre_vivienda.setSize(250, 20);

        nombre_vivienda.addFocusListener(new FocusListener() {

            public void focusLost(FocusEvent e) {

                String aux = ((JTextField) e.getSource()).getText(); //lee texto escrito
                ModificarNombreVivienda.nombre = aux;

            }//end focuslost

            public void focusGained(FocusEvent e) {
                // No hacemos nada
            }
        });

        JButton botonModidicarVivienda = new JButton(resourceMap.getString("botonModidicarVivienda.text"));
        botonModidicarVivienda.setSize(40, 20);
        botonModidicarVivienda.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    File f = new File(NuevoProyecto.archivo);

                    if (!f.exists()) {
                        if (!ModificarNombreVivienda.nombre.equals("")) {
                            if (!ModificarNombreVivienda.imagen_viv.equals("")) {
                                Document documento = DocumentHelper.createDocument();
                                org.dom4j.Element root = documento.addElement("vivienda");
                                root.addAttribute("name", ModificarNombreVivienda.nombre);
                                root.addAttribute("logo", ModificarNombreVivienda.imagen_viv);
                                root.addAttribute("contador", "1");

                                FileWriter archivo = new FileWriter(NuevoProyecto.archivo, true);
                                OutputFormat format = OutputFormat.createPrettyPrint();

                                //format.setEncoding("UTF-8");
                                format.setEncoding("iso-8859-1");

                                XMLWriter writer = new XMLWriter(archivo, format);

                                writer.write(documento);
                                writer.close();
                                String mostrar = "Se ha modificado el nombre e imagen de la vivienda";
                                mostrar += "\n";
                                mostrar += "en el fichero de configuracin";
                                JOptionPane.showMessageDialog(null, mostrar, "Informacin", 1);

                                try {

                                    File aFile = new File(NuevoProyecto.archivo);
                                    SAXReader xmlReader = new SAXReader();
                                    //xmlReader.setEncoding("UTF-8");
                                    xmlReader.setEncoding("iso-8859-1");
                                    Document doc = xmlReader.read(aFile);
                                    Element node = (Element) doc.selectSingleNode("//vivienda/email");

                                    ModificarNombreVivienda.nombreviv.setText("Nombre Actual de la vivienda:       "
                                            + ModificarNombreVivienda.nombre);

                                    MOSTRAR_CONFIGURACION.setViewportView(Arbol.generarArbol());

                                    ModificarNombreVivienda.nombre_vivienda.setColumns(0);
                                    ModificarNombreVivienda.nombre_vivienda.setCaretPosition(0);
                                    ModificarNombreVivienda.nombre_vivienda.setText("");
                                    ModificarNombreVivienda.nombre_vivienda.setSelectionEnd(-1);
                                    ModificarNombreVivienda.nombre_vivienda.setSelectionStart(-1);

                                } catch (DocumentException e1) {
                                    e1.printStackTrace();
                                }

                            } else {
                                String mostrar = "Se esta creando el fichero.";
                                mostrar += "\n";
                                mostrar += "Debe selecciona una imagen para la vivienda";
                                JOptionPane.showMessageDialog(null, mostrar, "Alerta", 1);
                            }
                        } else {
                            String mostrar = "Debe introducir un nombre para la vivienda";
                            JOptionPane.showMessageDialog(null, mostrar, "Alerta", 1);
                        }
                    } else {
                        navegar();

                    } //end else

                } catch (IOException e2) {
                    e2.printStackTrace();
                }

            }
        });

        JSeparator jSeparatorV = new javax.swing.JSeparator();
        jSeparatorV.setOrientation(javax.swing.SwingConstants.VERTICAL);

        JSeparator jSeparatorH = new javax.swing.JSeparator();

        Label etiquetaArbol = new java.awt.Label();
        etiquetaArbol.setText(resourceMap.getString("etiquetaArbol.text"));

        JMenuBar jMenuBar1 = new javax.swing.JMenuBar();

        JMenu jMenuUsando = new javax.swing.JMenu();
        jMenuUsando.setText(resourceMap.getString("jMenuUsando.text") + NuevoProyecto.nombre_archivo);
        jMenuUsando.setEnabled(false);
        jMenuBar1.add(jMenuUsando);

        jMenuBar1.add(jMenuUsando);
        FRAME_MODIFICAR_VIVIENDA.setJMenuBar(jMenuBar1);

        try {

            File aFile = new File(NuevoProyecto.archivo);
            SAXReader xmlReader = new SAXReader();
            //xmlReader.setEncoding("UTF-8");
            xmlReader.setEncoding("iso-8859-1");
            Document doc = xmlReader.read(aFile);
            Element node = (Element) doc.selectSingleNode("//vivienda");

            nombreviv.setText(resourceMap.getString("etiquetaViviendaActual.text") + node.valueOf("@name"));
            nombreviv.setSize(150, 30);
        } catch (DocumentException e) {
            e.printStackTrace();
        }

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
                ModificarNombreVivienda.FRAME_MODIFICAR_VIVIENDA.getContentPane());
        ModificarNombreVivienda.FRAME_MODIFICAR_VIVIENDA.getContentPane().setLayout(layout);

        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                        .addComponent(MOSTRAR_CONFIGURACION, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                150, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(2, 2, 2)) // .addComponent(scrollbar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addComponent(jSeparatorH, javax.swing.GroupLayout.PREFERRED_SIZE, 135,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(5, 5, 5).addComponent(etiquetaArbol, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(10, 10, 10)
                        .addComponent(jSeparatorV, javax.swing.GroupLayout.PREFERRED_SIZE, 27,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup().addGap(50, 50, 50)
                                        .addGroup(layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(layout.createSequentialGroup() //                                      .addComponent(mensaje2)
                                                        .addGap(400, 400, 400).addComponent(botonModidicarVivienda))
                                                .addGroup(layout.createSequentialGroup()
                                                        .addComponent(etiquetaModificarVivienda).addGap(18, 18, 18)
                                                        .addComponent(nombre_vivienda,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGroup(layout.createSequentialGroup().addGap(50, 50, 50)
                                                        .addComponent(nombreviv,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)) //                                .addGroup(layout.createSequentialGroup()
                )))).addGroup(layout.createSequentialGroup().addContainerGap(145, Short.MAX_VALUE)));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jSeparatorV, javax.swing.GroupLayout.Alignment.TRAILING,
                        javax.swing.GroupLayout.DEFAULT_SIZE, 8, Short.MAX_VALUE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() //                  .addContainerGap()
                        .addGap(55, 55, 55)
                        .addComponent(etiquetaArbol, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jSeparatorH, javax.swing.GroupLayout.DEFAULT_SIZE, 7,
                                javax.swing.GroupLayout.DEFAULT_SIZE)
                        .addComponent(MOSTRAR_CONFIGURACION, javax.swing.GroupLayout.DEFAULT_SIZE, 450,
                                javax.swing.GroupLayout.DEFAULT_SIZE)
                        .addGap(175, 175, 175).addContainerGap())
                .addGroup(layout.createSequentialGroup().addGap(100, 100, 100)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(nombreviv, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(55, 55, 55))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(etiquetaModificarVivienda)
                                .addComponent(nombre_vivienda, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botonModidicarVivienda))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) //                        .addComponent(imagen_vivienda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        ).addContainerGap().addGap(50, 50, 50).addContainerGap()));

        FRAME_MODIFICAR_VIVIENDA.setVisible(true);

    }

    private static void navegar() {

        try {

            File aFile = new File(NuevoProyecto.archivo);
            SAXReader xmlReader = new SAXReader();
            //xmlReader.setEncoding("UTF-8");
            xmlReader.setEncoding("iso-8859-1");
            Document doc = xmlReader.read(aFile);

            if (!ModificarNombreVivienda.nombre.equals("")) {
                Element node = (Element) doc.selectSingleNode("//vivienda");//[@nombre]" );
                Attribute atributo = node.attribute("name");
                atributo.setText(ModificarNombreVivienda.nombre);

                if (!ModificarNombreVivienda.imagen_viv.equals("")) {
                    Attribute atributo2 = node.attribute("logo");
                    atributo2.setText(ModificarNombreVivienda.imagen_viv);

                    String mostrar = "Se ha modificado el nombre e imagen de la vivienda";
                    mostrar += "\n";
                    mostrar += "en el fichero de configuracin";
                    JOptionPane.showMessageDialog(null, mostrar, "Informacin", 1);
                    Arbol.generarArbol();
                } else {
                    String mostrar = "Se ha modificado el nombre de la vivienda";
                    mostrar += "\n";
                    mostrar += "en el fichero de configuracin";
                    JOptionPane.showMessageDialog(null, mostrar, "Informacin", 1);
                    Arbol.generarArbol();
                }

                try {

                    File aFile1 = new File(NuevoProyecto.archivo);
                    SAXReader xmlReader1 = new SAXReader();
                    //xmlReader1.setEncoding("UTF-8");
                    xmlReader1.setEncoding("iso-8859-1");
                    Document doc1 = xmlReader1.read(aFile1);
                    Element node1 = (Element) doc1.selectSingleNode("//vivienda/email");

                    ModificarNombreVivienda.nombreviv.setText(
                            resourceMap.getString("etiquetaViviendaActual.text") + ModificarNombreVivienda.nombre);

                } catch (DocumentException e1) {
                    e1.printStackTrace();
                }

            } else {
                String mostrar = "Ha de introducir un nombre para la vivienda";
                JOptionPane.showMessageDialog(null, mostrar, "Alerta", 1);
            }

            String aux = doc.asXML();
            FileWriter archivo;

            archivo = new FileWriter(NuevoProyecto.archivo);
            OutputFormat format = OutputFormat.createPrettyPrint();

            //format.setEncoding("UTF-8");
            format.setEncoding("iso-8859-1");

            XMLWriter writer = new XMLWriter(new FileWriter(NuevoProyecto.archivo));
            writer.write(doc);
            writer.close();

        } catch (IOException e) {
            e.printStackTrace();

        } catch (DocumentException e) {
            e.printStackTrace();
        }

    } //end navegar
}