2013-07-09 3 views
1

Я работаю на Java, SmartGWT 2.5 & Mozilla FF 3.6.x. Я использую Tree, TreeGrid & TreeNode в моем приложении. Мне нужно перетащить узел, а при перетаскивании я должен увидеть другие узлы, на которых будет проходить мышь с измененным цветом фона. Я пробовал использовать dragStart, dragStop, onCellOver, onCellOut и dragMove, но, возможно, я не очень хорошо их сочетаю. Итак, как эти события могут сочетаться, чтобы получить то, что мне нужно?Сочетание событий SmartGWT

ответ

1

Добавить DropOverHandler на целевой виджет (в данном случае TreeGrid).

Вам необходимо использовать один из многих доступных API-интерфейсов стиля (возможно, getCellCSSText()), чтобы он возвращал разные результаты, пока мышь остается над целевой сеткой, и вызывайте markForRedraw() в сетке из DropOver, поэтому что ваш новый стиль применяется.

Переопределение willAcceptDrop() - это то, как вы сообщаете системе, разрешено ли падение на определенной строке (влияет на курсор мыши).

Обнаружите мышь, выходящую из сетки через событие DropOut, и снова вызовите markForRedraw().

+0

спасибо. Но теперь у меня есть проблема с получением цели. Я имею в виду, что он должен быть выдан из Canvas в Node: Node _parent = event.getTarget(), этот event.getTarget() возвращает Canvas, и я знаю, как его использовать? – Katerina

+1

event.getTarget() вернет виджет, который является объектом события (TreeGrid, подкласс Canvas, в данном случае), и это не TreeNode и не может быть передан в TreeNode. Но я не могу сказать, для чего вам нужен TreeNode и в каком случае, поэтому попробуйте переупаковать как новый вопрос более подробно. –

Смежные вопросы