Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   mx:Tree (http://www.flasher.ru/forum/showthread.php?t=108110)

SSergeyS 15.02.2008 15:49

mx:Tree
 
Приветствую уважаемые флешеры!
Столкнулся с небольшим неудобством при использовании компонента mx:Tree. Суть проблемы:
Есть некая XML и Tree для которого она dataProvider. включаем для дерева возможность перетаскивать элементы
Код:

dragMoveEnabled="true"
dropEnabled="true"
dragEnabled="true"

Когда мы вытаскиваем все подкомпоненты(ноды) с какого-нибудь нода он перестает быть папкой и перетащить в него элементы назад не представляется возможности.
Кто-нибудь знает, как запретить нодам менять уровень вложенности, тобиш перетаскивать с ветки в ветку можно, но запретить перетаскивать на уровень вверх или вниз. Проблема в принципе решается дополнительными проверками и добавлением в XML атрибута с номером текущего уровня, но нужно ее решить эстетическим путем, не затрагивая исходную XML. Ну и собственно как решить проблему "схлопывания" пустых нодов? Не очень хочется делать в виде костыля наличие в каждой ветки пустого под-нода.

Sneg 15.02.2008 18:09

Когда я столкнулся с такой проблемой - еще год назад, пришлось писать самом обработчики, чтобы рассовывали по нужным папкам элементы. Что значит "проблема схлопывания пустых нодов"? Если проблема только в иконке - то она легко задается в стилях.

SSergeyS 15.02.2008 18:38

Цитата:

Сообщение от Sneg
Когда я столкнулся с такой проблемой - еще год назад, пришлось писать самом обработчики, чтобы рассовывали по нужным папкам элементы.

Плавали - знаем. Но вот так решать проблему надоело. Потому что написать универсальный класс и обработчик под любую XML и под любую задачу трудно )). Возможно, такие тривиальные задачи можно решить стандартными средствами среды разработки.
Цитата:

Сообщение от Sneg
Что значит "проблема схлопывания пустых нодов"?

В пустой нод ничего нельзя перетаскивать DragDrop -ом. Это вроде тоже можно решить дописав свой класс но вот это уже – не знаю как. Или надо оставлять в нем неударяемый пустой нод. Но это страшный костыль который уже в печенках.
Вот например:
Код:

<root>
  <node name=”1”>
      <node name=”a”></node>
  </node>
  <node name=”2”>
      <node name=”b”></node>
      <node name=”c”></node>
  </node>
  <node name=”3”>
  </node>                   
</root>

<node name=”c”> можно перетянуть с <node name=”2”> в <node name=”1”> но нельзя в <node name=”3”>
Лечится вот так:
Код:

<root>
  <node name=”1”>
      <node></node>
      <node name=”a”></node>
  </node>
  <node name=”2”>
      <node></node>
      <node name=”b”></node>
      <node name=”c”></node>
  </node>
  <node name=”3”>
      <node></node>
  </node>                   
</root>

Но это криво в принципе!

Эту задачу можно решить еще при помощи ITreeDataDescriptor, может знает кто пример как с DataDescriptor работать?


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

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