Update of 
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias
In directory 
james.mmbase.org:/tmp/cvs-serv24748/alias/src/java/com/finalist/cmsc/alias

Modified Files:
        AliasNavigationRenderer.java AliasNavigationItemManager.java 
Log Message:
CMSC-639 Add virtual page functionality - Alias


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias
See also: http://www.mmbase.org/jira/browse/CMSC-639


Index: AliasNavigationRenderer.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias/AliasNavigationRenderer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- AliasNavigationRenderer.java        1 Feb 2008 12:18:57 -0000       1.5
+++ AliasNavigationRenderer.java        1 Feb 2008 16:25:35 -0000       1.6
@@ -1,8 +1,14 @@
 package com.finalist.cmsc.alias;
 
+import java.io.IOException;
+
 import javax.servlet.ServletConfig;
 import javax.servlet.http.*;
 
+import org.apache.commons.lang.StringUtils;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
 import com.finalist.cmsc.alias.beans.om.Alias;
 import com.finalist.cmsc.beans.om.NavigationItem;
 import com.finalist.cmsc.navigation.*;
@@ -13,6 +19,9 @@
 
 public class AliasNavigationRenderer implements NavigationItemRenderer {
 
+    /** MMbase logging system */
+   private static Logger log = 
Logging.getLoggerInstance(AliasNavigationRenderer.class.getName());
+    
    protected static String CONTENT_TYPE = "text/html";
 
    public void render(NavigationItem item, HttpServletRequest request, 
HttpServletResponse response,
@@ -40,10 +49,22 @@
              registry.setScreen(oldScreen);            
          }
          else {
+             String url = alias.getUrl();
+             if (!StringUtils.isBlank(url)) {
+                 String redirect = response.encodeRedirectURL(url);
+                 try {
+                    response.sendRedirect(redirect);
+                }
+                catch (IOException e) {
+                    log.debug("" + e.getMessage(), e);
+                }
+             }
+             else {
             throw new IllegalArgumentException(
                         "Trying to resolve Alias without related pages 
id:"+item.getId());
          }
       }
+      }
       else {
          throw new IllegalArgumentException(
                "Got a wrong type in the AliasNavigationRenderer (only wants 
Alias), was" + item.getClass());


Index: AliasNavigationItemManager.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/alias/src/java/com/finalist/cmsc/alias/AliasNavigationItemManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- AliasNavigationItemManager.java     28 Jan 2008 21:16:09 -0000      1.4
+++ AliasNavigationItemManager.java     1 Feb 2008 16:25:35 -0000       1.5
@@ -39,12 +39,18 @@
         }
 
         Alias alias = MMBaseNodeMapper.copyNode(node, Alias.class);
-        NodeList relatedNodes = node.getRelatedNodes("page", "related", 
"destination");
-        if(relatedNodes.size() > 0) {
-            Node page = relatedNodes.getNode(0);
+        NodeList relatedPages = node.getRelatedNodes("page", "related", 
"destination");
+        if(relatedPages.size() > 0) {
+            Node page = relatedPages.getNode(0);
             alias.setPage(page.getNumber());
         }
         
+        NodeList relatedUrls = node.getRelatedNodes("urls", "related", 
"destination");
+        if(relatedUrls.size() > 0) {
+            Node url = relatedUrls.getNode(0);
+            alias.setUrl(url.getStringValue("url"));
+        }
+        
         return alias;
        }
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to