/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.directory.editors.vidalMkb10;
import cli_fmw.delegate.directory.Directory;
import cli_fmw.delegate.directory.DirectoryItem;
import clips.delegate.directory.complex.DirectoryMKB10Item;
import cli_fmw.utils.Selector;
import cli_fmw.main.ClipsException;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
/**
* Модель дерева, не отображающая листки
* @author ViP
*/
public class TreeModelVidalMkb10 extends DefaultTreeModel {
Selector<DirectoryItem> items;
public TreeModelVidalMkb10(Directory delegate) throws ClipsException {
super(new DefaultMutableTreeNode(delegate.getDirectoryTitle()));
items = delegate.getItems();
}
@Override
public int getChildCount(Object parent) {
// try {
if(parent instanceof DefaultMutableTreeNode) {
return items.size();
} else {
DirectoryMKB10Item item = (DirectoryMKB10Item)parent;
return item.getItems().size();
}
/* }
catch (ClipsException ex) {
ex.printStackTrace();
}
return 0;*/
}
@Override
public Object getChild(Object parent, int index) {
// try {
if(parent instanceof DefaultMutableTreeNode) {
return items.get(index);
} else {
DirectoryMKB10Item item = (DirectoryMKB10Item)parent;
return item.getItems().get(index);
}
/* }
catch (ClipsException ex) {
ex.printStackTrace();
}
return null;*/
}
@Override
public boolean isLeaf(Object node) {
return false;
}
//Изменение текста группы услуг
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
return;
}
@Override
public int getIndexOfChild(Object parent, Object child) {
if (parent instanceof TreeNode/*
&& child instanceof TreeNode*/) return super.getIndexOfChild(parent, child);
if (parent instanceof DirectoryMKB10Item){
DirectoryMKB10Item p = (DirectoryMKB10Item) parent;
DirectoryMKB10Item c = (DirectoryMKB10Item) child;
// try {
for (int i = 0; i< p.getItems().size(); i++){
if (c.getID() == p.getItems().get(i).getID()){
return i;
}
}
/* } catch (ClipsException ex) {
ex.printStackTrace();
}*/
}
return -1;
}
}