/*
VisAD system for interactive analysis and visualization of numerical
data.  Copyright (C) 1996 - 2017 Bill Hibbard, Curtis Rueden, Tom
Rink, Dave Glowacki, Steve Emmerson, Tom Whittaker, Don Murray, and
Tommy Jasmin.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library 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
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
*/

/****************************************************************************
 * NCSA HDF                                                                 *
 * National Comptational Science Alliance                                   *
 * University of Illinois at Urbana-Champaign                               *
 * 605 E. Springfield, Champaign IL 61820                                   *
 *                                                                          *
 * For conditions of distribution and use, see the accompanying             *
 * hdf/COPYING file.                                                        *
 *                                                                          *
 ****************************************************************************/
package visad.data.hdf5.hdf5objects;

import javax.swing.tree.TreeNode;
import javax.swing.tree.DefaultMutableTreeNode;

public class HDF5TreeNode extends DefaultMutableTreeNode
{
	/** the indent for printing the tree */
	private final String INDENT = "  ";

	/** Creates a tree node that has no parent and no children,
		but which allows children.
	 */
	public HDF5TreeNode()
	{
		super();
	}

	/** Creates a tree node with no parent, no children, but which allows
		children, and initializes it with the specified user object.
	 */
	public HDF5TreeNode(HDF5Object userObject)
	{
		super (userObject);
	}

	/** Creates a tree node with no parent, no children, initialized with the
		specified user object, and that allows children only if specified.
	 */
	public HDF5TreeNode(Object userObject, boolean allowsChildren)
	{
		super(userObject, allowsChildren);
	}

	/** Print the tree information starting this node */
	public void printTree()
	{
		String indent = INDENT;
		printNodeDown(indent, this);
	}


	/** Print the tree information from starting node
	 *  @param indent the indent of tree level
	 *  @param sNode the starting node
	 */
	private void printNodeDown(String indent, TreeNode sNode)
	{
		System.out.print(indent);
		indent = indent + INDENT;

		if (sNode == null) {
			System.out.println("null");
			return;
		}

		System.out.println(sNode);

		if (sNode.isLeaf() || sNode.getChildCount() == 0)
			return;
		else {
			int nChildren = sNode.getChildCount();
			for (int i=0; i< nChildren; i++)
				printNodeDown(indent, sNode.getChildAt(i));
		}
	}

	/**
	 * Returns the result of sending toString() to this node's
	 * user object, or null if this node has no user object.
	 *
	 * @see	#getUserObject
	 */
	public String toString() {
		if (userObject == null) {
			return "null";
		} else if (userObject instanceof HDF5Object) {
			return ((HDF5Object)userObject).getShortName();
		} else {
			return userObject.toString();
		}
	}


}

 

Ads help maintain this website.