/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package controller;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import repository.DiagramDAO;
/**
*
* @author wintor12
*/
/**
* Information class that contains all the features of one Display
* @ doc author Rui Hou
*/
public class Display extends HttpServlet {
// Comparer object
private final static String COMPARE_OBJECT = "CompareObject";
/**
* 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 {
// retrieve diagram list from database.
// Always clear the comparer object when we're on the display page
// in case the user wants to perform a different merge.
HttpSession session = request.getSession();
session.setAttribute(COMPARE_OBJECT, null);
int ProjectID;
if ((request.getParameter("ProjectID") != null))
{
ProjectID = Integer.parseInt(request.getParameter("ProjectID"));
session.setAttribute("projId", ProjectID);
}
else
{
ProjectID = Integer.parseInt(session.getAttribute("projId").toString());
}
//Modified by Xuesong Meng
try{
ArrayList<domain.Diagram> diagrams = DiagramDAO.getDiagramList(ProjectID);
if (!diagrams.isEmpty()) {
request.setAttribute("diagrams", diagrams);
//set the first diagram in diagram list as the default display diagram..
request.setAttribute("firstPath", diagrams.get(0).getFilePath() + ".png");
request.setAttribute("diagramId1", diagrams.get(0).getDiagramId());
}
} catch(Exception e){
System.out.println(e.getMessage());
}
String userAgent = request.getHeader("User-Agent").toLowerCase();
OSDetails.setClientOS(userAgent);
request.setAttribute("ProjectID", ProjectID);
RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/JSP/display.jsp");
dispatcher.forward(request, response);
}
// <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 {
processRequest(request, response);
}
/**
* 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 occurss
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public void init() throws ServletException {
String serverOS = System.getProperty("os.name").toLowerCase();
OSDetails os = new OSDetails(serverOS);
}
}