package pt.estgp.estgweb.web.controllers.announcements;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.views.CourseView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.services.announcements.CreateAnnouncementService;
import pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController;
import pt.estgp.estgweb.web.form.announcements.MessagesForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* @author Jorge Machado
* @author Fabio Velez
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class MessagesController
extends CourseUnitsController
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(MessagesController.
class);
public ActionForward loadCourses
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws ServletException
{
try
{
MessagesForm mF =
(MessagesForm
) form
;
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 1.5.0/docs/api/java/lang/String.html">String[]{mF.
getImportYear(),mF.
getDepartamento()};
List
<CourseView
> courseViews =
(List
<CourseView
>) sm.
execute(RequestUtils.
getRequester(request, response
),
"LoadCoursesImportYearArea", args, names
);
mF.
setCourseViews(courseViews
);
addMessage
(request,
"submit.todo.message.courses.loaded");
return mapping.
findForward("load");
}
catch (FilterChainFailedException e
)
{
return mapping.
findForward("error401");
}
catch (NotFoundException e
)
{
return mapping.
findForward("error404");
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e, e
);
return mapping.
findForward("error500");
}
}
public ActionForward loadCourse
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws ServletException
{
try
{
MessagesForm mF =
(MessagesForm
) form
;
//init courses
loadCourses
(mapping,form,request,response
);
if(mF.
getCourseId() > 0
)
{
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{mF.
getCourseId(),
true};
CourseView courseView =
(CourseView
) sm.
execute(RequestUtils.
getRequester(request, response
),
"LoadCourse", args, names
);
if(mF.
getImportYear() !=
null && mF.
getImportYear().
length()>0
)
{
List
<CourseUnitView
> onYearUnits =
new ArrayList
<CourseUnitView
>();
for(CourseUnitView courseUnitView: courseView.
getCourseUnits())
{
if(courseUnitView.
getImportYear().
equals(mF.
getImportYear()))
{
if(mF.
getSemestre() !=
null && mF.
getSemestre().
length()>0
)
{
if(courseUnitView.
getSemestre().
equals(mF.
getSemestre()))
onYearUnits.
add(courseUnitView
);
}
else
onYearUnits.
add(courseUnitView
);
}
}
courseView.
setCourseUnits(onYearUnits
);
}
mF.
setCourseView(courseView
);
}
return mapping.
findForward("load");
}
catch (FilterChainFailedException e
)
{
return mapping.
findForward("error401");
}
catch (NotFoundException e
)
{
return mapping.
findForward("error404");
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e, e
);
return mapping.
findForward("error500");
}
}
public ActionForward sendMessage
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws ServletException
{
try
{
MessagesForm mF =
(MessagesForm
) form
;
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{request, mF.
getFromEmail(),mF.
getFromRole(),mF.
getImportYear(),mF.
getDepartamento(),mF.
getCourseId(),mF.
getCourseUnitId(),mF.
getSemestre(), CreateAnnouncementService.
MessageTarget.
parse(mF.
getTarget()),mF.
getText(),mF.
getSubject()};
// String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target,
1.5.0/docs/api/java/lang/Integer.html">Integer size =
(1.5.0/docs/api/java/lang/Integer.html">Integer) sm.
execute(RequestUtils.
getRequester(request, response
),
"SendMessage", args, names
);
addMessage
(request,
"submit.todo.message.success",
"" + size
);
return mapping.
findForward("success");
}
catch (FilterChainFailedException e
)
{
return mapping.
findForward("error401");
}
catch (NotFoundException e
)
{
return mapping.
findForward("error404");
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e, e
);
return mapping.
findForward("error500");
}
}
}