From: <jbo...@li...> - 2005-12-17 15:21:37
|
Author: wrzep Date: 2005-12-17 10:21:32 -0500 (Sat, 17 Dec 2005) New Revision: 1833 Added: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java Log: columns handling placed in Columns.java http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Added: 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 2005-12-17 15:00:05 UTC (rev 1832) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Columns.java 2005-12-17 15:21:32 UTC (rev 1833) @@ -0,0 +1,124 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2005, JBoss Inc., and individual contributors as indicated + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ + +package org.jboss.forge.status; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.jboss.forge.common.XmlTools; +import org.jboss.forge.common.projects.Projects; +import org.jboss.forge.common.projects.ProjectsHelper; +import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; +import org.jboss.forge.common.projects.permissions.PermissionsChecker; +import org.jboss.forge.status.plugins.Plugin; +import org.jboss.portal.common.context.DelegateContext; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** +* @author Pawel Wrzeszcz +*/ +public class Columns { + + List<Column> columns; + Projects projects; + + public Columns(Node pageRoot, Map<String,Plugin> plugins, Projects projects) { + this.projects = projects; + + columns = new ArrayList<Column>(); + + NodeList columnsList = pageRoot.getChildNodes(); + for (int i = 0; i < columnsList.getLength(); i++) { + Node columnNode = columnsList.item(i); + + if (columnNode.getNodeType() == Node.ELEMENT_NODE) { + Node nameNode = XmlTools.getFirstNodeWithName(columnNode, "name"); + String name = XmlTools.unmarshallText(nameNode); + + Node pluginNode = XmlTools.getFirstNodeWithName(columnNode, "plugin"); + String pluginId = XmlTools.unmarshallText(pluginNode); + Plugin plugin = plugins.get(pluginId); + + Column column = new Column(name,plugin); + columns.add(column); + } + } + } + + public void fillContext(DelegateContext context) { + fillColumnsNames(context); + fillValues(context); + } + + private void fillColumnsNames(DelegateContext context) { + + for (Iterator iter = columns.iterator(); iter.hasNext();) { + Column column = (Column) iter.next(); + + DelegateContext columnContext = new DelegateContext(); + columnContext.put("name", column.getName()); + + context.append("collumn", columnContext); + } + } + + /** Fills the context with appropiate values (from each column) for each project. */ + private void fillValues(DelegateContext context) { + + Set<String> projectIds = projects.getProjectIds( + (PermissionsChecker) new NullPermissionsChecker(), null); + + int position = 0; + for (Iterator iter = projectIds.iterator(); iter.hasNext();) { + String projectId = (String) iter.next(); + position++; + + DelegateContext projectContext = context.next("project"); + fillProjectContext(projectContext, projectId, position); + } + } + + private void fillProjectContext(DelegateContext projectContext, + String projectId, int position) { + + projectContext.put("position", position); + + projectContext.put("name", projects.getProjectName(projectId)); + projectContext.put("link", projects.getProjectLink(projectId)); + + fillEntries(projectContext, columns, projectId); +} + + private void fillEntries(DelegateContext projectContext, Collection<Column> columns, 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 2005-12-17 15:00:05 UTC (rev 1832) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2005-12-17 15:21:32 UTC (rev 1833) @@ -70,7 +70,7 @@ private Projects projects; - private List<Column> mainPageColumns; + private Columns mainPageColumns; private Map<String, Plugin> statusPlugins; private Map<String, Plugin> scorePlugins; @@ -103,34 +103,9 @@ allPlugins.putAll(scorePlugins); // Get columns to display - mainPageColumns = getPageColumns(statusRoot, MAIN_PAGE_COLLUMNS_TAG); + Node pageRoot = XmlTools.getFirstNodeWithName(statusRoot, MAIN_PAGE_COLLUMNS_TAG); + mainPageColumns = new Columns(pageRoot, allPlugins, projects); } - - private List<Column> getPageColumns(Node statusRoot, String nodeTag) { - - List<Column> columns = new ArrayList<Column>(); - - Node pageRoot = XmlTools.getFirstNodeWithName(statusRoot, nodeTag); - - NodeList columnsList = pageRoot.getChildNodes(); - for (int i = 0; i < columnsList.getLength(); i++) { - Node columnNode = columnsList.item(i); - - if (columnNode.getNodeType() == Node.ELEMENT_NODE) { - Node nameNode = XmlTools.getFirstNodeWithName(columnNode, "name"); - String name = XmlTools.unmarshallText(nameNode); - - Node pluginNode = XmlTools.getFirstNodeWithName(columnNode, "plugin"); - String pluginId = XmlTools.unmarshallText(pluginNode); - Plugin plugin = allPlugins.get(pluginId); - - Column column = new Column(name,plugin); - columns.add(column); - } - } - - return columns; - } private Set<Node> getPluginsNodes(Node pluginsRoot) { @@ -157,59 +132,10 @@ * * @param context Context to fill. */ - public void fillContext(DelegateContext context) { - - fillColumnsNames(context); - fillValues(context); + public void fillContext(DelegateContext context) { + mainPageColumns.fillContext(context); } - - private void fillColumnsNames(DelegateContext context) { - - for (Iterator iter = mainPageColumns.iterator(); iter.hasNext();) { - Column column = (Column) iter.next(); - - DelegateContext columnContext = new DelegateContext(); - columnContext.put("name", column.getName()); - - context.append("collumn", columnContext); - } - } - - /** Fills the context with appropiate values (from each column) for each project. */ - private void fillValues(DelegateContext context) { - - Set<String> projectIds = projects.getProjectIds( - (PermissionsChecker) new NullPermissionsChecker(), null); - - int position = 0; - for (Iterator iter = projectIds.iterator(); iter.hasNext();) { - String projectId = (String) iter.next(); - position++; - - DelegateContext projectContext = context.next("project"); - fillProjectContext(projectContext, projectId, position); - } - } - private void fillProjectContext(DelegateContext projectContext, - String projectId, int position) { - - projectContext.put("position", position); - - projectContext.put("name", projects.getProjectName(projectId)); - projectContext.put("link", projects.getProjectLink(projectId)); - - fillEntries(projectContext, mainPageColumns, projectId); - } - - private void fillEntries(DelegateContext projectContext, Collection<Column> columns, String projectId) { - for (Iterator iter = columns.iterator(); iter.hasNext();) { - Column column = (Column) iter.next(); - - column.fillProjectContext(projectContext, projectId); - } - } - private Map<String,Plugin> getPlugins(Set<Node> pluginsNodes, boolean scorePlugins) { Map<String,Plugin> plugins = new HashMap<String,Plugin>(); |