Интеграция GWT Dialog в существующее HTML-приложение - PullRequest
1 голос
/ 24 декабря 2009

У меня есть ситуация, когда мне нужно интегрировать диалог gwt (который, насколько я понимаю, реализован как div с манипулированием z-index) в существующую html-страницу.
Есть два сценария:
1. Что предпочтительнее и сложнее, когда я даю html-странице хоста еще одну страницу, которую они встраивают в виде iframe, и я прорабатываю там свою магию (может быть, каким-то образом подключаюсь к родительскому окну и запускаю диалог, я не уверен) .
2. Там, где у меня ограниченный доступ к html-странице, и я привожу туда некоторый код, который загрузит мое диалоговое окно.

Любые идеи или мысли о том, как я могу их реализовать?
Я работаю в течение нескольких месяцев с GWT и нашел это довольно хорошим, хотя я оставался далеко от всей области HTML, и до сих пор вся моя работа была выполнена строго в моих классах Java.
Спасибо за любые идеи и помощь переданы
Еффий

1 Ответ

2 голосов
/ 29 декабря 2009

Я предполагаю, что в диалоге вы имеете в виду всплывающее окно, которое невидимо при загрузке страницы и становится видимым, скажем, щелчком по чему-либо в существующем 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 () в виджете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...