ShowDocListener.java
package sk.iway.iwcm.doc;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import sk.iway.iwcm.system.spring.events.WebjetEvent;
import sk.iway.iwcm.system.spring.events.WebjetEventType;
/**
* Pocuva eventy z WebJETu potrebne na nastavenie (urcenych) atributov do requestu.
*/
@Component
public class ShowDocListener {
//@Autowired
//private DocDetailsRepository docRepo;
@Autowired
private HttpServletRequest request;
private NavbarService navbarService = new NavbarService();
@EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.doc.ShowDocBean'")
public void test(final WebjetEvent<ShowDocBean> event) {
WebjetEventType eventType = event.getEventType();
//Nastaví DocDetails objekt z DB pomocou setForceShowDoc (to zanmená že ďalej sa bude pracovať s týmto objektom)
if(eventType == WebjetEventType.ON_START) {
//DocDetails forceDoc = docRepo.getOne(Long.valueOf(event.getSource().getDocId()));
//event.getSource().setForceShowDoc(forceDoc);
}
DocDetails sourceDoc = event.getSource().getDoc();
if(eventType == WebjetEventType.ON_END && sourceDoc != null) {
HttpServletRequest sourceRequest = event.getSource().getRequest();
DocDB docDB = DocDB.getInstance();
//tempFieldADocId
if (sourceDoc.getTempFieldADocId() > 0) {
DocDetails dd_menu = docDB.getDoc(sourceDoc.getTempFieldADocId());
if (dd_menu != null) {
sourceRequest.setAttribute("template_object_a", dd_menu.getData());
}
} else if (sourceDoc.getTempFieldADocId() == -2) {
sourceRequest.setAttribute("template_object_a", "");
}
//tempFieldBDocId
if (sourceDoc.getTempFieldBDocId() > 0) {
DocDetails dd_menu = docDB.getDoc(sourceDoc.getTempFieldBDocId());
if (dd_menu != null) {
sourceRequest.setAttribute("template_object_b", dd_menu.getData());
}
} else if (sourceDoc.getTempFieldBDocId() == -2) {
sourceRequest.setAttribute("template_object_b", "");
}
//tempFieldCDocId
if (sourceDoc.getTempFieldCDocId() > 0) {
DocDetails dd_menu = docDB.getDoc(sourceDoc.getTempFieldCDocId());
if (dd_menu != null) {
sourceRequest.setAttribute("template_object_c", dd_menu.getData());
}
} else if (sourceDoc.getTempFieldCDocId() == -2) {
sourceRequest.setAttribute("template_object_c", "");
}
//tempFieldDDocId
if (sourceDoc.getTempFieldDDocId() > 0) {
DocDetails dd_menu = docDB.getDoc(sourceDoc.getTempFieldDDocId());
if (dd_menu != null) {
sourceRequest.setAttribute("template_object_d", dd_menu.getData());
}
} else if (sourceDoc.getTempFieldDDocId() == -2) {
sourceRequest.setAttribute("template_object_d", "");
}
//Set navbar
sourceRequest.setAttribute("navbar", navbarService.getNavbar(sourceDoc, request));
}
}
}