составной открытый / видимый обработчик gwt

#gwt #handler #composite

#gwt #обработчик #составной

Вопрос:

У меня есть несколько составных элементов, и я хотел бы добавить к одному из них обработчик, который запускает событие, если пользователь открывает этот составной элемент. Есть ли какой-либо обработчик для?

Спасибо

Ответ №1:

Хорошим / простым способом запуска событий является использование библиотеки GQuery, которая эмулирует jQuery в коде GWT. Это позволяет вам делать такие вещи, как:

 $(yourWidget).blur();
 

например, для запуска события размытия в вашем виджете… если вы не возражаете добавить зависимость от GQuery в свой проект, на мой взгляд, это правильный путь.
Вы даже можете предоставить функцию, которая будет вызвана после запуска события, как в:

 $(yourWidget).click(new Function() {
  public boolean f(Event e) {
    e.preventDefault();
    return false;
  }
}
 

Я не уверен, как вы могли бы сделать это в чистом GWT, но это, очевидно, возможно… возможно, вы захотите посмотреть, как GQuery это делает.

http://code.google.com/p/gwtquery/

Комментарии:

1. Хм, это звучит немного сложно. Я думаю, что должно быть более простое решение для. Я объясняю это другими словами. У меня есть вкладка с несколькими композитами на ней. Когда пользователь нажимает на один из них, пользователю отображается составной. В этом случае я хотел бы запустить метод, но я не знаю, существует ли какой-либо обработчик для..

2. Каков тип вашей панели вкладок? Например, если это TabLayoutPanel, вы можете добавить к нему SelectionHandler<Целое число>, вызвав addSelectionHandler(..) . Метод onSelection(SelectionEvent<Целое число>) будет вызываться каждый раз, когда пользователь изменяет вкладку. Затем вы можете делать все, что захотите, например, динамически заполнять один из ваших композитов.

3. Но в любом случае, если кто-то нажимает на ваш композитный, вы говорите, что композитный отображается пользователю… Что вы имеете в виду? Композитный становится больше??? Или создается и отображается составной?? В любом случае, вы, должно быть, получаете событие onClick ?! Или ваша проблема заключается в том, чтобы получить событие щелчка???