package com.levigo.samplelib.ui; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import com.levigo.samplelib.SampleManager; public class SampleTreeModel implements TreeModel { private final CategoryTreeNode rootNode; public SampleTreeModel(SampleManager manager) { rootNode = new CategoryTreeNode(manager.getCategories()); } @Override public Object getRoot() { return rootNode; } @Override public Object getChild(Object parent, int index) { if (parent instanceof CategoryTreeNode) { return ((CategoryTreeNode) parent).getChildren().get(index); } return null; } @Override public int getChildCount(Object parent) { if (parent instanceof CategoryTreeNode) { return ((CategoryTreeNode) parent).getChildren().size(); } return 0; } @Override public boolean isLeaf(Object node) { return !(node instanceof CategoryTreeNode); } @Override public void valueForPathChanged(TreePath path, Object newValue) { } @Override public int getIndexOfChild(Object parent, Object child) { if (parent instanceof CategoryTreeNode) { return ((CategoryTreeNode) parent).getChildren().indexOf(child); } return -1; } @Override public void addTreeModelListener(TreeModelListener l) { } @Override public void removeTreeModelListener(TreeModelListener l) { } }