Навигация в рамках приложения GWT - PullRequest
0 голосов
/ 10 июня 2011

Я намереваюсь создать веб-приложение, в котором пользователи могут вводить свое время каждую неделю и изо всех сил пытались осмыслить концепцию одной страницы в GWT, которая перерисовывается с данными в зависимости от действий пользователя. После много исследований на этом сайте и в Google, я нашел одну ссылку, которую я хотел бы подражать, но не знаю, как это сделать в GWT. Хотя их исходный код доступен, я не думаю, что он полон и завершен. Я получил некоторую идею по этой ссылке - Учебник по нескольким страницам в Google Web Toolkit (GWT) , но опять же не знаю, как внедрить его в рабочую версию. Один небольшой рабочий образец был бы полезен, чтобы помочь мне понять и начать.

Может ли кто-нибудь подсказать мне, как добиться внешнего вида экрана с помощью приведенной ниже ссылки и как можно перекрасить содержимое с помощью данных с сервера? Должен ли я поместить всю логику в один класс EntryPoint? Я хотел бы иметь гиперссылки на левой панели навигации и показывать содержимое на правой панели. Кажется, я полностью растерялся после нескольких часов исследований.

http://gwt.google.com/samples/Showcase/Showcase.html#!CwHyperlink

Большое спасибо за вашу помощь.

С уважением, Сон.

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Ваш вопрос смешивает пару понятий.Если вы хотите, чтобы пользователь щелкнул что-то, похожее на ссылку, и в ответ приложение отправляет запрос на сервер и показывает страницу, которая выглядит иначе, чем страница, на которой он находится, и эта страница содержит свежие данные, которые только что поступили ссервер, то вы хотите совершенно нормальный якорь или кнопку отправки формы.Вам не нужно ничего особенного или странного из GWT.

Пример демонстрации, на который вы ссылались, позволяет пользователю щелкнуть что-то, похожее на ссылку, и выглядит так, как будто оно загружает новую страницу, даже до того момента, когдаКнопка «Назад» работает, как и ожидалось, но фактически не попадает на сервер, чтобы получить новую страницу или новые данные.

0 голосов
/ 10 июня 2011

Макет одностраничного приложения на самом деле довольно прост.

Первое, что вы делаете, это определяете общий макет, используя GWT макетные панели . Для вашего макета я бы предложил использовать DockLayoutPanel .

Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);

DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM);
p.addWest(new HTML(navigation), 7.5);
p.add(new HTML(content));

Здесь ширина панели навигации будет фиксированной, тогда как контент займет оставшееся место. Вы должны передать ссылку на кнопку (или другой виджет), которая переключает область содержимого, добавить кнопку в область навигации и т. Д.

Поместите это в класс, например. называется MasterPageFactory:

public class MasterPageFactory {
    private MasterPageFactory() {}

    public static MasterPage newInstance() {

       Content content = new Content();
       Button switchContent = new Button(content);
       Navigation navigation = new Navigation();
       navigation.add(switchContent);

       DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM);
       masterPage.addWest(new HTML(navigation), 7.5);
       masterPage.add(new HTML(content));

       return masterPage;
    }
}

Теперь, в вашем EntryPoint классе, позвоните на фабрику:

RootLayoutPanel.get().add(MasterPageFactory.newInstance());

Этот пример должен дать вам представление. Другими вариантами будет использование структуры DI, такой как Guice или шаблон Command.

...