package PackServlet;
import PackDAO.QuestaoDAO;
import PackQuestao.Questao;
import PackTratamento.Tratamento;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created on : 02/07/2010
* Author : DJ
* Version : 1.00
*/
/**
* Created on : 14/07/2010
* Author : DJ
* Version : 1.01
*/
public class BuscaQuestao extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException, ClassNotFoundException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
//começa aqui
Tratamento t = new Tratamento();
String id = request.getParameter("id");
String professor = request.getParameter("professor");
Vector<String> tags = new Vector();
String tag1 = new String();
tag1 = request.getParameter("palavras-chave");
tags = t.separadorTags(tag1);
String[] disciplinas = new String[5];
disciplinas[0] = request.getParameter("disciplinas");
String grau = request.getParameter("grau_dificuldade");
String tipo = request.getParameter("tipo");
Questao q1 = null;
Vector<Questao> v2 = new Vector();
Vector<Questao> v3 = new Vector();
Vector<Questao> v4 = new Vector();
Vector<Questao> v5 = new Vector();
Vector<Questao> v6 = new Vector();
Vector<Questao> vec_final = new Vector();
Vector<Questao> vec_tratado = new Vector();
int i = 0;
QuestaoDAO qdao = new QuestaoDAO();
if(id.length()>0){
q1 = qdao.buscaPeloId(Integer.parseInt(id));
}
if(professor.length()>1){
v2 = qdao.buscaPorProfessor(professor);
}
if(!tags.isEmpty()){
String[] palavras = new String[tags.size()];
for(int j = 0; j < tags.size(); j++){
palavras[j] = tags.get(j);
}
v3 = qdao.searchInTags(palavras);
}
if(disciplinas[0].length()>1){
v4 = qdao.buscaPelaDisciplina(disciplinas[0]);
}
if(tipo.length()>0){
v5 = qdao.buscaPeloTipoQuestao(tipo);
}
if(grau.length()>0){
v6 = qdao.buscaPeloGrauDificuldade(Integer.parseInt(grau));
}
//filtraQuestao(...)faz a intersecção...
vec_tratado = qdao.filtraQuestoes(q1, v2, v3, v4, v5, v6);
out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>");
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("Resultado da Busca");
out.println("</title>");
out.println("</head>");
out.println("<body>");
if(!vec_tratado.isEmpty()){
out.println("Selecione uma questão para visualiza-la na íntegra.");
out.println("<form name='busca_questao' method='post' action='vizualizar_1.jsp'>");
out.println("<table border='0' align='center'");
for(int j=0; j < vec_tratado.size(); j++) {
out.println("<tr>");
out.println("<input type='radio' name='elementos' value='"+vec_tratado.get(j).getIdQuestao()+"'> "+vec_tratado.get(j).getEnunciado().toString()+"<br>");
out.println("</tr>");
}
out.println("</table>");
out.println("<input type='submit' value='Visualizar' name='Visualizar' />");
}else{
out.println("Nenhuma questão encontrada.");
out.println("<br>");
}
out.println("<input type='button' value='Voltar' onClick='history.go(-1)'>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (SQLException ex) {
Logger.getLogger(BuscaQuestao.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(BuscaQuestao.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (SQLException ex) {
Logger.getLogger(BuscaQuestao.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(BuscaQuestao.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}