Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Редактируемое дерево, дабл клик (http://www.flasher.ru/forum/showthread.php?t=129971)

nOobCrafter 14.09.2009 21:05

Редактируемое дерево, дабл клик
 
День добрый, собсна сделал редактирование дерева по дабл клику так:
Код AS3:

<mx:Tree
        id="dataTree"
        editable="true"
        doubleClickEnabled="true"
        itemDoubleClick="initiateDblClickEditing(event);"
        itemEditBeginning="cancelSingleClickEditing(event);"
        itemClick="dataTreeClick(event);"/>
//======================
private function cancelSingleClickEditing(e:ListEvent):void
{
        e.preventDefault();
        trace('просто клик');
}
private function initiateDblClickEditing(e:ListEvent):void
{
var tree:Tree = Tree(e.currentTarget);
        tree.editedItemPosition = e;
}

, но есть один нюанс. Я использую свой компонент, выплывающее окно на основе TitleWindow (там вносятся изменения в выделенный елемент дерева), при нажатии на кнопу сохранить, изменения успешно вносятся но так же происходит выделение с возможностью редактирования последнего редактируемого вручную елемента дерева (как будто 2 раза по нему кликнули)
З.Ы. пробовал добавить проверку:
Код AS3:

private function changeListener(e:EditChangeEvent):void
{
        _canEdit = false;          // если мы получили событие от TiteWindow то отменяем реактирование
        if(e.source != null)....
}
private function cancelSingleClickEditing(e:ListEvent):void
{
        e.preventDefault();
        _canEdit = true;            // если мы один раз кликнули по этому елементу то редактировать можно
}
 
private function initiateDblClickEditing(e:ListEvent):void
{
        if(_canEdit)
        {
                var tree:Tree = Tree(e.currentTarget);
                        tree.editedItemPosition = e;
                _canEdit = false;
        }
}

но выделение всеравно происходит, просто теперь выделяется всегда первый елемент дерева. Кто, что может посоветовать?..


Часовой пояс GMT +4, время: 10:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.