Запуская событие щелчка из кода в gwt

Можно перезагрузить модуль, когда он был уже импортирован при помощи reload встроенная функция:

from importlib import reload  # Python 3.4+ only.
import foo

while True:
    # Do some things.
    if is_changed(foo):
        foo = reload(foo)

В Python 3, reload был перемещен в imp модуль. В 3,4, imp удерживался от использования в пользу [1 113] importlib , и reload был добавлен к последнему. При предназначении 3 или позже, или ссылка соответствующий модуль при вызове reload или импорт это.

я думаю, что это - то, что Вы хотите. Веб-серверы как сервер разработки Django используют это так, чтобы Вы видели эффекты своих изменений кода, не перезапуская сам серверный процесс.

Для заключения в кавычки из документов:

Python modules’ код перекомпилирован и повторно выполняемый код уровня модуля, определив новый набор объектов, которые связываются с именами в module’s словаре. init функция дополнительных модулей не вызвана во второй раз. Как со всеми другими объектами в Python только исправлены старые объекты после того, как их подсчеты ссылок опускаются до нуля. Имена в пространстве имен модуля обновляются для указания на любые новые или измененные объекты. Другие ссылки на старые объекты (такие как имена, внешние к модулю), не являются восстановлением для обращения к новым объектам и должны быть обновлены в каждом пространстве имен, где они происходят, если это желаемо.

, Поскольку Вы отметили в своем вопросе, необходимо будет восстановить Foo объекты, если Foo класс находится в foo модуль.

23
задан DonX 6 August 2009 в 11:38
поделиться

3 ответа

Я не делал этого для события щелчка, но я делал такие события изменения.

NativeEvent event = Document.get().createChangeEvent();
DomEvent.fireNativeEvent(event, this);

[ createClickEvent ] ( http: //google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/dom/client/Document.html#createClickEvent(int,%20int,%20int,%20int,%20int,%20boolean ,% 20boolean,% 20boolean,% 20boolean)) метод принимает гораздо больше параметров.

public final NativeEvent createClickEvent(int detail,
                                          int screenX,
                                          int screenY,
                                          int clientX,
                                          int clientY,
                                          boolean ctrlKey,
                                          boolean altKey,
                                          boolean shiftKey,
                                          boolean metaKey)
19
ответ дан 29 November 2019 в 01:07
поделиться

Возможно ClickListenerCollection.fireClick () делает то, что вы хотите. Я не использовал его

Извините, это устарело и, возможно, даже бесполезно. Думаю, вам лучше посмотреть widget.delegateEvent.

1
ответ дан 29 November 2019 в 01:07
поделиться

Метод, описанный DLH, должен работать, и за исключением аргумента детали (я понятия не имею, для чего он нужен) у вас есть другие аргументы, доступные в KeyPressEvent.

Другое возможное решение - для вызова встроенного JavaScript щелкните () на элементе. Я сделал это в виджете Button (который доступен как открытый исходный код). См. Метод click () в следующем классе: http://code.google.com/p/cobogw/source/browse/trunk/widgets/src/main/java/org/cobogw /gwt/user/client/ui/Button.java), который вызывает определенный класс Event2, который реализует версии метода click для конкретного браузера.

Чтобы использовать этот метод, вы можете просто добавить файл jar предоставленный с cobogw к вашему проекту, включите Event.gwt. xml и вызовите Event2.fireClickEvent (getElement ()); в своем методе или используйте только код из классов Event2 и Event в своем собственном проекте

Это решение также позволяет запускать программно событие щелчка.

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

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

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

2
ответ дан 29 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: