Topic: button navigation like keys up/down navigation ?

I'm searching a way to have 2 buttons  (previous, next) that should same effect as key up, key down navigation

Re: button navigation like keys up/down navigation ?

    var tree = new Mif.Tree({
        ...
        initialize: function(){
            this.keyNav=new Mif.Tree.KeyNav(this);
                        ...
        },
         ...
    });
    downButton.addEvent('click', function(){
        if(!tree.selected){
                tree.select(tree.forest ? tree.root.getFirst() : tree.root);
        }else{
            var current=tree.selected;
            this.keyNav.goForward(current);
        }
        var height=tree.height;
        function autoScroll(){
            var wrapper=tree.wrapper;
            var i=tree.selected.getVisiblePosition();
            var top=i*height-wrapper.scrollTop;
            var bottom=top+height;
            if(top<height){
                wrapper.scrollTop-=height;
            }
            if(wrapper.offsetHeight-bottom<height){
                wrapper.scrollTop+=height;
            }
        }
        autoScroll();
    });
    ...

Re: button navigation like keys up/down navigation ?

Mine Quick and Dirty solution was ...
Well as I have  onLoad event on tree object I select by default the root node.
I neither use forest mode. So I can save the test. 

But why autoscroll is needed ?

<div>
<button onclick="tree.keyNav.goBack( tree.getSelected() );"><span>previous</span></button>
<button onclick="tree.keyNav.goForward( tree.getSelected() );" ><span>next</span></button>
</div>

   tree = new Mif.Tree({
                                        container: $('mytree'),
                                        grid: true,
                                        sortable: false,
                                        height: 18,
                                        forest: false,
                                        checkbox: false,
                                        initialize: function(){
                                                this.initDblClick();
                                                this.keyNav = new Mif.Tree.KeyNav(this);
                                                ...

Last edited by scramatte (2009-03-29 14:03:51)

Re: button navigation like keys up/down navigation ?

But why autoscroll is needed ?

for scroll tree wrapper. Without selected node can become invisible.