Control.CtrlTema.java Source code

Java tutorial

Introduction

Here is the source code for Control.CtrlTema.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 DAO.preguntaTemaDAO;
import DAO.randomDAO;
import DAO.rutaDAO;
import DAO.temaDAO;
import DTO.Credencial_Tema;
import DTO.Pregunta_Tema;
import DTO.Tema;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

/**
 *
 * @author Daniel
 */
public class CtrlTema {
    rutaDAO url = new rutaDAO();
    private preguntaTemaDAO ptDAO = new preguntaTemaDAO();
    private temaDAO temaDAO = new temaDAO();
    private latex lt = new latex();
    randomDAO rDAO = new randomDAO();
    rutaDAO ruta = new rutaDAO();
    String fileNameWrite = ruta.getRuta();
    private Integer year;
    private Integer semestre;
    private String jornada;

    public Integer getYear() {
        return year;
    }

    public void setYear(Integer year) {
        this.year = year;
    }

    public Integer getSemestre() {
        return semestre;
    }

    public void setSemestre(Integer semestre) {
        this.semestre = semestre;
    }

    public String getJornada() {
        return jornada;
    }

    public void setJornada(String jornada) {
        this.jornada = jornada;
    }

    public Tema cargarTema(int t) {
        Tema tt = new Tema();
        tt.setCodigo(t);
        return temaDAO.cargarTema(tt);

    }

    public Collection<Tema> listarTemas() {
        return temaDAO.listarTemas();
    }

    public void ingresarRespuesta(Tema t) {
        temaDAO.ingresarRespuesta(t);
    }

    public void desplegarRespuestas(Tema maestro) {
        temaDAO.desplegarRespuestas(maestro);
    }

    public void crearMaestro(Integer year, Integer semestre, String Jornada) throws IOException {
        Tema tema = new Tema();
        Calendar fecha = new GregorianCalendar();
        java.util.Date ju = fecha.getTime();
        java.sql.Date date = new java.sql.Date(ju.getTime());
        tema.setFechaCreacion(date);
        tema.setCodigo(0);
        tema.setJornada(Jornada);
        temaDAO tdao = new temaDAO();
        this.reiniciarExamen();
        /*if(tdao.ingresarTema(tema) == 0){
        if(this.reiniciarExamen() == 1){
            this.reiniciarExamen();
            tdao.ingresarTema(tema);
        }
        }*/
        tdao.ingresarTema(tema);
        lt.nuevoExamen(tema, this.getYear(), this.getSemestre(), this.getJornada());
    }

    public void imprimir(Tema t) throws IOException {
        lt.nuevoTema(t, 2014, 1, "Maana");
        // lt.nuevoTema(t, this.getYear(), this.getSemestre(), this.getJornada());
    }

    public int randomPreguntas() throws SQLException {
        return rDAO.randompreguntas();
    }

    public int reiniciarExamen() throws IOException {
        temaDAO temadao = new temaDAO();
        preguntaTemaDAO ptdao = new preguntaTemaDAO();
        if (ptdao.borrarPreguntaTemas() == 1) {
            Collection<Tema> temas = listarTemas();
            Iterator it = temas.iterator();
            while (it.hasNext()) {
                Tema tema = (Tema) it.next();
                String ruta = url.getRuta() + "\\examen" + tema.getCodigo();
                File f = new File(ruta);
                if (f.exists()) {
                    Runtime.getRuntime().exec("cmd /c " + url.getUnidad() + " && cd " + url.getRuta()
                            + " && start /b /wait \n RD /S /Q examen" + tema.getCodigo() + " \n exit");
                }
            }

            temadao.borrarTemas();
            return 1;
        } else {
            return 0;
        }
    }

    public File writeExcelFile(String nombreArchivo) throws IOException {
        Collection preguntaTemaArray = new ArrayList<Pregunta_Tema>();
        Tema tema = new Tema();

        /*La ruta donde se crear el archivo*/
        String rutaArchivo = fileNameWrite + "/" + nombreArchivo + ".xls";
        /*Se crea el objeto de tipo File con la ruta del archivo*/
        File archivoXLS = new File(rutaArchivo);
        /*Si el archivo existe se elimina*/
        if (archivoXLS.exists()) {
            archivoXLS.delete();
        }
        /*Se crea el archivo*/
        archivoXLS.createNewFile();

        /*Se crea el libro de excel usando el objeto de tipo Workbook*/
        Workbook libro = new HSSFWorkbook();
        /*Se inicializa el flujo de datos con el archivo xls*/
        FileOutputStream archivo = new FileOutputStream(archivoXLS);

        //Ciclo para los temas
        int j = 0;
        while (j <= 10) {
            tema = cargarTema(j);
            preguntaTemaArray = tema.getPreguntas();
            Iterator itPreguntaTemaArray = preguntaTemaArray.iterator();
            int pregunta = 0;
            String respuesta = "";
            /*Utilizamos la clase Sheet para crear una nueva hoja de trabajo dentro del libro que creamos anteriormente*/
            Sheet hoja = libro.createSheet("Tema " + j);
            //Ciclo para preguntaTema
            int f = 0;
            int a = preguntaTemaArray.size() + 1;
            while (f < a) {
                //  while (itPreguntaTemaArray.hasNext()) {

                /*Hacemos un ciclo para inicializar los valores de 10 filas de celdas*/
                /*La clase Row nos permitir crear las filas*/
                Row fila = hoja.createRow(f);

                for (int c = 0; c < 2; c++) {
                    /*Creamos la celda a partir de la fila actual*/
                    Cell celda = fila.createCell(c);

                    /*Si la fila es la nmero 0, estableceremos los encabezados*/
                    if (f == 0 && c == 0) {
                        celda.setCellValue("Pregunta");
                    } else if (f == 0 && c == 1) {
                        celda.setCellValue("Respuesta");
                    } else if (f != 0 && c == 1) {
                        /*Si no es la primera fila establecemos un valor*/
                        celda.setCellValue(respuesta);
                    } else {
                        /*Si no es la primera fila establecemos un valor*/
                        celda.setCellValue(pregunta);
                    }
                }

                f = f + 1;
                if (f < a) {
                    Pregunta_Tema pt = (Pregunta_Tema) itPreguntaTemaArray.next();

                    pregunta = pt.getNroPregunta();

                    int rta = pt.getRespuesta();
                    if (rta == 1) {
                        respuesta = "A";
                    } else if (rta == 2) {
                        respuesta = "B";
                    } else if (rta == 3) {
                        respuesta = "C";
                    } else if (rta == 4) {
                        respuesta = "D";
                    }
                }

            }
            j++;
        }
        /*Escribimos en el libro*/
        libro.write(archivo);
        /*Cerramos el flujo de datos*/
        archivo.close();
        /*Y abrimos el archivo con la clase Desktop*/

        return archivoXLS;
    }

}