package javax.swing;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.util.Hashtable;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.plaf.TreeUI;
import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
public class JTree extends JComponent
implements Scrollable, Accessible
{
private static final long serialVersionUID = 7559816092864483649L;
protected TreeCellRenderer cellRenderer;
protected boolean editable;
protected boolean rootVisible;
protected boolean showsRootHandles;
protected TreeModel treeModel;
public JTree()
{
treeModel = createTreeModel(null);
}
public JTree(Hashtable value)
{
treeModel = createTreeModel(value);
}
public JTree(Object[] value)
{
treeModel = createTreeModel(value);
}
public JTree(TreeModel model)
{
treeModel = model;
}
public JTree(TreeNode root)
{
this(root, false);
}
public JTree(TreeNode root, boolean asksAllowChildren)
{
}
public JTree(Vector value)
{
treeModel = createTreeModel(value);
}
protected static TreeModel createTreeModel(Object value)
{
return null;
}
public TreeUI getUI()
{
return (TreeUI) ui;
}
public void setUI(TreeUI ui)
{
super.setUI(ui);
}
public void updateUI()
{
setUI((TreeUI) UIManager.getUI(this));
}
public String getUIClassID()
{
return "TreeUI";
}
public AccessibleContext getAccessibleContext()
{
return null;
}
public Dimension getPreferredScrollableViewportSize()
{
return null;
}
public int getScrollableUnitIncrement(Rectangle visibleRect,
int orientation, int direction)
{
return 1;
}
public int getScrollableBlockIncrement(Rectangle visibleRect,
int orientation, int direction)
{
return 1;
}
public boolean getScrollableTracksViewportWidth()
{
return false;
}
public boolean getScrollableTracksViewportHeight()
{
return false;
}
public void addTreeExpansionListener(TreeExpansionListener listener)
{
listenerList.add(TreeExpansionListener.class, listener);
}
public void removeTreeExpansionListener(TreeExpansionListener listener)
{
listenerList.remove(TreeExpansionListener.class, listener);
}
public TreeExpansionListener[] getTreeExpansionListeners()
{
return (TreeExpansionListener[]) getListeners(TreeExpansionListener.class);
}
public void fireTreeCollapsed(TreePath path)
{
TreeExpansionEvent event = new TreeExpansionEvent(this, path);
TreeExpansionListener[] listeners = getTreeExpansionListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].treeCollapsed(event);
}
public void fireTreeExpanded(TreePath path)
{
TreeExpansionEvent event = new TreeExpansionEvent(this, path);
TreeExpansionListener[] listeners = getTreeExpansionListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].treeExpanded(event);
}
public void addTreeSelectionListener(TreeSelectionListener listener)
{
listenerList.add(TreeSelectionListener.class, listener);
}
public void removeTreeSelectionListener(TreeSelectionListener listener)
{
listenerList.remove(TreeSelectionListener.class, listener);
}
public TreeSelectionListener[] getTreeSelectionListeners()
{
return (TreeSelectionListener[]) getListeners(TreeSelectionListener.class);
}
protected void fireValueChanged(TreeSelectionEvent event)
{
TreeSelectionListener[] listeners = getTreeSelectionListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].valueChanged(event);
}
public void addTreeWillExpandListener(TreeWillExpandListener listener)
{
listenerList.add(TreeWillExpandListener.class, listener);
}
public void removeTreeWillExpandListener(TreeWillExpandListener listener)
{
listenerList.remove(TreeWillExpandListener.class, listener);
}
public TreeWillExpandListener[] getTreeWillExpandListeners()
{
return (TreeWillExpandListener[]) getListeners(TreeWillExpandListener.class);
}
public void fireTreeWillCollapse(TreePath path)
throws ExpandVetoException
{
TreeExpansionEvent event = new TreeExpansionEvent(this, path);
TreeWillExpandListener[] listeners = getTreeWillExpandListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].treeWillCollapse(event);
}
public void fireTreeWillExpand(TreePath path)
throws ExpandVetoException
{
TreeExpansionEvent event = new TreeExpansionEvent(this, path);
TreeWillExpandListener[] listeners = getTreeWillExpandListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].treeWillExpand(event);
}
public TreeModel getModel()
{
return treeModel;
}
public void setModel(TreeModel model)
{
treeModel = model;
}
public boolean isEditable()
{
return editable;
}
public void setEditable(boolean flag)
{
if (editable == flag)
return;
boolean oldValue = editable;
editable = flag;
firePropertyChange("editable", oldValue, editable);
}
public boolean isRootVisbile()
{
return rootVisible;
}
public void setRootVisible(boolean flag)
{
rootVisible = flag;
}
public boolean getShowsRootHandles()
{
return showsRootHandles;
}
public void setShowRootHandles(boolean flag)
{
showsRootHandles = flag;
}
public TreeCellRenderer getCellRenderer()
{
return cellRenderer;
}
public void setCellRenderer(TreeCellRenderer newRenderer)
{
cellRenderer = newRenderer;
}
}