Package clips.directory.editors.vidalFarm

Source Code of clips.directory.editors.vidalFarm.TreeModelVidalFarm

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.directory.editors.vidalFarm;

import cli_fmw.delegate.directory.Directory;
import cli_fmw.delegate.directory.DirectoryItem;
import clips.delegate.directory.complex.DirectoryVidalFarmItem;
import cli_fmw.utils.MessageBox;
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 TreeModelVidalFarm extends DefaultTreeModel {

    Selector<DirectoryItem> items;

    public TreeModelVidalFarm(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 {
                DirectoryVidalFarmItem item = (DirectoryVidalFarmItem)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 {
                DirectoryVidalFarmItem item = (DirectoryVidalFarmItem)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) {
        try {
            if (path.getLastPathComponent() instanceof DirectoryVidalFarmItem) {
                DirectoryVidalFarmItem item = (DirectoryVidalFarmItem) path.getLastPathComponent();
                item.setTitle(newValue.toString());
            }
            else {
                MessageBox.showWarning("Запрещено менять заголовок дерева");
            }
        } catch (ClipsException ex) {
            MessageBox.showException(ex);
        }
    }

    @Override
    public int getIndexOfChild(Object parent, Object child) {
        if (parent instanceof TreeNode) return super.getIndexOfChild(parent, child);
        if (parent instanceof DirectoryVidalFarmItem){
            DirectoryVidalFarmItem p = (DirectoryVidalFarmItem) parent;
            DirectoryVidalFarmItem c = (DirectoryVidalFarmItem) 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;
    }
   
}
TOP

Related Classes of clips.directory.editors.vidalFarm.TreeModelVidalFarm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.