Я предполагаю, что в диалоге вы имеете в виду всплывающее окно, которое невидимо при загрузке страницы и становится видимым, скажем, щелчком по чему-либо в существующем HTML. Простая стратегия, позволяющая реализовать это, заключается в переносе существующего HTML.
У меня нет опыта работы с вариантом 1. Что касается 2, все, что вам нужно изменить в существующем HTML, это
добавление импорта JS, например
<script type="text/javascript" language="javascript" src="/com.your.org.Module/com.your.org.module.client.Module.nocache.js"></script>
затем добавление идентификатора к некоторому интерактивному элементу, который вы хотите активировать в своем диалоге, например,
<button id="launchDialog">Show Dialog</button>
и, наконец, добавление пустого div с идентификатором для вставки вашего диалога в DOM.
<div id="dialog"></div>
Тогда все, что вам нужно в вашем модуле, это
public class Module implements EntryPoint {
@Override
public void onModuleLoad() {
Button b = Button.wrap(DOM.getElementById("launchDialog"));
b.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
RootPanel panel = RootPanel.get("dialog");
Widget w = ... // your dialog widget here
panel.add(w);
}
});
}
}
Наконец, вы можете поиграть с видимостью вашего всплывающего div с помощью стиля «display: none» и методов show () и hide () в виджете.