1 package ch.ige.edossier.web.struts;
2
3 import java.text.SimpleDateFormat;
4 import java.util.List;
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7 import javax.servlet.http.HttpSession;
8 import org.apache.log4j.Logger;
9 import org.apache.struts.action.*;
10 import ch.ige.edossier.web.server.EDossierControl;
11 import ch.ige.edossier.web.vo.AnswerVO;
12 import ch.ige.edossier.web.vo.ImageVO;
13 import ch.ige.edossier.web.vo.InterceptionVO;
14
15
25 public class AnswerShowAction extends Action
26 {
27 private static final Logger LOG = Logger.getLogger( AnswerShowAction.class );
29
30
40 public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse )
41 {
42 ActionErrors errors = new ActionErrors();
43 HttpSession session = httpServletRequest.getSession( false );
44 EDossierFacade eFacade = new EDossierControl();
45
46 try
47 {
48 if( session == null || ( ( Boolean )session.getAttribute( "token" ) ).booleanValue() == false )
50 {
51 return( actionMapping.findForward( "index" ) );
52 }
53
54 if( ( ImageVO )session.getAttribute( "imageVO" ) != null )
56 {
57 session.removeAttribute( "imageVO" );
58 }
59
60 String idInterception = httpServletRequest.getParameter( "idInterception" );
61 int interceptionId = Integer.parseInt( idInterception );
62
63 checkSessionObjects( session, eFacade, interceptionId );
64 this.setSessionObjects( session, interceptionId );
65
66 AnswerVO answerVO = eFacade.getAnswer( interceptionId );
67
68 if( answerVO != null )
69 {
70 ImageVO imageVO = eFacade.getAttachement( answerVO );
71
72 if( imageVO != null )
74 {
75 if( !imageVO.getImageType().equals( "application/pdf" ) )
76 {
77 answerVO.setAttachement( null );
79 session.setAttribute( "imageVO", imageVO );
81 }
82 }
83
84 session.setAttribute( "answerVO", answerVO );
85 return( actionMapping.findForward( "forward" ) );
86 }
87 else
88 {
89 errors.add( "answerVO", new ActionError( "error.noanswer" ) );
90 saveErrors( httpServletRequest, errors );
91 return( new ActionForward( actionMapping.getInput() ) );
92 }
93 }
94 catch( Exception ex )
95 {
96 LOG.debug( "Message: " + ex.getMessage() );
97 errors.add( "answerVO", new ActionError( "error.answer", ex.getMessage() ) );
98 saveErrors( httpServletRequest, errors );
99 return( new ActionForward( actionMapping.getInput() ) );
100 }
101 }
102
103
112 private void checkSessionObjects( HttpSession session, EDossierFacade eFacade, int interceptionId ) throws Exception
113 {
114 if( ( ImageVO )session.getAttribute( "imageVO" ) != null )
116 {
117 session.removeAttribute( "imageVO" );
118 }
119
120 if( ( InterceptionVO )session.getAttribute( "interceptionVO" ) == null )
122 {
123 session.setAttribute( "interceptionVO", eFacade.getInterception( interceptionId ) );
124 }
125 }
126
127
132 private void setSessionObjects( HttpSession session, int interceptionId )
133 {
134 SimpleDateFormat sdf = new SimpleDateFormat( "dd.MM.yyyy" );
135
136 List listInterceptionVO = ( List )session.getAttribute( "alInterceptionVO" );
137 InterceptionVO interceptionVO = null;
138 for( int i = 0; i < listInterceptionVO.size(); i++ )
139 {
140 interceptionVO = ( InterceptionVO )listInterceptionVO.get( i );
141 if( interceptionVO.getInterceptionId() == interceptionId )
142 {
143 String answer_dat = sdf.format( interceptionVO.getAnswerDat() );
144 session.setAttribute( "answer_dat", answer_dat );
145 LOG.debug( "Answer Dat set on Session: " + answer_dat );
146 break;
147 }
148 }
149 }
150 }
151