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