package Darts;

import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeSelectionModel;

/**
 * DartTree Class
 * 
 * A DartTree is a JTree, meaning, is a tree view GUI.  This class ties the
 * a DartTreeModel to this GUI.
 * @author Anthony Mack
 *
 */
public class DartTree extends JTree {
	//
	// Constants
	//
	private static final long serialVersionUID = 1L;
	
	//
	// Methods
	//
	/**
	 * Constructor:
	 *   Setup the look of the tree view
	 */
	public DartTree( DartDBNode rootNode ) {
		super( new DartTreeModel(rootNode) );
		
		// Can only select one thing at a time.
		getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );

		// Add some icons
		DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
		Icon  tournamIcon = null;
		Icon  gameIcon = null;
		Icon  playerIcon = null;
		Icon  scoreIcon = null;
		renderer.setClosedIcon( tournamIcon ); // TODO Make different Icons for the different levels
		renderer.setOpenIcon( gameIcon );  
		renderer.setIcon( playerIcon );
		renderer.setLeafIcon( scoreIcon );
		setCellRenderer( renderer );
	}

}
