Навигация в GWT приложение, базирано на Errai-UI

Имам някакъв проблем с GWT приложение, базирано на Errai-UI, опитвайки се да създам страница с раздели за навигация. Проблемът, с който се сблъсквам, е, че навигацията и долният колонтитул не се изобразяват и изглежда, че моето приложение WelcomePage е единственото, което се изобразява в браузъра:

@Dependent
@Templated("#home")
@Page(startingPage=true)
public class WelcomePage extends Composite { 
 // stuff
}

Свързаният HTML на горепосочената WelcomePage е единственият, който се визуализира в браузъра.

Кодът на Bootstrap:

@Templated("#main")
@ApplicationScoped
@EntryPoint
public class Bootstrap extends Composite
{

    @Inject
    Navigation navigation;

    @Inject @DataField
    private NavBar navbar;

    @PostConstruct
    public void buildUI()
    {
        RootPanel.get().add(navigation.getContentPanel());
    }

}

А това е съответният html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
    <link href="/bgstyle.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div data-field="main">
        <!--top part start -->
        <div id="top">
            <a href="/bgindex.html"><img src="images/logo.gif" alt="individual" width="286" height="66" border="0" /></a>
            <div data-field="navbar">Navbar Goes here</div>
        </div>
        <!--top part end -->

        <div data-field="content"></div>

        <!--footer start -->
        <div id="footerMain">
            <div id="footer">
                <ul>
                        <li><a href="/bg#">Home</a>|</li>
                </ul>
            </div>
        </div>
        <!--footer end -->          
    </div>
    <!-- main end -->
</body>
</html>

Приложението ми работи добре, просто навигацията и долният колонтитул не се изобразяват. Какво може да ми липсва?


person quarks    schedule 28.02.2013    source източник


Отговори (2)


Е, предполагам, че е така, защото добавяте само действителен панел със съдържание към DOM. DOM е насочена ациклична графика и следователно не може да има дублирани бележки. Така че, когато изрично добавите панела със съдържание към DOM с RootPanel.get().add(navigation.getContentPanel()), браузърът заменя цялото DOM дърво с поддървото, представено от

person Mike Brock    schedule 28.02.2013

Решението беше да направите:

@PostConstruct
public void buildUI()
{
    content.add(navigation.getContentPanel()); // Just a SimplePanel with data-field in the Bootstrap html
    RootPanel.get("rootPanel").add(this);
}
person quarks    schedule 05.03.2013