package servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import business.Disciplina;
import business.Ementa;
import dao.DisciplinaDAO;
import dao.EmentaDAO;

public class EmentaServlet extends javax.servlet.http.HttpServlet implements
		javax.servlet.Servlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5068059799146298527L;
	EmentaDAO dao = new EmentaDAO();
	DisciplinaDAO disciplinas = new DisciplinaDAO();

	public void init(ServletConfig config) throws ServletException{ 
	
	  
	ServletContext context = config.getServletContext();

    List<Disciplina> lista = new ArrayList<Disciplina>();

	super.init(config);


//	  Disciplina disciplina; 
//	  disciplina = new Disciplina(1, "matematica");
	  
	  
      lista = disciplinas.listarDisciplinas();
      

//      Disciplina disciplina2; 
 //     disciplina2 = new Disciplina(2, "portugues");
	  
	  
   //   lista.add(disciplina2);]]
      
      context.setAttribute("minhalista", lista);
	
}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String comando = request.getParameter("comando");

		if (comando != null) {

			if (comando.equalsIgnoreCase("inserir")) {

				comandoInserir(request, response);

			}
			if (comando.equalsIgnoreCase("remover")) {
				comandoRemover(request, response);
			}

			if (comando.equalsIgnoreCase("listar")) {
				comandoListar(request, response);
			}

		}
	}

	public void comandoInserir(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String conteudo = request.getParameter("conteudo");
		String num_aulas = request.getParameter("num_aulas");
		String data_ementa = request.getParameter("data_ementa");
		String id = request.getParameter("listDisciplina");

		System.out.println(id);

		Ementa ementa = new Ementa();

		ementa.setConteudo(conteudo);
		ementa.setNum_aulas(num_aulas);
		ementa.setData_ementa(data_ementa);
		ementa.setId_disciplina(id);

		// Insere o Ementa no Banco
		// //dao.inserir(al);
		dao.adicionarEmenta(ementa);

		// Avisa o Usuário
		response.sendRedirect("ementaInserir.jsp?msg=Aluno Inserido.");

	}

	public void comandoRemover(HttpServletRequest request,
			HttpServletResponse response) throws IOException, ServletException {
		// Recupera os parâmetros
		String conteudo = request.getParameter("conteudo");
		String origem = request.getParameter("origem");

		// Remove o conteudo
		String msg = dao.removerEmenta(conteudo);

		if (msg == null) {
			// Testa pela origem
			if (origem.equals("formulario"))
				response.sendRedirect("ementaRemover.jsp?msg=Ementa Removida.");
			else if (origem.equals("lista"))
				comandoListar(request, response);
		} else
			response.sendRedirect("alunoRemover.jsp?msg=Aluno Inexistente.");
	}

	public void comandoListar(HttpServletRequest request, 
		   HttpServletResponse response)
		   throws IOException,ServletException
{
//ArrayList lista = dao.listar();
	List<Ementa> lista = dao.listarEmentas();

// Guarda como atributo de requisição
request.setAttribute("lista",lista);

// Redireciona a requisição internamente para a página
RequestDispatcher rd = request.getRequestDispatcher("ementaListar.jsp");
rd.forward(request, response);
}}
