Всплывающие подсказки для отключенных элементов (кнопка) в GWT - PullRequest
2 голосов
/ 28 марта 2012

Я знаю, есть некоторые другие вопросы, которые связаны с этим вопросом.Но ни один ответ не имеет правильного решения.Есть ли способ показать подсказки для отключенных элементов в gwt?Особенно для кнопок.Каждая отключенная кнопка больше не слушает события мыши.Но я хочу показать подсказки для отключенных кнопок, почему они отключены.Я просматривал всю сеть, но ничего не нашел!

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Это очень просто.Отключенные элементы HTML НЕ поглощают события мыши.Невозможно отобразить всплывающую подсказку для отключенного элемента.

Решение:

  • Расширьте виджет кнопки и переопределите метод setEnabled, чтобы просто установить стиль, чтобы кнопка отображалась отключенной, когда для параметра установлено значение falseНе вызывайте super.setEnabled.
  • Когда для setEnabled установлено значение false, установите в своем классе флаг, что кнопка отключена .
  • Переопределите onBrowserEvent, и при получении события щелчка отметьте флаг отключения и вызовите event.preventDefault (), чтобы остановить обработку события щелчка.(на самом деле есть несколько способов сделать это, так что это всего лишь пример)
1 голос
/ 28 марта 2012

Я думаю, вам, вероятно, потребуется расширить класс Button, для которого вы хотите показать всплывающие подсказки, и предоставить перезаписанный метод для некоторых связанных методов. Несколько предложений, которые могут помочь ...

  1. Попробуйте переписать методы слушателя, чтобы увидеть, запущен ли метод, даже если кнопка отключена - по умолчанию отключенная кнопка может просто захватывать все события слушателя, а не передавать их слушателям

  2. Попробуйте включить кнопку, но перезапишите методы рисования, чтобы нарисовать ее как отключенную, чтобы она выглядела как отключенная кнопка, но при этом работала как обычная кнопка. Возможно, вам придется обработать некоторые другие слушатели и события в этом случае, например, захватывать любые обычные щелчки и игнорировать их

Посмотрите, как вы идете.

...