Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-tagcloud/src/java/com/finalist/portlets/tagcloud/portlet
In directory 
james.mmbase.org:/tmp/cvs-serv6598/portlets-tagcloud/src/java/com/finalist/portlets/tagcloud/portlet

Modified Files:
        TagRelatedPortlet.java TagCloudPortlet.java 
Log Message:
CMSC-1066 Worked on with implementing the tag cloud module


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-tagcloud/src/java/com/finalist/portlets/tagcloud/portlet
See also: http://www.mmbase.org/jira/browse/CMSC-1066


Index: TagRelatedPortlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-tagcloud/src/java/com/finalist/portlets/tagcloud/portlet/TagRelatedPortlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- TagRelatedPortlet.java      15 Sep 2008 09:40:19 -0000      1.1
+++ TagRelatedPortlet.java      18 Sep 2008 11:21:21 -0000      1.2
@@ -12,7 +12,14 @@
 import javax.portlet.PortletPreferences;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
+import javax.servlet.http.HttpServletRequest;
 
+import org.apache.pluto.core.impl.PortletRequestImpl;
+import org.apache.struts.taglib.TagUtils;
+
+import com.finalist.cmsc.beans.om.NavigationItem;
+import com.finalist.cmsc.beans.om.Page;
+import com.finalist.cmsc.beans.om.Portlet;
 import com.finalist.cmsc.portalImpl.PortalConstants;
 import com.finalist.cmsc.portlets.RelatedContentPortlet;
 import com.finalist.cmsc.services.sitemanagement.SiteManagement;
@@ -35,20 +42,72 @@
                        List<Tag> tags = TagCloudUtil.getRelatedTags(Integer
                                        .parseInt(elementId));
                        req.setAttribute("tags", tags);
+               } else {
+                       String channelId = getIdFromScreen(req, window, 
"contentchannel");
+                       if (channelId != null) {
+                               List<Tag> tags = TagCloudUtil
+                                               .getChannelRelatedTags(new 
Integer(channelId));
+                               req.setAttribute("tags", tags);
+                       } else {
+                               String tag = getIdFromScreen(req, window, 
"tag");
+                               if (tag == null) {
+                                       tag = getTagFromRequestParameters(req, 
window);
+                               }
+                               List<Tag> tags = 
TagCloudUtil.getTagRelatedTags(tag);
+                               req.setAttribute("tags", tags);
+                       }
                }
                super.doView(req, res);
        }
        
+       private HttpServletRequest getServletRequest(RenderRequest req) {
+               return (HttpServletRequest) ((PortletRequestImpl) 
req).getRequest();
+       }
+
+       private String getTagFromRequestParameters(RenderRequest req, String 
window) {
+               String requestURL = 
getServletRequest(req).getRequestURL().toString();
+               String paramName = "/_rp_" + window + "_tag/1_";
+               int startIndex = requestURL.indexOf(paramName);
+               if (startIndex != -1) {
+                       String elementId = requestURL.substring(startIndex
+                                       + paramName.length());
+                       int endIndex = elementId.indexOf("/");
+                       if (endIndex != -1) {
+                               elementId = elementId.substring(0, endIndex);
+                       }
+                       return elementId;
+               }
+
+               return null;
+       }
+
+       private String getIdFromScreen(RenderRequest req, String window, String 
var) {
+               Integer pageId = getCurrentPageId(req);
+               NavigationItem item = SiteManagement.getNavigationItem(pageId);
+               if (item instanceof Page) {
+                       Page page = (Page) item;
+                       int portletId = page.getPortlet(window);
+                       Portlet portlet = SiteManagement.getPortlet(portletId);
+                       if (portlet != null) {
+                               return portlet.getParameterValue(var);
+                       }
+               }
+               return null;
+       }
+
           @Override
-          protected void doEditDefaults(RenderRequest req, RenderResponse res) 
throws IOException, PortletException {
+       protected void doEditDefaults(RenderRequest req, RenderResponse res)
+                       throws IOException, PortletException {
              Integer pageid = getCurrentPageId(req);
              String pagepath = SiteManagement.getPath(pageid, true);
 
              if (pagepath != null) {
-                Set<String> positions = 
SiteManagement.getPagePositions(pageid.toString());
+                       Set<String> positions = 
SiteManagement.getPagePositions(pageid
+                                       .toString());
                 List<String> orderedPositions = new 
ArrayList<String>(positions);
                 Collections.sort(orderedPositions);
-                setAttribute(req, "relatedPagepositions", new 
ArrayList<String>(orderedPositions));
+                       setAttribute(req, "relatedPagepositions", new 
ArrayList<String>(
+                                       orderedPositions));
              }
              super.doEditDefaults(req, res);
           }
@@ -58,32 +117,30 @@
            *      javax.portlet.ActionResponse)
            */
           @Override
-          public void processEditDefaults(ActionRequest request, 
ActionResponse response)
-                throws PortletException, IOException {
+       public void processEditDefaults(ActionRequest request,
+                       ActionResponse response) throws PortletException, 
IOException {
              String action = request.getParameter(ACTION_PARAM);
              if (action == null) {
                 response.setPortletMode(CmscPortletMode.EDIT_DEFAULTS);
-             }
-             else
-                if (action.equals("edit")) {
+               } else if (action.equals("edit")) {
                    PortletPreferences preferences = request.getPreferences();
-                   String portletId = 
preferences.getValue(PortalConstants.CMSC_OM_PORTLET_ID, null);
+                       String portletId = preferences.getValue(
+                                       PortalConstants.CMSC_OM_PORTLET_ID, 
null);
                    if (portletId != null) {
-                      setPortletParameter(portletId, RELATED_WINDOW, 
request.getParameter(RELATED_WINDOW));
-                   }
-                   else {
+                               setPortletParameter(portletId, RELATED_WINDOW, 
request
+                                               .getParameter(RELATED_WINDOW));
+                       } else {
                       getLogger().error("No portletId");
                    }
-                }
-                else {
+               } else {
                    getLogger().error("Unknown action: '" + action + "'");
                 }
              super.processEditDefaults(request, response);
           }
 
-
           private Integer getCurrentPageId(RenderRequest req) {
-             String pageId = (String) 
req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID);
+               String pageId = (String) req
+                               .getAttribute(PortalConstants.CMSC_OM_PAGE_ID);
              return Integer.valueOf(pageId);
           }
 }


Index: TagCloudPortlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-tagcloud/src/java/com/finalist/portlets/tagcloud/portlet/TagCloudPortlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- TagCloudPortlet.java        15 Sep 2008 09:40:19 -0000      1.1
+++ TagCloudPortlet.java        18 Sep 2008 11:21:21 -0000      1.2
@@ -24,7 +24,7 @@
                Integer max = (maxString == null) ? null : 
Integer.parseInt(maxString);
                String orderBy = preferences.getValue("orderBy", null);
 
-               List<Tag> tags = TagCloudUtil.getTags(max, orderBy);
+               List<Tag> tags = TagCloudUtil.getTags(max, orderBy, "up");
                req.setAttribute("tags", tags);
                super.doView(req, res);
        }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to