control.listaEquiposUsua.java Source code

Java tutorial

Introduction

Here is the source code for control.listaEquiposUsua.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author Jesus Ariel
 */
public class listaEquiposUsua extends javax.swing.JFrame {

    private String solicitante;
    private String proyecto;
    private boolean usuario = false;

    /**
     * Creates new form listaEquipos
     */
    public listaEquiposUsua(boolean usuario) {
        this.usuario = usuario;
        String cate = null;
        initComponents();
        iniciar(cate);
        iniciar2();
        recorre();
        this.proyecto = null;
        this.solicitante = null;
        if (usuario) {
            jButton1.setEnabled(false);
            jButton3.setEnabled(false);
            jButton4.setEnabled(false);
        }
    }

    public listaEquiposUsua(String[] ides2, String proyecto, String solicitante, boolean usuario) {
        this.usuario = usuario;
        this.proyecto = proyecto;
        this.solicitante = solicitante;

        System.out.println("Si llegaron los IDES2");
        String cate = null;
        initComponents();
        iniciar(cate);
        iniciar2();
        recorre();
        seleccionados(ides2);
        System.out.println("Pasa seleccionados");
        if (usuario) {
            jButton1.setEnabled(false);
            jButton3.setEnabled(false);
            jButton4.setEnabled(false);
        }
    }

    /**
     * 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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jButton5 = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        tabEquipo = new javax.swing.JTable();
        Categoria = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("LISTA DE EQUIPOS");

        jButton5.setText("Pagina Principal");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

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

        jButton3.setText("Eliminar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton6.setText("Prestar");
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });

        tabEquipo.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {

        }, new String[] { "Id Equipo", "Nombre del Equipo", "Categoria", "Accesorios", "Decripcin", "Marca",
                "Equipo Activo/Inactivo", "Seleccionar " }) {
            Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.Object.class,
                    java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class,
                    java.lang.Boolean.class };
            boolean[] canEdit = new boolean[] { false, false, false, false, false, false, false, true };

            public Class getColumnClass(int columnIndex) {
                return types[columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
        });
        jScrollPane2.setViewportView(tabEquipo);
        if (tabEquipo.getColumnModel().getColumnCount() > 0) {
            tabEquipo.getColumnModel().getColumn(6).setResizable(false);
        }

        Categoria.setModel(new javax.swing.DefaultComboBoxModel(
                new String[] { "Audio y Video", "Cables y Adaptadores", "Computacin" }));
        Categoria.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                CategoriaActionPerformed(evt);
            }
        });

        jLabel1.setText("Filtrar Equipo por:");

        jButton4.setText("Modificar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

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

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addGap(70, 70, 70).addComponent(jButton1)
                        .addGap(134, 134, 134).addComponent(jButton4).addGap(140, 140, 140).addComponent(jButton3)
                        .addGap(121, 121, 121).addComponent(jButton6).addGap(0, 59, Short.MAX_VALUE))
                .addGroup(layout.createSequentialGroup().addGap(30, 30, 30)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 723,
                                                Short.MAX_VALUE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jButton2).addGap(12, 12, 12))
                                .addGroup(layout.createSequentialGroup().addComponent(jButton5)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 101,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Categoria, javax.swing.GroupLayout.PREFERRED_SIZE, 336,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(28, 28, 28)))));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addGap(11, 11, 11).addGroup(layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton5)
                        .addComponent(Categoria, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel1))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup().addGap(26, 26, 26)
                                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 344,
                                                Short.MAX_VALUE)
                                        .addGap(26, 26, 26))
                                .addGroup(layout.createSequentialGroup().addGap(44, 44, 44).addComponent(jButton2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(jButton1).addComponent(jButton4))
                                .addComponent(jButton3).addComponent(jButton6))
                        .addGap(32, 32, 32)));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
        String ide = null;
        int mnb = 0;
        int e = 0;
        for (int i = 0; i < tabEquipo.getRowCount(); i++) {
            if ((boolean) tabEquipo.getValueAt(i, 7) == true) {
                e++;
            }
        }
        int n = e;
        String[] ides = new String[n];
        if (e >= 1) {
            for (int i = 0; i < tabEquipo.getRowCount(); i++) {
                if ((boolean) tabEquipo.getValueAt(i, 7) == true) {
                    if ("inactivo".compareTo((String) tabEquipo.getValueAt(i, 6)) != 0) {
                        ide = (String) tabEquipo.getValueAt(i, 0);
                        ides[mnb] = ide;
                        mnb++;
                    } else {
                        JOptionPane.showMessageDialog(this, "No se puede prstar equipo inactivo");
                        return;
                    }
                }
            }
            nuevoReporte IE = new nuevoReporte(ides, proyecto, solicitante, usuario);
            IE.setVisible(true);
            dispose();
        } else {
            if (ide == null) {
                JOptionPane.showMessageDialog(rootPane, "Selecciona el o los equipo(s) que desees o prestar");
            }
        }
        /*for(int i=0; i<ides.length; i++)
        {
         System.out.print(ides[i]);
         System.out.println("\n Lista equipos");
        }*/
    }//GEN-LAST:event_jButton6ActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        entrarUsua pp = new entrarUsua();
        pp.setVisible(true);
        dispose();
    }//GEN-LAST:event_jButton5ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        equipo IE = new equipo();
        IE.setVisible(true);
        dispose();
        JOptionPane.showMessageDialog(null, "VERIFICA LA CATEGORIA");
    }//GEN-LAST:event_jButton1ActionPerformed

    private void CategoriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CategoriaActionPerformed
        // TODO add your handling code here:
        Limpiar(tabEquipo);
        Object cat = Categoria.getSelectedItem();
        String cate = String.valueOf(cat);
        iniciar(cate);
        recorre();
        //tabEquipo.setModel(new DefaultTableModel());
    }//GEN-LAST:event_CategoriaActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        elimina();
        listaEquipos le = new listaEquipos(usuario);
        le.setVisible(true);
        dispose();
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed

        // TODO add your handling code here:
        String ide = null;
        int e = 0;
        for (int i = 0; i < tabEquipo.getRowCount(); i++) {
            if ((boolean) tabEquipo.getValueAt(i, 7) == true) {
                e++;
            }
        }
        //if(e==1){
        for (int i = 0; i < tabEquipo.getRowCount(); i++) {
            if ((boolean) tabEquipo.getValueAt(i, 7) == true) {
                ide = (String) tabEquipo.getValueAt(i, 0);
                equipoModif IE = new equipoModif(ide);
                IE.setVisible(true);
                dispose();
            }
            //   }
            //}else 
            //{
            /*if(e>1){
            JOptionPane.showMessageDialog(rootPane, "Debes Seleccionar SOLAMENTE UN EQUIPO");
            }else{
                
                 if(ide == null) 
                 {
                    JOptionPane.showMessageDialog(rootPane, "Selecciona un equipo para poder modificarlo");
                 }
            }*/
        }
    }//GEN-LAST:event_jButton4ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        JFileChooser jf = new JFileChooser();
        int res = jf.showSaveDialog(this);
        if (res == JFileChooser.APPROVE_OPTION) {
            String path = jf.getSelectedFile() + ".pdf";
            System.out.println("Archivo " + path);
            try {
                if (this.generapdf(path)) {
                    JOptionPane.showMessageDialog(this, "Se ha almacenado el archivo ");
                } else {
                    JOptionPane.showMessageDialog(this, "No se ha almacenado el archivo ");
                }
            } catch (DocumentException ex) {
                Logger.getLogger(nuevoReporte.class.getName()).log(Level.SEVERE, null, ex);
            } catch (FileNotFoundException ex) {
                Logger.getLogger(nuevoReporte.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
    }//GEN-LAST:event_jButton2ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JComboBox Categoria;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable tabEquipo;
    // End of variables declaration//GEN-END:variables

    public void iniciar(String cate) {
        conectar cc = new conectar(); // Llamar al objeto conectar 
        Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion 
        DefaultTableModel Modelo = (DefaultTableModel) tabEquipo.getModel();

        try {
            String sql = "select idEquipo, nomEquipo, Categoria, accesorios, descEquipo,"
                    + "marcaEquipo, equipoActivo from equipo where Categoria = '" + cate + "' order by IdEquipo;";
            try (CallableStatement cmd = con.prepareCall(sql)) {
                ResultSet rs = cmd.executeQuery();
                while (rs.next()) {
                    Object[] datos = new Object[7];
                    for (int i = 0; i <= 6; i++) {
                        datos[i] = rs.getString(i + 1);
                        //System.out.println(datos [i]);
                        //System.out.println(rs);
                    }
                    Modelo.addRow(datos);
                }
            }
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void iniciar2() {
        conectar cc = new conectar(); // Llamar al objeto conectar 
        Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion 
        DefaultTableModel Modelo = (DefaultTableModel) tabEquipo.getModel();

        try {
            String sql = "select idEquipo, nomEquipo, Categoria, accesorios, descEquipo,"
                    + "marcaEquipo, equipoActivo from equipo WHERE order by IdEquipo;";
            try (CallableStatement cmd = con.prepareCall(sql)) {
                ResultSet rs = cmd.executeQuery();
                while (rs.next()) {
                    Object[] datos = new Object[7];
                    for (int i = 0; i <= 6; i++) {
                        datos[i] = rs.getString(i + 1);
                        //System.out.println(datos [i]);
                        //System.out.println(rs);
                    }
                    Modelo.addRow(datos);
                }
            }
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        //recorre();
    }

    public void recorre() {
        for (int i = 0; i < tabEquipo.getRowCount(); i++) {
            tabEquipo.setValueAt(false, i, 7);
        }
    }

    private void Limpiar(JTable tabEquipoJTable) {
        while (tabEquipo.getRowCount() > 0) {
            ((DefaultTableModel) tabEquipo.getModel()).removeRow(0);
        }
    }

    public void elimina() {
        int response = JOptionPane.showConfirmDialog(null, "Seguro que quieres ELIMINAR", "ELIMINAR?",
                JOptionPane.YES_NO_OPTION);
        if (response == JOptionPane.NO_OPTION) {
            System.out.println("NO");
        } else if (response == JOptionPane.YES_OPTION) {
            System.out.println("SI");
            for (int i = 0; i < tabEquipo.getRowCount(); i++) {
                boolean selec = (boolean) tabEquipo.getValueAt(i, 7);
                if (selec == true) {
                    conectar cc = new conectar(); // Llamar al objeto conectar 
                    Connection con = cc.conexion();//creamos la variable conexion con el metodo conexion 
                    String id = (String) tabEquipo.getValueAt(i, 0);
                    String sql = "DELETE from equipo WHERE idEquipo = '" + id + "';";
                    try {
                        //System.out.println(id);
                        PreparedStatement pst = con.prepareStatement(sql); //se hace para relacionar mi primer signo con marca y asi sucesivamente
                        pst.executeUpdate(); //int n = 1;    cuantos registros se han agregado    n sera 1 osea 1 registro
                        JOptionPane.showMessageDialog(rootPane, "Equipo Eliminado con xito");
                    } catch (SQLException ex) {
                        JOptionPane.showMessageDialog(rootPane, ex);
                        //java.util.logging.Logger.getLogger(.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }

            }
        }

    }

    public void seleccionados(String[] ides2) {
        System.out.println("Entra a Seleccionados");
        for (int i = 0; i < ides2.length; i++) {
            System.out.println("Aqui pasa por los ides2");
            System.out.println(ides2[i]);
            for (int p = 0; p <= tabEquipo.getRowCount() - 1; p++) {
                System.out.println("Aqui pasa por la tabla");
                System.out.println(ides2[i] + " =? " + tabEquipo.getValueAt(p, 0));
                if (ides2[i].compareTo(tabEquipo.getValueAt(p, 0).toString()) == 0) {
                    System.out.println("Se supone que los marca");
                    tabEquipo.setValueAt(true, p, 7);

                }
            }
        }
    }

    public Object[][] getTableData(JTable table) {
        DefaultTableModel dtm = (DefaultTableModel) table.getModel();
        int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
        Object[][] tableData = new Object[nRow][nCol];
        for (int i = 0; i < nRow; i++)
            for (int j = 0; j < nCol; j++)
                tableData[i][j] = dtm.getValueAt(i, j);
        return tableData;
    }

    private boolean generapdf(String path) throws DocumentException, FileNotFoundException {
        boolean estado = false;
        Document document = new Document();
        //OutputStreamWriter destino = new OutputStreamWriter(fos,"ISO-8859-1");

        PdfWriter.getInstance(document, new FileOutputStream(path));
        document.open();
        Paragraph paragraph1 = new Paragraph("Equipos");
        document.add(paragraph1);
        Paragraph paragraph2 = new Paragraph("");
        paragraph2.setSpacingBefore(38f);
        document.add(paragraph2);
        PdfPTable table = new PdfPTable(7);
        table.addCell("Id ");
        table.addCell("Nombre");
        table.addCell("categoria");
        table.addCell("Accesorios");
        table.addCell("Descripcion");
        table.addCell("Marca");
        table.addCell("Estado");
        Object[][] tabla = this.getTableData(tabEquipo);
        for (Object[] o : tabla) {
            int i = 0;
            for (Object e : o) {
                if (i <= 6) {
                    if (e != null)
                        table.addCell((String) e.toString());
                    else
                        table.addCell("");
                }
                i++;
            }
        }
        document.add(table);
        document.close();
        return true;
    }

    private boolean generaExcel(String path) {
        // Se crea el libro
        HSSFWorkbook libro = new HSSFWorkbook();

        // Se crea una hoja dentro del libro
        HSSFSheet hoja = libro.createSheet("Equipos");

        // Se crea una fila dentro de la hoja
        HSSFRow fila = hoja.createRow(0);

        // Se crea una celda dentro de la fila
        HSSFCell celda = fila.createCell((short) 0);
        HSSFRichTextString texto = new HSSFRichTextString("Id ");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 1);
        texto = new HSSFRichTextString("Nombre");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 2);
        texto = new HSSFRichTextString("Categoria");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 3);
        texto = new HSSFRichTextString("Accesorios");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 4);
        texto = new HSSFRichTextString("Descripcion");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 5);
        texto = new HSSFRichTextString("Marca");
        celda.setCellValue(texto);
        celda = fila.createCell((short) 6);
        texto = new HSSFRichTextString("Estado");
        celda.setCellValue(texto);

        int nr = 1;
        Object[][] tabla = this.getTableData(tabEquipo);
        for (Object[] o : tabla) {
            fila = hoja.createRow(nr);
            int i = 0;
            for (Object e : o) {
                celda = fila.createCell((short) i);
                if (i <= 6) {
                    if (e != null) {
                        texto = new HSSFRichTextString((String) e.toString());
                    } else {
                        texto = new HSSFRichTextString("");

                    }
                    celda.setCellValue(texto);
                }
                i++;
            }
            nr++;
        }

        // Se salva el libro.
        try {
            FileOutputStream elFichero = new FileOutputStream(path);
            libro.write(elFichero);
            elFichero.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

}