Compras.buscaPartida.java Source code

Java tutorial

Introduction

Here is the source code for Compras.buscaPartida.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 Compras;

import Hibernate.Util.HibernateUtil;
import Hibernate.entidades.Orden;
import Hibernate.entidades.Partida;
import Hibernate.entidades.Usuario;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.util.List;
import java.util.Vector;
import javax.swing.InputMap;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import Integral.FormatoTabla;
import Integral.Herramientas;
import Integral.HorizontalBarUI;
import Integral.Render1;
import Integral.VerticalBarUI;

/**
 *
 * @author ESPECIALIZADO TOLUCA
 */
public class buscaPartida extends javax.swing.JDialog {

    private Usuario user;
    private String orden = "";
    //private Session session;
    public static final Partida[] RET_CANCEL = null;
    InputMap map = new InputMap();
    DefaultTableModel model;
    String[] columnas = new String[] { "N", "#", "Grupo", "Descripcin", "Folio", "Cdigo" };
    Orden ord;
    String sessionPrograma = "";
    Herramientas h;
    int x = 0, entro = 0;
    FormatoTabla formato;
    int tipo = 1;

    /**
    * Creates new form buscaPartida
    */
    public buscaPartida(String ord, java.awt.Frame parent, boolean modal, int tipo, int seleccion) {
        super(parent, modal);
        orden = ord;
        this.tipo = tipo;
        initComponents();
        scroll.getVerticalScrollBar().setUI(new VerticalBarUI());
        scroll.getHorizontalScrollBar().setUI(new HorizontalBarUI());
        getRootPane().setDefaultButton(jButton5);
        t_datos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        formato = new FormatoTabla();
        formatoTabla();
        buscaDato();
        t_datos.setSelectionMode(seleccion);
    }

    DefaultTableModel ModeloTablaReporte(int renglones, String columnas[]) {
        model = new DefaultTableModel(new Object[renglones][6], columnas) {
            Class[] types = new Class[] { java.lang.Integer.class, java.lang.String.class, java.lang.String.class,
                    java.lang.String.class, java.lang.String.class, java.lang.String.class };
            boolean[] canEdit = new boolean[] { false, false, false, false, false, false };

            public void setValueAt(Object value, int row, int col) {
                Vector vector = (Vector) this.dataVector.elementAt(row);
                Object celda = ((Vector) this.dataVector.elementAt(row)).elementAt(col);
                switch (col) {
                case 0:
                    vector.setElementAt(value, col);
                    this.dataVector.setElementAt(vector, row);
                    fireTableCellUpdated(row, col);
                    break;
                default:
                    vector.setElementAt(value, col);
                    this.dataVector.setElementAt(vector, row);
                    fireTableCellUpdated(row, col);
                    break;
                }
            }

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

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
        };
        return model;
    }

    private void doClose(Partida[] o) {
        returnStatus = o;
        setVisible(false);
        dispose();
    }

    public Partida[] getReturnStatus() {
        return returnStatus;
    }

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

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        t_busca = new javax.swing.JTextField();
        b_busca = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        scroll = new javax.swing.JScrollPane();
        t_datos = new javax.swing.JTable();
        jButton5 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("busqueda de partidas");
        setResizable(false);

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Descripcin:",
                javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 11))); // NOI18N

        jLabel1.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
        jLabel1.setText("Contiene:");

        t_busca.setFont(new java.awt.Font("Arial", 0, 9)); // NOI18N
        t_busca.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        t_busca.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                t_buscaActionPerformed(evt);
            }
        });
        t_busca.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                t_buscaKeyTyped(evt);
            }
        });

        b_busca.setBackground(new java.awt.Color(2, 135, 242));
        b_busca.setIcon(new ImageIcon("imagenes/buscar.png"));
        b_busca.setToolTipText("Busca una partida");
        b_busca.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_buscaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout
                .setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(t_busca, javax.swing.GroupLayout.PREFERRED_SIZE, 223,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(b_busca, javax.swing.GroupLayout.PREFERRED_SIZE, 23,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup().addGroup(jPanel2Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(jPanel2Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE).addComponent(
                                b_busca, javax.swing.GroupLayout.PREFERRED_SIZE, 23,
                                javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel1).addComponent(t_busca)))
                        .addGap(0, 0, Short.MAX_VALUE)));

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Resultados",
                javax.swing.border.TitledBorder.RIGHT, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 11))); // NOI18N

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

        }, new String[] { "N", "#", "Grupo", "Descripcin", "Folio", "Cdigo" }));
        t_datos.getTableHeader().setReorderingAllowed(false);
        t_datos.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                t_datosKeyPressed(evt);
            }
        });
        scroll.setViewportView(t_datos);
        t_datos.getColumnModel().getSelectionModel()
                .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);

        jButton5.setBackground(new java.awt.Color(2, 135, 242));
        jButton5.setForeground(new java.awt.Color(254, 254, 254));
        jButton5.setIcon(new ImageIcon("imagenes/seleccionar.png"));
        jButton5.setText("Seleccionar");
        jButton5.setToolTipText("Cargar registro seleccionado");
        jButton5.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(jPanel3Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel3Layout.createSequentialGroup().addContainerGap()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 873, Short.MAX_VALUE)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        jPanel3Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
                                                .addComponent(jButton5)))
                        .addContainerGap()));
        jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton5)));

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING,
                        javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel3,
                                javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                javax.swing.GroupLayout.PREFERRED_SIZE)));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                javax.swing.GroupLayout.PREFERRED_SIZE));

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

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        t_busca.requestFocus();
        Session session = HibernateUtil.getSessionFactory().openSession();
        if (t_datos.getSelectedRows().length >= 0) {
            int[] renglones = t_datos.getSelectedRows();
            Partida[] datos = new Partida[renglones.length];
            for (int x = 0; x < renglones.length; x++) {
                Partida par = new Partida();
                Partida resp = (Partida) session.createCriteria(Partida.class)
                        .add(Restrictions.eq("ordenByIdOrden.idOrden", Integer.parseInt(orden)))
                        .add(Restrictions.eq("idEvaluacion",
                                Integer.parseInt(t_datos.getValueAt(renglones[x], 0).toString())))
                        .add(Restrictions.eq("subPartida",
                                Integer.parseInt(t_datos.getValueAt(renglones[x], 1).toString())))
                        .addOrder(Order.desc("idEvaluacion")).setMaxResults(1).uniqueResult();
                datos[x] = resp;
            }
            doClose(datos);
        } else
            JOptionPane.showMessageDialog(null, "No hay una partida seleccionada!");
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_jButton5ActionPerformed

    private void t_buscaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_t_buscaActionPerformed
        // TODO add your handling code here:
        if (this.t_busca.getText().compareToIgnoreCase("") != 0) {
            if (x >= t_datos.getRowCount())
                x = 0;
            for (; x < t_datos.getRowCount(); x++) {
                if (t_datos.getValueAt(x, 3).toString().indexOf(t_busca.getText()) != -1) {
                    t_datos.setRowSelectionInterval(x, x);
                    t_datos.setColumnSelectionInterval(3, 3);
                    break;
                }
            }
            x++;
        }
    }//GEN-LAST:event_t_buscaActionPerformed

    private void t_buscaKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_t_buscaKeyTyped
        // TODO add your handling code here:
        char car = evt.getKeyChar();
        evt.setKeyChar(Character.toUpperCase(evt.getKeyChar()));
    }//GEN-LAST:event_t_buscaKeyTyped

    private void b_buscaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_buscaActionPerformed
        // TODO add your handling code here:
        if (this.t_busca.getText().compareToIgnoreCase("") != 0) {
            if (x >= t_datos.getRowCount())
                x = 0;
            for (; x < t_datos.getRowCount(); x++) {
                if (t_datos.getValueAt(x, 3).toString().indexOf(t_busca.getText()) != -1) {
                    t_datos.setRowSelectionInterval(x, x);
                    t_datos.setColumnSelectionInterval(3, 3);
                    break;
                }
            }
            x++;
        }
    }//GEN-LAST:event_b_buscaActionPerformed

    private void t_datosKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_t_datosKeyPressed
        // TODO add your handling code here:
        int code = evt.getKeyCode();
        if (code == KeyEvent.VK_ENTER) {
            t_datos.getInputMap(t_datos.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
                    .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "selectColumnCell");
            this.jButton5.requestFocus();
        }
    }//GEN-LAST:event_t_datosKeyPressed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton b_busca;
    private javax.swing.JButton jButton5;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane scroll;
    public javax.swing.JTextField t_busca;
    private javax.swing.JTable t_datos;
    // End of variables declaration//GEN-END:variables

    private void buscaDato() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        Partida[] par;
        ord = (Orden) session.get(Orden.class, Integer.parseInt(orden));
        System.out.println(ord.getIdOrden());
        if (tipo == 1)
            par = (Partida[]) session.createCriteria(Partida.class)
                    .add(Restrictions.eq("ordenByIdOrden.idOrden", ord.getIdOrden()))
                    .add(Restrictions.eq("refComp", true)).add(Restrictions.eq("autorizadoValuacion", true))
                    .add(Restrictions.eq("autorizado", true)).add(Restrictions.isNull("pedido")).list()
                    .toArray(new Partida[0]);
        else
            par = (Partida[]) session.createCriteria(Partida.class)
                    .add(Restrictions.eq("ordenByIdOrden.idOrden", ord.getIdOrden()))
                    .add(Restrictions.eq("refComp", true)).add(Restrictions.eq("autorizadoValuacion", true))
                    .add(Restrictions.eq("autorizado", true)).list().toArray(new Partida[0]);
        if (par.length > 0) {
            t_datos.setModel(this.ModeloTablaReporte(par.length, columnas));
            for (int i = 0; i < par.length; i++) {
                model.setValueAt("" + par[i].getIdEvaluacion(), i, 0);//n
                model.setValueAt(par[i].getSubPartida(), i, 1);//#
                model.setValueAt(par[i].getCatalogo().getEspecialidad().getDescripcion(), i, 2);//grupo
                model.setValueAt(par[i].getCatalogo().getNombre(), i, 3);//descrip
                model.setValueAt(par[i].getCatalogo().getIdCatalogo(), i, 4);//fol
                if (par[i].getEjemplar() != null)
                    model.setValueAt(par[i].getEjemplar().getIdParte(), i, 5);//cdigo
                else
                    model.setValueAt("", i, 5);
            }
        } else
            t_datos.setModel(ModeloTablaReporte(0, columnas));
        formatoTabla();
        if (session.isOpen())
            session.close();
    }

    private Partida[] returnStatus = RET_CANCEL;
public void tabla_tamaos()
{
    TableColumnModel col_model = t_datos.getColumnModel();
    for (int i=0; i<t_datos.getColumnCount(); i++)
    {
        TableColumn column = col_model.getColumn(i);
        switch(i)
        {
            case 0:
                column.setPreferredWidth(20);
                break;
            case 1:
                column.setPreferredWidth(20);
                break;
            case 2:
                column.setPreferredWidth(100);
                break;
            case 3:
                column.setPreferredWidth(200);
                break;
            case 4:
                column.setPreferredWidth(20);
                break;
            case 5:
                column.setPreferredWidth(20);
                break;
            default:
                column.setPreferredWidth(40);
                break;
        }
    }
}

public void formatoTabla()
{
    Color c1 = new java.awt.Color(2, 135, 242);   
    for(int x=0; x<t_datos.getColumnModel().getColumnCount(); x++)
    {
        t_datos.getColumnModel().getColumn(x).setHeaderRenderer(new Render1(c1));
    }
    tabla_tamaos();
    t_datos.setShowVerticalLines(true);
    t_datos.setShowHorizontalLines(true);
        
    t_datos.setDefaultRenderer(Double.class, formato); 
    t_datos.setDefaultRenderer(Integer.class, formato);
    t_datos.setDefaultRenderer(String.class, formato);
    t_datos.setDefaultRenderer(Boolean.class, formato);
}
}