package baum; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; abstract public class BetterTreeModel implements TreeModel{ T root; public BetterTreeModel(T root) { super(); this.root = root; } @Override public Object getRoot() { return root; } @Override public Object getChild(Object parent, int index) { return getChildNode((T)parent, index); } abstract public T getChildNode(T parent, int index); @Override public int getChildCount(Object parent) { return getChildrenSize((T)parent); } public abstract int getChildrenSize(T parent); @Override public boolean isLeaf(Object node) { return getChildCount(node)==0; } @Override public void valueForPathChanged(TreePath path, Object newValue) { // TODO Auto-generated method stub } @Override public int getIndexOfChild(Object parent, Object child) { var p = (T)parent; for (var i = 0;i