package pl.zgora.uz.wmie.fe.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import pl.zgora.uz.wmie.fe.service.PracownikService;
import pl.zgora.uz.wmie.fe.service.StanowiskoService;
import pl.zgora.uz.wmie.fe.hbm.classes.Pracownik;
import pl.zgora.uz.wmie.fe.hbm.classes.Stanowisko;
import pl.zgora.uz.wmie.fe.hbm.classes.Dzial;
import pl.zgora.uz.wmie.fe.util.BusinessUtil;
public class PracownicyAction extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String page=null;
if ("table".equals(req.getParameter("method"))) {
setTableData(req);
page = "/pages/pracownicy/pracownicyTable.jsp";
}
else {
setSelectData(req);
page = "/pages/stanowiska/stanowiskaSelect.jsp";
}
RequestDispatcher rd = req.getRequestDispatcher(page);
if (rd != null) {
rd.forward(req, res);
}
}
private void setTableData(HttpServletRequest req) {
PracownikService pracownikService=null;
try {
pracownikService=(PracownikService)BusinessUtil.findBusiness("PracownikService");
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property(Pracownik.PROPERTY_ID));
projectionList.add(Projections.property(Pracownik.PROPERTY_IMIE));
projectionList.add(Projections.property(Pracownik.PROPERTY_NAZWISKO));
projectionList.add(Projections.property(Pracownik.PROPERTY_ADRES));
projectionList.add(Projections.property(Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_NAZWA));
projectionList.add(Projections.property(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Object[]> dane=pracownikService.findByParams(projectionList);
List<Object[]> pusteDane = new ArrayList<Object[]>();
req.setAttribute("daneDoTabelki", dane);
pusteDane.add(new Object[]{"id","nazwa","typ"});
req.setAttribute("pusteDane", pusteDane);
}
catch (Exception e) {
e.printStackTrace();
}
}
private void setSelectData(HttpServletRequest req) {
PracownikService pracownikService = null;
try {
pracownikService = (PracownikService) BusinessUtil
.findBusiness("PracownikService");
req.setAttribute("pracownik", pracownikService.load(1));
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property(Pracownik.PROPERTY_ID));
projectionList.add(Projections.property(Pracownik.PROPERTY_IMIE));
projectionList.add(Projections.property(Pracownik.PROPERTY_NAZWISKO));
projectionList.add(Projections.property(Pracownik.PROPERTY_ADRES));
projectionList.add(Projections.property(Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_NAZWA));
projectionList.add(Projections.property(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
req.setAttribute("pracownicyDoSelecta", pracownikService
.findByParams(projectionList));
} catch (Exception e) {
e.printStackTrace();
}
}
}