/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file 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.console.manager.interfaces.impl;
import org.jboss.console.manager.interfaces.ManageableResource;
import org.jboss.console.manager.interfaces.TreeAction;
import org.jboss.console.manager.interfaces.TreeInfo;
import org.jboss.console.manager.interfaces.TreeNode;
import org.jboss.console.manager.interfaces.TreeNodeMenuEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
/**
* <description>
*
* @see <related>
*
* @author <a href="mailto:sacha.labourey@cogito-info.ch">Sacha Labourey</a>.
* @version $Revision: 81010 $
*
* <p><b>Revisions:</b>
*
* <p><b>December 16, 2002 Sacha Labourey:</b>
* <ul>
* <li> First implementation </li>
* </ul>
*/
public class DefaultTreeInfo
implements TreeInfo
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
protected ManageableResource[] roots = null;
protected HashMap resources = new HashMap ();
protected TreeAction homeAction = null;
protected String jbossVersion = null;
protected long version = 0;
protected TreeNodeMenuEntry[] rootMenus = new TreeNodeMenuEntry[0];
protected String iconUrl = null;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public DefaultTreeInfo ()
{
Package jbossPackage = Package.getPackage("org.jboss");
jbossVersion = jbossPackage.getImplementationTitle() + " " +
jbossPackage.getImplementationVersion();
}
// Public --------------------------------------------------------
public ManageableResource[] getRootResources ()
{
return this.roots;
}
public void setRootResources (ManageableResource[] roots)
{
this.roots = roots;
}
public synchronized TreeNode[] getTreesForResource (ManageableResource resource)
{
ArrayList content = (ArrayList)resources.get (resource);
if (content == null || content.size () == 0)
return null;
else
{
TreeNode[] result = new TreeNode[content.size ()];
return (TreeNode[])content.toArray (result);
}
}
public synchronized void addTreeToResource (ManageableResource resource, TreeNode tree)
{
ArrayList content = (ArrayList)resources.get (resource);
if (content == null || content.size () == 0)
{
content = new ArrayList ();
resources.put (resource, content);
}
if (!content.contains (tree))
content.add (tree);
}
public TreeAction getHomeAction ()
{
return this.homeAction;
}
public void setHomeAction (TreeAction homeAction)
{
this.homeAction = homeAction;
}
public String getDescription ()
{
return jbossVersion;
}
public void setRootMenus (TreeNodeMenuEntry[] menus)
{
this.rootMenus = menus;
}
public TreeNodeMenuEntry[] getRootMenus ()
{
return this.rootMenus;
}
// Z implementation ----------------------------------------------
// Object overrides -----------------------------------------------
public String toString ()
{
String result = "Root: " + roots + "\n" ;
Iterator iter = resources.keySet ().iterator ();
while (iter.hasNext ())
{
ManageableResource key = (ManageableResource)iter.next();
ArrayList content = (ArrayList)resources.get (key);
result+=" Key: " + key + "\n";
for (int i = 0; i < content.size(); i++)
{
result += " Value: " + content.get(i);
}
result+=" ----\n";
}
return result;
}
public long getTreeVersion ()
{
return this.version;
}
public void setTreeVersion (long version)
{
this.version = version;
}
public String getIconUrl ()
{
return this.iconUrl;
}
public void setIconUrl (String url)
{
this.iconUrl = url;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}