1   package ch.ige.edossier.web.struts;
2   
3   import javax.servlet.http.HttpServletRequest;
4   import javax.servlet.http.HttpServletResponse;
5   import javax.servlet.http.HttpSession;
6   import org.apache.log4j.Logger;
7   import org.apache.struts.action.*;
8   import ch.ige.edossier.web.server.EDossierControl;
9   import ch.ige.edossier.web.vo.DossierVO;
10  import ch.ige.edossier.web.vo.ImageVO;
11  
12  /**
13   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
14   * MUSS-ZIEL [M4] - Detail-Dossier (Pflichtenheft b32.03_PF_eDossier.pdf, Seite 16)<br>
15   * Die Klasse DetailDossierAction verarbeitet die Daten der DetailDossierForm.
16   * <p>
17   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
18   * @author    Anita Rueegsegger, Marc Bouquet
19   * @version   $Id: DetailDossierAction.java,v 1.13 2004/10/22 01:58:23 bouquet Exp $
20   */
21  public class DetailDossierAction extends Action
22  {
23    // Attribute für Log4j-Logging
24    private static final Logger LOG = Logger.getLogger( DetailDossierAction.class );
25  
26    /**
27     * Die Methode execute wird aufgerufen, wenn auf der dossier.jsp ein Link auf die Detail-Ansicht ausgewählt wird.
28     * In der Methode werden die Daten verarbeitet die in der Form gehalten werden.
29     * @param actionMapping ActionMapping
30     * @param actionForm ActionForm
31     * @param httpServletRequest HttpServletRequest
32     * @param httpServletResponse HttpServletResponse
33     * @throws Exception Unerwarteter Fehler
34     * @return ActionForward
35     */
36    public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse )
37    {
38      ActionErrors errors = new ActionErrors();
39      HttpSession session = httpServletRequest.getSession( false );
40      EDossierFacade eFacade = new EDossierControl();
41  
42      try
43      {
44        // Prüfen ob, eine gültige Session vorhanden ist.
45        if( session == null || ( ( Boolean )session.getAttribute( "token" ) ).booleanValue() == false )
46        {
47          return( actionMapping.findForward( "index" ) );
48        }
49  
50        // bereinigen der Session
51        if( ( ImageVO )session.getAttribute( "imageVO" ) != null )
52        {
53          session.removeAttribute( "imageVO" );
54        }
55  
56        String idDossier = httpServletRequest.getParameter( "idDossier" );
57        DossierVO dossierVO = eFacade.getDossier( Integer.parseInt( idDossier ) );
58  
59        // Fügt die Objekte in die Session ein
60        if( dossierVO != null )
61        {
62          session.setAttribute( "dossierVO", dossierVO );
63          session.setAttribute( "listAdrBailor", dossierVO.getListAdrBailor() );
64          session.setAttribute( "listAdrMasterAgent", dossierVO.getListAdrMasterAgent() );
65          session.setAttribute( "listAdrAgent", dossierVO.getListAdrAgent() );
66          session.setAttribute( "listPriorityVO", dossierVO.getListPriorityVO() );
67          session.setAttribute( "listTMKindVO", dossierVO.getListTMKindVO() );
68  
69          if( dossierVO.getImageVO() != null )
70          {
71            session.setAttribute( "imageVO", dossierVO.getImageVO() );
72          }
73        }
74      }
75      catch( Exception ex )
76      {
77        LOG.error( "Fehler: " + ex.getMessage() );
78        errors.add( "dossierVO", new ActionError( "errors.dossier", ex.getMessage() ) );
79        saveErrors( httpServletRequest, errors );
80        return( new ActionForward( actionMapping.getInput() ) );
81      }
82  
83      return( actionMapping.findForward( "forward" ) );
84    }
85  }
86