Author: snoopdave
Date: Sun Nov 25 13:09:21 2007
New Revision: 598055

URL: http://svn.apache.org/viewvc?rev=598055&view=rev
Log:
Improvements to planet model to make it possible to display via templates the 
list of planet groups available and URL to the pages and feeds of those groups.

Added:
    
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
Modified:
    
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
    
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
    
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java

Modified: 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
URL: 
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
--- 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
 (original)
+++ 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
 Sun Nov 25 13:09:21 2007
@@ -20,7 +20,6 @@
 
 import com.google.inject.Binder;
 import com.google.inject.Module;
-import org.apache.roller.planet.business.MultiPlanetURLStrategy;
 import org.apache.roller.planet.business.Planet;
 import org.apache.roller.planet.business.PlanetManager;
 import org.apache.roller.planet.business.PropertiesManager;
@@ -31,6 +30,7 @@
 import org.apache.roller.planet.business.jpa.JPAPlanetManagerImpl;
 import org.apache.roller.planet.business.jpa.JPAPropertiesManagerImpl;
 import org.apache.roller.weblogger.planet.business.WebloggerRomeFeedFetcher;
+import org.apache.roller.weblogger.planet.ui.PlanetURLStrategy;
 
 
 /**
@@ -47,7 +47,7 @@
         
         binder.bind(PlanetManager.class).to(     JPAPlanetManagerImpl.class);  
 
         binder.bind(PropertiesManager.class).to( 
JPAPropertiesManagerImpl.class);    
-        binder.bind(URLStrategy.class).to(       MultiPlanetURLStrategy.class);
+        binder.bind(URLStrategy.class).to(       PlanetURLStrategy.class);
         binder.bind(FeedFetcher.class).to(       
WebloggerRomeFeedFetcher.class);
     }
     

Added: 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
URL: 
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java?rev=598055&view=auto
==============================================================================
--- 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
 (added)
+++ 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetURLStrategy.java
 Sun Nov 25 13:09:21 2007
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.ui;
+
+import org.apache.roller.planet.business.MultiPlanetURLStrategy;
+import org.apache.roller.planet.business.PlanetFactory;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.config.PlanetRuntimeConfig;
+import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
+
+
+/**
+ * Override Planet's URL strategy for use within Roller.
+ */
+public class PlanetURLStrategy extends MultiPlanetURLStrategy {   
+    
+    
+    /**
+     * Get URL configured for Planet.
+     * @param planet There's only one planet in Roller, so this is ignored.
+     */
+    public String getPlanetURL(String planet) {
+        
+        StringBuffer url = new StringBuffer();
+        
+        PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
+        
+        url.append(PlanetRuntimeConfig.getProperty("site.absoluteurl"));
+        
+        return url.toString();
+    }
+    
+    
+    /**
+     * Get URL configured for Planet.
+     * @param planet There's only one planet in Roller, so this is ignored.
+     * @param group   Handle of planet group (or null for default group).
+     * @param pageNum Page number of results to return.
+     */
+    public String getPlanetGroupURL(String planet, String group, int pageNum) {
+
+        StringBuffer url = new StringBuffer();
+        String sep = "?";
+        
+        url.append(getPlanetURL(planet));
+        if (group != null) {
+            url.append(sep);
+            url.append("group=").append(group);
+            sep = "&";
+        }
+        
+        if (pageNum > 0) {
+            url.append(sep);
+            url.append("page=");
+            url.append(pageNum);
+            sep = "&";
+        }
+        
+        return url.toString();
+    }
+    
+    
+    /**
+     * Get URL of planet group's newsfeed.
+     * @param planet There's only one planet in Roller, so this is ignored.
+     * @param group Handle of planet group (or null for default group).
+     * @param feed  Feed format to be returned (ignored, currently only RSS is 
supported).
+     */
+    public String getPlanetGroupFeedURL(String planet, String group, String 
format) {
+        
+        StringBuffer url = new StringBuffer();
+        String sep = "?";
+        
+        url.append(WebloggerRuntimeConfig.getAbsoluteContextURL());
+        url.append("planetrss");
+
+        if (group != null) {
+            url.append(sep);
+            url.append("group=").append(group);
+            sep = "&";
+        }
+        
+        return url.toString();
+    }
+    
+    
+    /**
+     * Currently, Roller doesn't support OPML so this returns null.
+     * @param planet There's only one planet in Roller, so this is ignored.
+     * @param group Handle of planet group.
+     */
+    public String getPlanetGroupOpmlURL(String planet, String group) {
+        return null;
+    }
+}

Modified: 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
URL: 
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
--- 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
 (original)
+++ 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
 Sun Nov 25 13:09:21 2007
@@ -22,6 +22,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
@@ -49,11 +50,13 @@
     private static Log log = LogFactory.getLog(PlanetModel.class);
     
     private WeblogRequest  weblogRequest = null;
-    private URLStrategy urlStrategy = null;
-    private String pageLink = null;
+    private String         pageLink = null;
     private int            pageNum = 0;
-    private Weblog    weblog = null;
+    private Weblog         weblog = null;
     
+    private URLStrategy    urlStrategy = null;
+    private org.apache.roller.planet.business.URLStrategy planetUrlStrategy = 
null;
+
     
     public String getModelName() {
         return "planet";
@@ -79,6 +82,8 @@
             urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
         }
         
+        planetUrlStrategy = PlanetFactory.getPlanet().getURLStrategy();
+        
         // extract weblog object
         weblog = weblogRequest.getWeblog();
     } 
@@ -192,4 +197,58 @@
         return list;
     }
     
+    
+    /**
+     * Get PlanetGroups defined.
+     * @return List of Planet groups defined.
+     */
+    public List<PlanetGroup> getGroups() {
+        List list = new ArrayList<PlanetGroup>();
+        try {
+            PlanetManager planetManager = 
PlanetFactory.getPlanet().getPlanetManager();
+            Planet defaultPlanet = 
planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
+            Set<PlanetGroup> groups = 
(Set<PlanetGroup>)defaultPlanet.getGroups();
+            for (PlanetGroup group : groups) {
+                // TODO needs pojo wrapping from planet
+                list.add(group); 
+            }
+        } catch (Exception e) {
+            log.error("ERROR: getting groups", e);
+        }
+        return list;        
+    }
+    
+    
+    /**
+     * Get PlanetGroup by handle.
+     * @param groupHandle Handle of PlanetGroup to fetch.
+     * @return PlaneGroup specified by handle.
+     */
+    public PlanetGroup getGroup(String groupHandle) {
+        PlanetGroup group = null;
+        try {
+            PlanetManager planetManager = 
PlanetFactory.getPlanet().getPlanetManager();
+            Planet defaultPlanet = 
planetManager.getPlanet(DEFAULT_PLANET_HANDLE);            
+            // TODO needs pojo wrapping from planet
+            group = planetManager.getGroup(defaultPlanet, groupHandle);        
    
+        } catch (Exception e) {
+            log.error("ERROR: getting group", e);
+        }
+        return group;        
+    }
+    
+    
+    public String getPlanetURL() {
+        return planetUrlStrategy.getPlanetURL("ignored");
+    }
+
+    
+    public String getPlanetGroupURL(String group, int pageNum) {
+        return planetUrlStrategy.getPlanetGroupURL("ignored", group, pageNum);
+    }
+    
+    
+    public String getPlanetFeedURL(String group, String format) {
+        return planetUrlStrategy.getPlanetGroupFeedURL("ignored", group, 
format);
+    }
 }

Modified: 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
URL: 
http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java?rev=598055&r1=598054&r2=598055&view=diff
==============================================================================
--- 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
 (original)
+++ 
roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
 Sun Nov 25 13:09:21 2007
@@ -35,6 +35,7 @@
 import org.apache.roller.util.RegexUtil;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
 import org.apache.roller.weblogger.ui.rendering.util.ParsedRequest;
 import org.apache.roller.weblogger.util.URLUtilities;
 import org.apache.roller.weblogger.util.Utilities;
@@ -141,11 +142,16 @@
         }
         return false;
     }
-    
+        
     public boolean isUserAuthenticated() {
         return (parsedRequest.getAuthenticUser() != null);
     }
-        
+       
+    public UserWrapper getAuthenticatedUser() {
+        return parsedRequest.getAuthenticUser() != null 
+                ? UserWrapper.wrap(parsedRequest.getUser()) : null;
+    }
+             
     //-------------------------------------------------------------- Date utils
     /**
      * Return date for current time.


Reply via email to