[Castore-commits] RecupDocForm.java 1.8 1.9

Céline BENOIT cbenoit at adullact1.hosting.cri74.org
Ven 4 Aou 17:25:41 CEST 2006


Update of /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/forms/documents
In directory adullact1:/tmp/cvs-serv21061/src/java/fr/emn/castor/struts/forms/documents

Modified Files:
	RecupDocForm.java 
Log Message:
ajout du logger
création de la méthode getInfosWf pour ajouter des informations sur l'étape en cours du document

Index: RecupDocForm.java
===================================================================
RCS file: /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/forms/documents/RecupDocForm.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** RecupDocForm.java	16 May 2006 15:31:51 -0000	1.8
--- RecupDocForm.java	4 Aug 2006 15:25:39 -0000	1.9
***************
*** 46,49 ****
--- 46,51 ----
  import javax.servlet.http.HttpServletRequest;
  
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionMapping;
***************
*** 51,55 ****
--- 53,61 ----
  import fr.emn.castor.common.Constants;
  import fr.emn.castor.documents.Facade;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.WorkflowException;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.ValidationStep.ValidationTypeEnum;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.ValidationStep.WhoEnum;
  import fr.emn.castor.struts.common.session.StrutsConstants;
+ import fr.emn.castor.users.UsersConstants;
  
  /**
***************
*** 61,64 ****
--- 67,74 ----
   */
  public class RecupDocForm extends ActionForm {
+ 
+     /** le logger. */
+     private static Log log = LogFactory.getLog(RecupDocForm.class);
+ 
      /** Les documents en attente de vallidation. */
      private Map<String, Map<String, String>> waitingDocs = null;
***************
*** 97,100 ****
--- 107,111 ----
              mapDoc.put("docName", fdocs.getNameDoc(idDoc));
              this.waitingDocs.put(idDoc, mapDoc);
+             this.getInfosWf(idDoc, mapDoc);
          }
          // la liste des documents en cours de validation
***************
*** 104,107 ****
--- 115,119 ----
          for (String idDoc : inProgressDocsList) {
              HashMap<String, String> mapDoc = new HashMap<String, String>();
+             mapDoc.put("idDoc", idDoc);
              mapDoc.put("soumetteurName", fusers
                  .getUserNameAndFirstName(fdocs.getSoumetteurName(idDoc)));
***************
*** 112,115 ****
--- 124,128 ----
                      .getCurrentValidateurName(idDoc)));
              this.inProgressDocs.put(idDoc, mapDoc);
+             this.getInfosWf(idDoc, mapDoc);
          }
          // la liste des documents en attente d'un admin pour la prochaine etape
***************
*** 118,121 ****
--- 131,135 ----
          for (String idDoc : waitingAdminDocsList) {
              HashMap<String, String> mapDoc = new HashMap<String, String>();
+             mapDoc.put("idDoc", idDoc);
              mapDoc.put("soumetteurName", fusers
                  .getUserNameAndFirstName(fdocs.getSoumetteurName(idDoc)));
***************
*** 123,130 ****
--- 137,235 ----
              mapDoc.put("docName", fdocs.getNameDoc(idDoc));
              this.waitingAdminDocs.put(idDoc, mapDoc);
+             this.getInfosWf(idDoc, mapDoc);
          }
          // TODO : utilité de la ligne suivante ?
          request.getSession().removeAttribute(
              StrutsConstants.SESSION_VALIDATION_COLLNATIVESANDPUB);
+ 
+     }
+ 
+     private void getInfosWf(final String idDoc, Map<String, String> mapDoc) {
+         Facade fdocs = Facade.getInstance();
+         mapDoc.put("idDoc", idDoc);
+         // récupèration de l'etape courante et de l'identifiant du WF
+         int etapeCourante = Integer.valueOf(
+             fdocs.getCurrentValidationStep(idDoc)).intValue();
+         try {
+             String idWf = fdocs.getWorkflow(idDoc);
+ 
+             /*{Validateur=documentalist, Type_validation=content, Type_validateur=PROFILE}*/
+             /*{Validateur=contributor_director, Type_validation=content, Type_validateur=METADATALINK}*/
+             Map mapInfos = fdocs.getInfosValidation(idWf, ++etapeCourante);
+ 
+             // Type_validation
+             ValidationTypeEnum typeValidation = ValidationTypeEnum
+                 .valueOf(mapInfos
+                     .get("Type_validation").toString().toUpperCase());
+             switch (typeValidation) {
+                 case CONTENT:
+                     mapDoc.put("Type_validation", ValidationTypeEnum.CONTENT
+                         .toString());
+                     break;
+                 case METADATA:
+                     mapDoc.put(
+                         "Type_validation", ValidationTypeEnum.METADATA
+                             .toString());
+                     break;
+                 case COLLECTION:
+                     mapDoc.put(
+                         "Type_validation", ValidationTypeEnum.COLLECTION
+                             .toString());
+                     break;
+                 case ACCESS:
+                     mapDoc.put("Type_validation", ValidationTypeEnum.ACCESS
+                         .toString());
+                     break;
+                 default:
+                     mapDoc.put("Type_validation", typeValidation.toString());
+             }
+ 
+             // Type_validateur
+             WhoEnum typeValidateur = WhoEnum.valueOf(mapInfos.get(
+                 "Type_validateur").toString().toUpperCase());
+             String nomTuteur = null;
+             switch (typeValidateur) {
+                 case METADATALINK:
+                     // récupérer le nom du tuteur dans la notice
+                     nomTuteur = fdocs.getNoticeValue(
+                         idDoc, "contributor_director");
+                     mapDoc.put("Nom_Tuteur", nomTuteur);
+                     break;
+                 case GROUP:
+                     mapDoc.put("Type_validateur", WhoEnum.GROUP.toString());
+                     break;
+                 case PEOPLE:
+                     mapDoc.put("Type_validateur", WhoEnum.PEOPLE.toString());
+                     break;
+                 case PROFILE:
+                     mapDoc
+                         .put("Type_validateur", WhoEnum.PROFILE.toString());
+                     break;
+                 default:
+                     mapDoc.put("Type_validateur", typeValidateur.toString());
+             }
+ 
+             // validateur
+             String validateur = (String) mapInfos.get("Validateur");
+             if (validateur.equals("contributor_director")) {
+                 if (nomTuteur != null) {
+                     mapDoc.put(
+                         "Validateur", UsersConstants.USERTYPE_SUPERVISOR);
+                 } else
+                     mapDoc.put(
+                         "Validateur", UsersConstants.USERTYPE_SUPERVISOR);
+             } else if (validateur.equals("administrator")) {
+                 mapDoc.put(
+                     "Validateur", UsersConstants.USERTYPE_ADMINISTRATOR);
+             } else if (validateur.equals("documentalist")) {
+                 mapDoc.put(
+                     "Validateur", UsersConstants.USERTYPE_DOCUMENTALIST);
+             } else
+                 mapDoc.put("Validateur", validateur);
+         } catch (WorkflowException e) {
+             if (log.isErrorEnabled()) {
+                 log.error("Erreur lors de la recherche du workflow" + e);
+             }
+         }
      }
  




Plus d'informations sur la liste de diffusion Castore-commits