From: <jbo...@li...> - 2006-01-05 23:44:22
|
Author: wrzep Date: 2006-01-05 18:44:03 -0500 (Thu, 05 Jan 2006) New Revision: 2003 Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java Log: displaying project specyfic page http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java 2006-01-05 21:23:44 UTC (rev 2002) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java 2006-01-05 23:44:03 UTC (rev 2003) @@ -70,8 +70,11 @@ columns = new ArrayList<Column>(); Node columnsRoot = XmlTools.getFirstNodeWithName(pageRoot, StatusTags.COLUMNS_ELEMENT); - addColumns(columnsRoot, plugins); + if (columnsRoot != null) { + addColumns(columnsRoot, plugins); + } + // Get the plugin determining projects order orderPlugin = getOrderPlugin(pageRoot, plugins); } @@ -85,7 +88,9 @@ private void addColumns(Node columnsRoot, Plugins plugins) { NodeList columnsList = columnsRoot.getChildNodes(); + for (int i = 0; i < columnsList.getLength(); i++) { + Node columnNode = columnsList.item(i); if (columnNode.getNodeType() == Node.ELEMENT_NODE) { @@ -96,7 +101,7 @@ if (plugin != null) { Column column = new Column(name,plugin); - columns.add(column); + columns.add(column); } } @@ -134,6 +139,11 @@ fillValues(context); } + public void fillContext(DelegateContext context, String projectId) { + fillColumnsNames(context); + fillProjectContext(context, projectId); + } + /** * Fills the given context with column names * @@ -165,9 +175,9 @@ String projectId = projectIds[i]; DelegateContext projectContext = context.next("project"); + projectContext.put("position", i + 1); - fillProjectContext(projectContext, projectId, i + 1); - fillEntries(projectContext, projectId); + fillProjectContext(projectContext, projectId); } } @@ -201,17 +211,15 @@ * * @param projectContext DelegateContext to fill * @param projectId project id - * @param position Project posistion in the Status Matrix */ - private void fillProjectContext(DelegateContext projectContext, - String projectId, int position) { + private void fillProjectContext(DelegateContext projectContext, String projectId) { - projectContext.put("position", position); - projectContext.put("id", projectId); projectContext.put("name", projects.getProjectName(projectId)); projectContext.put("link", projects.getProjectLink(projectId)); -} + + fillEntries(projectContext, projectId); + } /** * Fills the given context with the cells information in the project row @@ -222,8 +230,8 @@ private void fillEntries(DelegateContext projectContext, String projectId) { for (Iterator iter = columns.iterator(); iter.hasNext();) { + Column column = (Column) iter.next(); - column.fillProjectContext(projectContext, projectId); } } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-01-05 21:23:44 UTC (rev 2002) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-01-05 23:44:03 UTC (rev 2003) @@ -22,12 +22,17 @@ package org.jboss.forge.status; +import java.util.Map; +import java.util.Set; + import org.jboss.forge.common.projects.Projects; import org.jboss.forge.common.projects.ProjectsHelper; import org.jboss.forge.common.XmlTools; import org.jboss.forge.common.projects.AbstractDescriptor; +import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; +import org.jboss.forge.common.projects.permissions.PermissionsChecker; import org.jboss.portal.common.context.DelegateContext; import org.w3c.dom.Node; @@ -40,30 +45,35 @@ public class Status extends AbstractDescriptor { private static final String MAIN_PAGE_COLLUMNS_TAG = "main-page"; - //private static final String PROJECT_PAGE_COLLUMNS_TAG = "project-page"; - //TODO displaying project-specyfic pages + private static final String PROJECT_PAGE_COLLUMNS_TAG = "project-page"; /** Columns to display on the main page */ private Columns mainPageColumns; /* Columns to display on the project specyfic page */ - //private Columns projectPageColumns; + private Columns projectPageColumns; /** Plugins used in the Status Matrix */ private Plugins plugins; + private Projects projects; + Status(String portalName, Node statusRoot, Node statusPluginsRoot, Node scorePluginsRoot) { // Get the projects - Projects projects = ProjectsHelper.getProjects(portalName); + projects = ProjectsHelper.getProjects(portalName); // Get the status and score plugins plugins = new Plugins(statusPluginsRoot, portalName, projects, false); plugins.addAll(scorePluginsRoot, portalName, true); - // Get columns to display - Node pageRoot = XmlTools.getFirstNodeWithName(statusRoot, MAIN_PAGE_COLLUMNS_TAG); - mainPageColumns = new Columns(pageRoot, plugins, projects); + // Get columns to display on the main page + Node mainPageRoot = XmlTools.getFirstNodeWithName(statusRoot, MAIN_PAGE_COLLUMNS_TAG); + mainPageColumns = new Columns(mainPageRoot, plugins, projects); + + // Get columns to display on the project page + Node projectPageRoot = XmlTools.getFirstNodeWithName(statusRoot, PROJECT_PAGE_COLLUMNS_TAG); + projectPageColumns = new Columns(projectPageRoot, plugins, projects); } /** @@ -74,4 +84,18 @@ public void fillContext(DelegateContext context) { mainPageColumns.fillContext(context); } + + public void fillProjectContexts(Map<String,DelegateContext> contextsMap) { + + Set<String> projectIdsSet = projects.getProjectIds( + (PermissionsChecker) new NullPermissionsChecker(), null); + + for (String projectId : projectIdsSet) { + + DelegateContext context = new DelegateContext(); + projectPageColumns.fillContext(context, projectId); + + contextsMap.put(projectId, context); + } + } } \ No newline at end of file Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-01-05 21:23:44 UTC (rev 2002) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-01-05 23:44:03 UTC (rev 2003) @@ -23,6 +23,9 @@ package org.jboss.forge.status; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + import org.apache.xerces.parsers.DOMParser; import org.jboss.portal.common.context.DelegateContext; import org.jboss.portlet.JBossRenderRequest; @@ -41,6 +44,8 @@ public class StatusDescriptor { private DelegateContext context; + private Map<String,DelegateContext> projectContexts; + private Status status; public StatusDescriptor(String portalName, ContentManager cm) { @@ -65,13 +70,21 @@ } private void fillContext() { + context = new DelegateContext(); status.fillContext(context); + + projectContexts = new HashMap<String,DelegateContext>(); + status.fillProjectContexts(projectContexts); } - public DelegateContext getContext(JBossRenderRequest request) { + public DelegateContext getContext() { return context; } + + public DelegateContext getProjectContext(String id) { + return projectContexts.get(id); + } private Node getRoot(ContentManager cm, String path) throws IOException, SAXException, ResourceDoesNotExist { DOMParser parser = new DOMParser(); @@ -80,4 +93,5 @@ Node root = parser.getDocument().getDocumentElement(); return root; } + } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java 2006-01-05 21:23:44 UTC (rev 2002) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java 2006-01-05 23:44:03 UTC (rev 2003) @@ -47,20 +47,23 @@ throws IOException, PortletException { response.setContentType("text/html"); + // Get the request parameters String portalName = ForgeHelper.getPortalName(request); String action = request.getParameter("action"); String id = request.getParameter("id"); - // Getting the podcast context - DelegateContext context = StatusTools.getDesc(portalName).getContext(request); + StatusDescriptor desc = StatusTools.getDesc(portalName); + + // Set the JSP to show and get the appropriate context + String jspPath = null; + DelegateContext context = null; - - String jspPath = null; - if ((id != null) && (action.equals(PROJECT_DETAILS_ACTION))) { jspPath = StatusTools.getDetailsJspCmPath(); + context = desc.getProjectContext(id); } else { jspPath = StatusTools.getJspCmPath(); + context = desc.getContext(); } // Displaying the JSP |