Author: ate
Date: Mon Sep  3 06:49:37 2012
New Revision: 1380138

URL: http://svn.apache.org/viewvc?rev=1380138&view=rev
Log:
RAVE-694: example multi-view mapping and rendering

Removed:
    
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/
    
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/service/
Modified:
    
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/hmvc/controller/UserPageController.java
    
rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
    rave/sandbox/content-services/demo-portal/src/main/resources/url-mapping.xml
    
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
    
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfigTest.java

Modified: 
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/hmvc/controller/UserPageController.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/hmvc/controller/UserPageController.java?rev=1380138&r1=1380137&r2=1380138&view=diff
==============================================================================
--- 
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/hmvc/controller/UserPageController.java
 (original)
+++ 
rave/sandbox/content-services/demo-portal/src/main/java/org/apache/rave/portal/web/hmvc/controller/UserPageController.java
 Mon Sep  3 06:49:37 2012
@@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 @Controller
@@ -53,11 +54,26 @@ public class UserPageController {
         this.pageLayoutService = pageLayoutService;
     }
 
-    @Hmvc
-    @RequestMapping
-    public String render(Model model, HttpServletRequest request) {
+    @Hmvc(view="defaultPage") @RequestMapping
+    public String viewDefaultPage(Model model, HttpServletRequest request) {
+        return view(null, model, request);
+    }
+
+    @Hmvc @RequestMapping
+    public String view(@PathVariable Long pageId, Model model, 
HttpServletRequest request) {
         List<Page> pages = getAllPagesForAuthenticatedUser();
-        Page page = pageService.getDefaultPageFromList(pages);
+        Page page = null;
+        if (pageId != null) {
+            try {
+                page = pageService.getPageFromList(pageId, pages);
+            }
+            catch (Exception e) {
+                logger.info("unable to get page - possibly because a shared 
page was revoked by its owner");
+            }
+        }
+        if (page == null) {
+            page = pageService.getDefaultPageFromList(pages);
+        }
         PageUser currentPageUser = null;
         User thisUser = userService.getAuthenticatedUser();
         for(PageUser pageUser : page.getMembers()){
@@ -66,13 +82,11 @@ public class UserPageController {
             }
         }
         List<PageLayout> pageLayouts = 
pageLayoutService.getAllUserSelectable();
-
         model.addAttribute(ModelKeys.USER, thisUser);
         model.addAttribute(ModelKeys.PAGE, page);
         model.addAttribute(ModelKeys.PAGES, pages);
         model.addAttribute(ModelKeys.PAGE_USER, currentPageUser);
         model.addAttribute(ModelKeys.PAGE_LAYOUTS, pageLayouts);
-
         return "hmvc/page";
     }
 

Modified: 
rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml?rev=1380138&r1=1380137&r2=1380138&view=diff
==============================================================================
--- 
rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
 (original)
+++ 
rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
 Mon Sep  3 06:49:37 2012
@@ -25,7 +25,7 @@
     <page-fragment name="footer" 
controller="org.apache.rave.portal.web.hmvc.example.MyFooterController"/>
   </page-definition>
 
-  <page-definition name="myPage4" 
controller="org.apache.rave.portal.web.hmvc.controller.UserPageController">
+  <page-definition name="userPage" 
controller="org.apache.rave.portal.web.hmvc.controller.UserPageController">
     <page-fragment name="header" 
controller="org.apache.rave.portal.web.hmvc.controller.PageHeaderController"/>
     <page-fragment name="body" 
controller="org.apache.rave.portal.web.hmvc.controller.PageBodyController">
       <page-fragment name="tabs" 
controller="org.apache.rave.portal.web.hmvc.controller.PageTabsController"/>

Modified: 
rave/sandbox/content-services/demo-portal/src/main/resources/url-mapping.xml
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/url-mapping.xml?rev=1380138&r1=1380137&r2=1380138&view=diff
==============================================================================
--- 
rave/sandbox/content-services/demo-portal/src/main/resources/url-mapping.xml 
(original)
+++ 
rave/sandbox/content-services/demo-portal/src/main/resources/url-mapping.xml 
Mon Sep  3 06:49:37 2012
@@ -18,7 +18,10 @@
   under the License.
   -->
 <url-configuration name="default">
+  <url-mapping url="/home"          page="userPage" views="defaultPage"/>
+  <url-mapping url="/page"          page="userPage" views="defaultPage"/>
+  <url-mapping url="/page/{pageId}" page="userPage"/>
+
   <url-mapping url="/mypage3" page="myPage3"/>
-  <url-mapping url="/mypage4" page="myPage4"/>
   <url-mapping url="/mypageFoo" page="myPage3" views="bar"/>
 </url-configuration>

Modified: 
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java?rev=1380138&r1=1380137&r2=1380138&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
 (original)
+++ 
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
 Mon Sep  3 06:49:37 2012
@@ -22,7 +22,6 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.DispatcherServlet;
 import org.springframework.web.servlet.ModelAndView;
@@ -44,11 +43,6 @@ public class HmvcHandlerMethodHandlerAda
                 
request.setAttribute(DispatcherServlet.INPUT_FLASH_MAP_ATTRIBUTE, 
mv.getModel());
                 ModelAndView cmv = handleInternal(request, response, chm);
                 if (cmv != null) {
-                    // override view name (if set):
-                    final String viewName = 
chm.getConfiguration().getViewName();
-                    if (StringUtils.isNotBlank(viewName)) {
-                        cmv.setViewName(viewName);
-                    }
                     cmvMap.put(name, cmv);
                 }
             }

Modified: 
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfigTest.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfigTest.java?rev=1380138&r1=1380137&r2=1380138&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfigTest.java
 (original)
+++ 
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfigTest.java
 Mon Sep  3 06:49:37 2012
@@ -94,7 +94,8 @@ public class HmvcHandlerMethodMappingByC
         assertTrue(childModels != null);
         final ModelAndView head = childModels.get("head");
         assertTrue(head != null);
-        assertEquals("Expected view override", "hmvc/override/myheader", 
head.getViewName());
+        assertEquals("Expected view", "hmvc/myheader", head.getViewName());
+// TODO:        assertEquals("Expected view override", 
"hmvc/override/myheader", head.getViewName());
         request.setRequestURI("/mypageFoo");
         handlerMethod = (HmvcHandlerMethod) getHandler(request);
         assertTrue("Expected 3 child names", 
handlerMethod.getConfiguration().getChildren().keySet().size() == 3);


Reply via email to