JTree viser ikke alle børn
Jeg har to klasser, en "TreeNode" og en "TreeModel".Jag smider i nogle værdier og allting er fint (jeg kigger i debug). Min ROOT har alle de børn han skal ha, etc.
Men alligevel så viser mit JTree KUN roden, og inget mer.
Kan ni finde hvor det bøvlende fejlen er?
------------------------TreeModel--------
protected class CurrentUnsitcTreeModel implements TreeModel
{
private TreeNode _root;
public CurrentUnsitcTreeModel(TreeNode root)
{
_root = root;
}
public void addTreeModelListener(TreeModelListener l) {}
public Object getChild(Object parent, int index) { return parent != null ? ((UnsitcNode)parent).getChildAt(index) : null; }
public int getChildCount(Object parent) { return parent != null ? ((UnsitcNode)parent).getChildCount() : 0; }
public int getIndexOfChild(Object parent, Object child) { return parent != null ? ((UnsitcNode)parent).getIndex((UnsitcNode)child) : -1; }
public Object getRoot() { return _root; }
public boolean isLeaf(Object node) { return node != null ? ((UnsitcNode)node).isLeaf() : true; }
public void removeTreeModelListener(TreeModelListener l) {}
public void valueForPathChanged(TreePath path, Object newValue) {}
public void refresh()
{
}
}
------------------------TreeNode------
protected class UnsitcNode extends DefaultMutableTreeNode implements Comparable
{
private Vector _children = new Vector();
private Unsitc _item;
public UnsitcNode(Unsitc item)
{
_item = item;
}
public Unsitc item() { return _item; }
public int getChildCount() { return _children != null ? _children.size() : 0; }
public TreeNode getChildAt(int index) { return _children != null ? (TreeNode)_children.get(index) : null; }
public int getIndex(TreeNode node) { return _children != null ? _children.indexOf(node) : -1; }
public boolean isLeaf() { return _children != null && _children.size() > 0; }
public Enumeration children() { return _children != null ? _children.elements() : null; }
public void addChild(UnsitcNode child)
{
if(_children != null)
{
_children.add(child);
Collections.sort(_children);
}
}
public int compareTo(Object other) { return toString().compareTo(other.toString()); }
public boolean equals(Object other)
{
if(other instanceof UnsitcNode)
{
UnsitcNode un = (UnsitcNode)other;
return ObjectUtil.equals(_item, un._item) &&
ObjectUtil.equals(_children, un._children);
}
return false;
}
public String toString() { return _item != null ? _item.toString() : ""; }
}
