Author: wrzep Date: 2005-12-17 08:16:07 -0500 (Sat, 17 Dec 2005) New Revision: 1829 Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.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/plugins/ScorePlugin.java Log: status.xml parsing (list of columns to display on the main matrix page) http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-12-17 01:20:01 UTC (rev 1828) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-12-17 13:16:07 UTC (rev 1829) @@ -34,6 +34,7 @@ /** * @author adamw + * @author Pawel Wrzeszcz * Common helper xml parsing functions. */ public class XmlTools { @@ -147,7 +148,7 @@ return unmarshallText(n); } - + /** * Reads and returns a HTML block contained in the children of the specified * node. 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 01:20:01 UTC (rev 1828) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2005-12-17 13:16:07 UTC (rev 1829) @@ -22,6 +22,7 @@ package org.jboss.forge.status; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -62,19 +63,18 @@ private final static String PLUGIN_WEIGHT_ELEMENT = "weight"; private final static String PLUGIN_PROPERTIES_ELEMENT = "properties"; - private static final String MAIN_PAGE_COLLUMNS_TAG = "main-page"; - private static final String PROJECT_PAGE_COLLUMNS_TAG = "project-page"; + private static final String MAIN_PAGE_COLLUMNS_TAG = "main"; + private static final String PROJECT_PAGE_COLLUMNS_TAG = "project"; private String portalName; private Projects projects; - private List<String> mainPagePlugins; - private List<String> projectPagePlugins; + private List<Column> mainPageColumns; - private List<Plugin> statusPlugins; - private List<Plugin> scorePlugins; - private List<Plugin> allPlugins; + private Map<String, Plugin> statusPlugins; + private Map<String, Plugin> scorePlugins; + private Map<String, Plugin> allPlugins; private Logger log; @@ -87,9 +87,8 @@ initPluginElements(); // Get general properties - Map<String,Node> statusNodeMap = XmlTools.getNodeMapFromNodeElements(statusRoot); - mainPagePlugins = getPagePlugins(statusRoot, MAIN_PAGE_COLLUMNS_TAG); - projectPagePlugins = getPagePlugins(statusRoot, PROJECT_PAGE_COLLUMNS_TAG); + mainPageColumns = getPageColumns(statusRoot, MAIN_PAGE_COLLUMNS_TAG); + System.out.println("mainPageColumns: " + mainPageColumns); // Get the projects projects = ProjectsHelper.getProjects(portalName); @@ -102,13 +101,31 @@ Set<Node> scorePluginsNodes = getPluginsNodes(scorePluginsRoot); scorePlugins = getPlugins(scorePluginsNodes, true); - allPlugins = new ArrayList<Plugin>(); - allPlugins.addAll(statusPlugins); - allPlugins.addAll(scorePlugins); + allPlugins = new HashMap<String, Plugin>(); + allPlugins.putAll(statusPlugins); + allPlugins.putAll(scorePlugins); } - private List<String> getPagePlugins(Node statusRoot, String nodeTag) { + 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); + + String name = null; + Node nameNode = XmlTools.getFirstNodeWithName(columnNode, "name"); + if (nameNode != null) { + name = XmlTools.unmarshallText(nameNode); + } + Plugin plugin = null; + + Column column = new Column(name,plugin); + columns.add(column); + } + return null; } @@ -140,7 +157,7 @@ public void fillContext(DelegateContext context) { // Set collumns names - for (Iterator iter = allPlugins.iterator(); iter.hasNext();) { + for (Iterator iter = allPlugins.values().iterator(); iter.hasNext();) { Plugin plugin = (Plugin) iter.next(); DelegateContext collumnContext = new DelegateContext(); @@ -178,10 +195,10 @@ projectContext.put("name", projects.getProjectName(projectId)); projectContext.put("link", projects.getProjectLink(projectId)); - fillEntries(projectContext, allPlugins, projectId); + fillEntries(projectContext, allPlugins.values(), projectId); } - private void fillEntries(DelegateContext projectContext, List<Plugin> plugins, String projectId) { + private void fillEntries(DelegateContext projectContext, Collection<Plugin> plugins, String projectId) { for (Iterator iter = plugins.iterator(); iter.hasNext();) { Plugin plugin = (Plugin) iter.next(); @@ -192,8 +209,8 @@ } } - private List<Plugin> getPlugins(Set<Node> pluginsNodes, boolean scorePlugins) { - ArrayList<Plugin> plugins = new ArrayList<Plugin>(); + private Map<String,Plugin> getPlugins(Set<Node> pluginsNodes, boolean scorePlugins) { + Map<String,Plugin> plugins = new HashMap<String,Plugin>(); for (Iterator iter = pluginsNodes.iterator(); iter.hasNext();) { Node pluginNode = (Node) iter.next(); @@ -201,7 +218,7 @@ Plugin plugin = getPlugin(pluginNode, scorePlugins); if (plugin != null) { - plugins.add(plugin); + plugins.put(plugin.getName(), plugin); } } @@ -235,7 +252,7 @@ plugin = (Plugin) pluginClass.newInstance(); if (scorePlugin) { - ((ScorePlugin) plugin).init(pluginName, pluginId, statusPlugins, pluginSpecificPropertiesNode); + ((ScorePlugin) plugin).init(pluginName, pluginId, statusPlugins.values(), pluginSpecificPropertiesNode); } else { /* score plugin */ ((StatusPlugin) plugin).init(pluginName, pluginId, projects, pluginSpecificPropertiesNode); } 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 2005-12-17 01:20:01 UTC (rev 1828) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2005-12-17 13:16:07 UTC (rev 1829) @@ -24,6 +24,7 @@ import java.io.IOException; import org.apache.xerces.parsers.DOMParser; +import org.jboss.forge.common.XmlTools; import org.jboss.portal.common.context.DelegateContext; import org.jboss.portlet.JBossRenderRequest; @@ -46,10 +47,16 @@ public StatusDescriptor(String portalName, ContentManager cm) { try { String statusPath = StatusTools.getXmlCmPath(portalName); + //System.out.println("statusPath: " + statusPath); Node statusRoot = getRoot(cm , statusPath); + //System.out.println("statusRoot: " + XmlTools.unmarshallText(statusRoot)); + //System.out.println("statusRoot: " + statusRoot); String statusPluginsPath = StatusTools.getXmlStatusPluginsCmPath(portalName); Node statusPluginsRoot = getRoot(cm, statusPluginsPath); + //System.out.println("statusPluginsPath: " + statusPluginsPath); + //System.out.println("statusPluginsRoot: " + statusPluginsRoot); + //System.out.println("statusPluginsRoot: " + XmlTools.unmarshallText(statusPluginsRoot)); String scorePluginsPath = StatusTools.getXmlScorePluginsCmPath(portalName); Node scorePluginsRoot = getRoot(cm, scorePluginsPath); Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java 2005-12-17 01:20:01 UTC (rev 1828) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java 2005-12-17 13:16:07 UTC (rev 1829) @@ -22,7 +22,7 @@ package org.jboss.forge.status.plugins; -import java.util.List; +import java.util.Collection; import org.w3c.dom.Node; @@ -32,9 +32,9 @@ public abstract class ScorePlugin extends Plugin { - protected List<Plugin> plugins; + protected Collection<Plugin> plugins; - public void init(String name, String id, List<Plugin> plugins, Node propertiesNode) throws InvalidPluginPropertiesException { + public void init(String name, String id, Collection<Plugin> plugins, Node propertiesNode) throws InvalidPluginPropertiesException { this.plugins = plugins; init(name, id, propertiesNode); } |