GWT UiBinders Взаимодействие между модулями - PullRequest
0 голосов
/ 15 марта 2012

Я новичок в GWT, это должен быть простой вопрос, я надеюсь.

Представьте, что я сделал два модуля Uibinders или два независимых виджета (это упрощенный пример, чтобы раскрыть мою проблему)

одна представляет собой набор кнопок (ButtonPanel), а другая - изображение, отображаемое при нажатии кнопки на предыдущей панели (ImagePAnel) с меткой в ​​качестве заголовка изображения.

Как мне добратьсявиджет imagePanel, активируемый при нажатии кнопки обработчика на кнопках (ButtonPanel)

Спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 15 марта 2012

Обычно я создаю третий компонент, который является контейнером для определенных вами компонентов Button и Image. Этот компонент устанавливает себя как обратный вызов для двух и содержит логику для интеграции двух.

0 голосов
/ 16 марта 2012

Я рекомендую вам использовать MVP Pattern для разработки и добавить все события в Presenter.

Или же вы можете использовать следующую технику в Java-файле UIBinder

@UiHandler(value={"openButton"})
public void onOpenButtonClick(ClickEvent clickEvent){
      //ADD THE BUTTON LOGIC HERE
}

Просто создайте объект изображений и ImagePanel для загрузки и добавьте его по нажатию кнопки, используя это.

0 голосов
/ 15 марта 2012

Не могу сказать, что я точно понимаю, чего вы пытаетесь достичь, но в целом лучший способ взаимодействия различных компонентов в приложении с графическим интерфейсом - это использование шаблона eventbus. В приложении есть один глобальный объект Eventbus, который позволяет компонентам подписываться на события определенного типа, которые запускаются из любого места в вашем приложении. Таким образом, вы избегаете использования спагетти-кода и ваши компоненты слабо связаны.

http://code.google.com/webtoolkit/articles/mvp-architecture.html#events

...