package cnp.ew.list;

import cnp.ew.util.*;
import cnp.ew.displayer.*;
import cnp.ew.converter.*;
import cnp.ew.properties.*;

public class CpTreeColumnModel extends CpColumnModel
{
    public CpTreeColumnModel(String newTitle, int newWidth, CpProperty newProperty, boolean newMatchPrefix, boolean newIsEditable)
    {
        super(newTitle, newWidth, newProperty, newMatchPrefix, newIsEditable);
        displayer = new CpTreeDisplayer();
    }

    public void itemHit(CpColumnarListPane listPane, int index, int modifiers, int x)
    {
        // Fix this based on indent. Do I have that context?  I think so.
        ;
        if (x < (((CpTreeListPane)listPane).getIndentLevel(index) + 1) * CpTreeDisplayer.INDENT_SPACING) {
            listPane.removeEditor();
            listPane.expand(index);
        } else {
            super.itemHit(listPane, index, modifiers, x);
        }
    }

    public void setDisplayer(CpModelSelectableDisplayable newDisplayer)
    {
        // Wrap the displayer in a tree displayer
        super.setDisplayer(new CpTreeDisplayer(newDisplayer));
    }


}

