package org.bodington.server.resources;

import java.util.*;
import javax.swing.tree.*;

public class UploadedFileNode extends javax.swing.tree.DefaultMutableTreeNode
	implements Comparable
	{
	public void sortByName()
		{
		int i;
		UploadedFileNode child;
		
		if ( children == null || children.size()<1 )
			return;
		
		for ( i=0; i < children.size(); i++ )
			{
			child = (UploadedFileNode)children.elementAt( i );
			child.sortByName();
			}
			
		if ( children.size()<2 )
			return;

		Object[] a_children = children.toArray();
		
		Arrays.sort( a_children );
		removeAllChildren();

		for ( i=0; i < a_children.length; i++ )
			add( (MutableTreeNode)a_children[i] );
		}
		
	public int compareTo( Object o )
		{
		if ( getUserObject() == null )
			return -1;
			
		if ( o == null )
			return 1;
			
		if ( !(o instanceof UploadedFileNode) )
			return 1;
			
		UploadedFileNode other = (UploadedFileNode)o;
		if ( other.getUserObject() == null )
			return 1;
			
		UploadedFile this_file = (UploadedFile)getUserObject();
		UploadedFile other_file = (UploadedFile)other.getUserObject();
		
		return this_file.compareTo( other_file );
		}
	}
