co.edu.eam.ingesoft.egresados.vista.gui.VentanaReporteEgresadosOcupacion.java Source code

Java tutorial

Introduction

Here is the source code for co.edu.eam.ingesoft.egresados.vista.gui.VentanaReporteEgresadosOcupacion.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 co.edu.eam.ingesoft.egresados.vista.gui;

import java.awt.Color;
import java.util.List;

import javax.swing.JOptionPane;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

import co.edu.eam.ingesoft.desarrollo.egresados.persistencia.modelo.entidades.InformacionLaboral;
import co.edu.eam.ingesoft.desarrollo.egresados.persistencia.modelo.entidades.Programa;
import co.edu.eam.ingesoft.desarrollo.egresados.persistencia.modelo.enumeraciones.SituacionLaboralEnum;
import co.edu.eam.ingesoft.egresados.vista.controladores.ControladorReporteEgresadosOcupacion;

/**
 *
 * @author 414pc04
 */
public class VentanaReporteEgresadosOcupacion extends javax.swing.JFrame {

    /**
     * controlador de la ventana donde se encuentra las operaciones logicas de reporte egresados ocupacion
     */
    private ControladorReporteEgresadosOcupacion controlador;

    /**
     * Creates new form VentanaReporteEgresadosOcupacion
     */
    public VentanaReporteEgresadosOcupacion() {

        try {
            initComponents();
            this.getContentPane().setBackground(Color.GREEN);
            controlador = new ControladorReporteEgresadosOcupacion();
            llenarComboPrograma();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        global();
    }

    /**
     * Mtodo para llenar el combo de programa
     * 
     * @param facultad,
     *            facultad ala cual pertenecen los programas
     * @throws Exception
     */
    private void llenarComboPrograma() throws Exception {
        cbPrograma.removeAllItems();
        List<Programa> programas = controlador.listarProgamas();
        cbPrograma.addItem("Seleccione un programa");
        for (Programa programa : programas) {
            cbPrograma.addItem(programa);
        }
    }

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

        jLabel1 = new javax.swing.JLabel();
        jPPrimero = new javax.swing.JPanel();
        jPSegundo = new javax.swing.JPanel();
        jLabel18 = new javax.swing.JLabel();
        cbPrograma = new javax.swing.JComboBox();
        btnGenerar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/presentacion.png"))); // NOI18N
        jLabel1.setText("Reporte de empleados por Ocupacion");

        jPPrimero.setBackground(new java.awt.Color(0, 153, 0));
        jPPrimero.setBorder(javax.swing.BorderFactory.createTitledBorder("Grfica de Porcentajes"));

        javax.swing.GroupLayout jPPrimeroLayout = new javax.swing.GroupLayout(jPPrimero);
        jPPrimero.setLayout(jPPrimeroLayout);
        jPPrimeroLayout.setHorizontalGroup(jPPrimeroLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 333, Short.MAX_VALUE));
        jPPrimeroLayout.setVerticalGroup(jPPrimeroLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE));

        jPSegundo.setBackground(new java.awt.Color(0, 153, 0));
        jPSegundo.setBorder(javax.swing.BorderFactory.createTitledBorder("Grfica de Porcentajes"));

        javax.swing.GroupLayout jPSegundoLayout = new javax.swing.GroupLayout(jPSegundo);
        jPSegundo.setLayout(jPSegundoLayout);
        jPSegundoLayout.setHorizontalGroup(jPSegundoLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE));
        jPSegundoLayout.setVerticalGroup(jPSegundoLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 388, Short.MAX_VALUE));

        jLabel18.setText("Programa*");

        btnGenerar.setText("Generar");
        btnGenerar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGenerarActionPerformed(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(19, 19, 19)
                        .addComponent(jPPrimero, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(15, 15, 15)
                        .addComponent(
                                jPSegundo, javax.swing.GroupLayout.DEFAULT_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addContainerGap(242, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        layout.createSequentialGroup().addComponent(jLabel18).addGap(18, 18, 18)
                                                .addComponent(cbPrograma, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        131, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(18, 18, 18).addComponent(btnGenerar).addGap(38, 38, 38))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                        .addComponent(jLabel1).addGap(228, 228, 228)))));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addGap(24, 24, 24).addComponent(jLabel1).addGap(34, 34, 34)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(cbPrograma, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel18).addComponent(btnGenerar))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jPSegundo, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jPPrimero, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addContainerGap()));

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

    private void btnGenerarActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnGenerarActionPerformed
        // TODO add your handling code here:
        System.out.println((Programa) cbPrograma.getSelectedItem());
        ChartPanel panel;
        try {
            Programa p = (Programa) cbPrograma.getSelectedItem();
            List<InformacionLaboral> listaInfoLab = controlador.listarInformacionLaboralPorPrograma(p);
            jPPrimero.removeAll();
            jPSegundo.removeAll();
            double empleado = 0;
            double desempleado = 0;
            double independiente = 0;
            double empresario = 0;
            System.out.println((Programa) cbPrograma.getSelectedItem());
            int contadorEmpleado = 0;
            int contadordDesempleado = 0;
            int contadorIndependiente = 0;
            int contadorEmpresario = 0;

            for (int i = 0; i < listaInfoLab.size(); i++) {
                if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.EMPLEADO)) {
                    contadorEmpleado++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.DESEMPLEADO)) {
                    contadordDesempleado++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.INDEPENDIENTE)) {
                    contadorIndependiente++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.EMPRESARIO)) {
                    contadorEmpresario++;
                } else {
                    JOptionPane.showMessageDialog(null, "No hay empleados registrados");
                }

                empleado = (contadorEmpleado * 100) / listaInfoLab.size();
                desempleado = (contadordDesempleado * 100) / listaInfoLab.size();
                independiente = (contadorIndependiente * 100) / listaInfoLab.size();
                empresario = (contadorEmpresario * 100) / listaInfoLab.size();
            }
            DefaultPieDataset ds = new DefaultPieDataset();
            ds.setValue("Empleado: " + empleado + "%", empleado);
            ds.setValue("Desempleado: " + desempleado + "%", desempleado);
            ds.setValue("Independiente: " + independiente + "%", independiente);
            ds.setValue("Empresario: " + empresario + "%", empresario);

            JFreeChart jf = ChartFactory.createPieChart3D("Reporte de egresados por tipo de ocupacin", ds, true,
                    true, true);

            panel = new ChartPanel(jf);
            panel.setBounds(20, 50, 280, 280);

            jPSegundo.removeAll();
            jPSegundo.add(panel);
            jPSegundo.updateUI();

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

    }// GEN-LAST:event_btnGenerarActionPerformed

    /**
     * metodo para cargar la grafica de reporte
     */
    public void global() {
        ChartPanel panel;
        try {
            List<InformacionLaboral> listaInfoLab = controlador.listarInformacionLaboral();
            jPPrimero.removeAll();
            jPSegundo.removeAll();
            double empleado = 0;
            double desempleado = 0;
            double independiente = 0;
            double empresario = 0;

            int contadorEmpleado = 0;
            int contadordDesempleado = 0;
            int contadorIndependiente = 0;
            int contadorEmpresario = 0;

            for (int i = 0; i < listaInfoLab.size(); i++) {
                if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.EMPLEADO)) {
                    contadorEmpleado++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.DESEMPLEADO)) {
                    contadordDesempleado++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.INDEPENDIENTE)) {
                    contadorIndependiente++;
                } else if (listaInfoLab.get(i).getSituacionAct().equals(SituacionLaboralEnum.EMPRESARIO)) {
                    contadorEmpresario++;
                } else {
                    JOptionPane.showMessageDialog(null, "No hay empleados registrados");
                }

                empleado = (contadorEmpleado * 100) / listaInfoLab.size();
                desempleado = (contadordDesempleado * 100) / listaInfoLab.size();
                independiente = (contadorIndependiente * 100) / listaInfoLab.size();
                empresario = (contadorEmpresario * 100) / listaInfoLab.size();
            }
            DefaultPieDataset ds = new DefaultPieDataset();
            ds.setValue("Empleado: " + empleado + "%", empleado);
            ds.setValue("Desempleado: " + desempleado + "%", desempleado);
            ds.setValue("Independiente: " + independiente + "%", independiente);
            ds.setValue("Empresario: " + empresario + "%", empresario);

            JFreeChart jf = ChartFactory.createPieChart3D("Reporte de egresados por tipo de ocupacin", ds, true,
                    true, true);

            panel = new ChartPanel(jf);
            panel.setBounds(20, 50, 280, 280);

            jPPrimero.add(panel);
        } catch (Exception e) {

        }
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnGenerar;
    private javax.swing.JComboBox cbPrograma;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JPanel jPPrimero;
    private javax.swing.JPanel jPSegundo;
    // End of variables declaration//GEN-END:variables
}