[Castore-commits] BaseCastorePortlet.java 1.1 1.2 PortletConstants.java 1.1 1.2

Arnaud Thimel thimel at adullact1.hosting.cri74.org
Ven 16 Juin 19:00:28 CEST 2006


Update of /cvsroot/castore/castore-portlets/src/java/fr/emn/castor/portlets
In directory adullact1:/tmp/cvs-serv4156/src/java/fr/emn/castor/portlets

Modified Files:
	BaseCastorePortlet.java PortletConstants.java 
Log Message:
- Portlets de recherche (partiellement)
- utilisation de renderURL a la pace de actionURL + portlet:param
- regroupement des messages dans BaseCastorePortlet
- ajout d'un include de pages JSP commun aux portlets dans BaseCastorePortlet


Index: PortletConstants.java
===================================================================
RCS file: /cvsroot/castore/castore-portlets/src/java/fr/emn/castor/portlets/PortletConstants.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** PortletConstants.java	14 Jun 2006 18:27:59 -0000	1.1
--- PortletConstants.java	16 Jun 2006 17:00:25 -0000	1.2
***************
*** 83,87 ****
       * Espace de nommage pour les pages de soumission
       */
!     public static final String NS_SOUMISSION = FOLDER_PREFIX + "soumission/";
  
      /**
--- 83,87 ----
       * Espace de nommage pour les pages de soumission
       */
!     public static final String NS_SOUMISSION = FOLDER_PREFIX + "submit/";
  
      /**

Index: BaseCastorePortlet.java
===================================================================
RCS file: /cvsroot/castore/castore-portlets/src/java/fr/emn/castor/portlets/BaseCastorePortlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** BaseCastorePortlet.java	14 Jun 2006 18:27:59 -0000	1.1
--- BaseCastorePortlet.java	16 Jun 2006 17:00:25 -0000	1.2
***************
*** 40,44 ****
--- 40,49 ----
  package fr.emn.castor.portlets;
  
+ import static fr.emn.castor.portlets.PortletConstants.MIME_HTML;
+ 
  import java.io.IOException;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
  
  import javax.portlet.ActionRequest;
***************
*** 47,50 ****
--- 52,56 ----
  import javax.portlet.PortletException;
  import javax.portlet.PortletRequest;
+ import javax.portlet.PortletRequestDispatcher;
  import javax.portlet.RenderRequest;
  import javax.portlet.RenderResponse;
***************
*** 66,69 ****
--- 72,77 ----
  public abstract class BaseCastorePortlet extends GenericPortlet {
  
+     private static String contextName;
+ 
      /**
       * Renvoie l'instance de la facade de Documents 
***************
*** 164,166 ****
--- 172,271 ----
      }
  
+     /**
+      * Meme chose que
+      * {@link #include(RenderRequest, RenderResponse, String, String)} avec un
+      * type MIME en HTML
+      * @see #include(RenderRequest, RenderResponse, String, String)
+      */
+     protected void include(RenderRequest request, RenderResponse response,
+             String page) throws PortletException, IOException {
+         //Le type mime par defaut est HTML
+         include(request, response, page, MIME_HTML);
+     }
+ 
+     /**
+      * Cette methode inclut dans la reponse le contenu de la page JSP specifiee
+      * @param request la requete courante
+      * @param response la response en cours de construction
+      * @param page le chemin de la page jsp a inclure
+      * @param contentType le contenttype retourne
+      * @throws PortletException
+      * @throws IOException
+      */
+     protected void include(RenderRequest request, RenderResponse response,
+             String page, String contentType) 
+             throws PortletException, IOException {
+         log("[" + contentType + "] include '" + page + "'");
+ 
+         request.setAttribute("context", getContextName());
+ 
+         List<String> messages = (List<String>)request.getAttribute("_messages");
+         if (messages == null) {
+             messages = getParameterMessages(request, "_messages");
+         }
+         if (!messages.isEmpty()) {
+             request.removeAttribute("_messages");
+             request.setAttribute("messages", messages);
+         }
+         List<String> errors = (List<String>)request.getAttribute("_errors");
+         if (errors == null) {
+             errors = getParameterMessages(request, "_errors");
+         }
+         if (!errors.isEmpty()) {
+             request.removeAttribute("_errors");
+             request.setAttribute("errormessages", errors);
+         }
+ 
+         response.setContentType(contentType);
+         PortletRequestDispatcher dispatcher;
+         dispatcher = getPortletContext().getRequestDispatcher(page);
+         dispatcher.include(request, response);
+     }
+ 
+     private List<String> getParameterMessages(RenderRequest request, String messageType) {
+         List<String> messages;
+         //premier ajout de message, on va chercher les messages dans les parameters
+         String messagesParam = request.getParameter(messageType);
+         if (messagesParam != null && !"".equals(messagesParam)) {
+             messages = Arrays.asList(messagesParam.split(","));
+         } else {
+             messages = new ArrayList<String>();
+         }
+         return messages;
+     }
+ 
+     /**
+      * Renvoie le contexte de la portlet
+      * @return contextName
+      */
+     protected String getContextName() {
+         if (contextName == null) {
+             contextName = "/" + getPortletContext().getPortletContextName();
+         }
+         return contextName;
+     }
+ 
+     protected void forwardToRender(ActionRequest request,
+             ActionResponse response, String parameterName) {
+         String param = request.getParameter(parameterName);
+         response.setRenderParameter(parameterName, param);
+     }
+ 
+     protected void addError(RenderRequest request, String errorId) {
+         addMessage(request, errorId, "_errors");
+     }
+ 
+     protected void addMessage(RenderRequest request, String messageId) {
+         addMessage(request, messageId, "_messages");
+     }
+ 
+     private void addMessage(RenderRequest request, String messageId, String messageType) {
+         List<String> messages = (List<String>)request.getAttribute(messageType);
+         if (messages == null) {
+             messages = getParameterMessages(request, messageType);
+         }
+         messages.add(messageId);
+         request.setAttribute(messageType, messages);
+     }
+ 
  } //BaseCastorePortlet




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