GWT: захват / всплытие отладочных событий

Интересно, есть ли способ выполнить пошаговую отладку скомпилированного кода GWT, чтобы определить, как запускаются некоторые события.

Меня интересует то, что я использую SmartGWT, и по какой-то причине события щелчка на их компонентах распространяются на всплывающие окна, которые занимают ту же позицию. Однако это происходит только в Mobile Safari.

Еще более интересно, что это происходит только с версией onClick для smartGWT, а не с простым GWT onClick.


person javaNoober    schedule 05.04.2012    source источник


Ответы (2)


В основном это хакер, но я полагаю, что это сработает (хотя вам придется перекомпилировать приложение):

  1. Сначала скомпилируйте недавний GWT из магистрали: https://developers.google.com/web-toolkit/makinggwtbetter#workingoncode
  2. Затем перекомпилируйте приложение с включенными исходными картами: http://code.google.com/p/google-web-toolkit/wiki/SourceMaps
  3. Следуйте инструкциям в комментариях к этой вики-странице, чтобы иметь возможность использовать SourceMaps в Chrome, а затем повторно разверните свое приложение.
  4. Загрузите Chrome на канале разработчиков: http://www.chromium.org/getting-involved/dev-channel
  5. Используйте http://www.iwebinspector.com/, чтобы запустить Mobile Safari с удаленной отладкой, а затем подключитесь к нему из рабочий стол Chrome: http://www.webkit.org/blog/1620/webkit-remote-debugging/
  6. Наконец, включите исходные карты в Chrome, чтобы вы могли видеть свой код Java в Web Inspector!

См. http://www.youtube.com/watch?v=-xJl22Kvgjg для предварительный просмотр будущего отладки с помощью GWT, который позволит делать такие вещи гораздо менее хакерским способом в ближайшем будущем.

person Thomas Broyer    schedule 05.04.2012

Я не знаю, есть ли хороший способ отладки скомпилированного кода javascript GWT, но зачем он вам?

Для описанной цели лучше использовать режим разработки GWT с опциями отладки. Вы можете добавить следующие параметры e-Xdebug -Xrunjdwp:transport=dt_socket,address={PORT},server=y,suspend=n в команду запуска режима разработки, это даст возможность добавлять точки останова в исходный код GWT / SmardGWT на стороне клиента. Затем для отладки вы должны подключиться к порту, указанному в параметрах вашей java IDE.

Отладка GWT https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging

person hsestupin    schedule 05.04.2012
comment
За исключением того, что, полагаю, вам будет сложно найти плагин для браузера DevMode для Mobile Safari ;-) - person Thomas Broyer; 05.04.2012
comment
Ой, извини, я только что пропустил это условие в вопросе. - person hsestupin; 05.04.2012