GWT DnD: можно ли перетаскивать отключенные виджеты? - PullRequest
0 голосов
/ 31 августа 2009

У меня есть составной виджет, который содержит отключенную TextArea на AbsotutePanel. Теперь я хочу перетаскивать составной виджет, начиная с любого места на нем, включая отключенную текстовую область.

Это возможно?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2010

Или попробуйте поместить свой виджет в FocusPanel, которая в любом случае уже включена для перетаскивания. Я сделал это с TextBox и кнопкой, и, кажется, работает нормально. Отключение виджета внутри FocusPanel также предотвращает его случайную активацию.

0 голосов
/ 09 октября 2009

Если вы хотите перетащить составной виджет, вам нужно иметь ссылку на «дескриптор перетаскивания», который является одним из элементов в составном виджете, который реализует HasAllMouseHandlers. Самый простой (и, на мой взгляд, самый чистый) способ сделать это - заставить составной виджет расширить интерфейс HasDragHandle, для которого в составном виджете должен быть метод: Widget getDragHandle(); интерфейс явно не говорит вам об этом, но возвращаемый виджет должен быть виджетом, реализующим интерфейс HasAllMouseHandlers (иначе вы получите ошибку времени выполнения).

(Некомпозитные виджеты, реализующие HasAllMouseHandlers, могут использоваться напрямую)

Я бы рекомендовал использовать Label в качестве маркера перетаскивания (он не должен содержать какой-либо текст, его можно просто стилизовать, чтобы пользователь понял, что его можно использовать для перетаскивания), а не элемент формы, потому что тогда перегрузить его поведение так, как пользователь, скорее всего, не будет ожидать. Я не совсем уверен, как отключенный элемент будет работать как дескриптор перетаскивания, вполне возможно, что отключение элемента остановит работу любых списков мыши, поэтому он не будет работать как дескриптор перетаскивания (хотя и не пробовал).

...