Nowadays when you want to navigate between Views you usually use the
Navigator
class. But I want to use
UriFragments
aswell. I have implemented following code so far but to be honest,I don’t know how to use
UriFragments
correctly. Please help![code]
public class MyUI extends UI {
Navigator navigator;
protected static final String MAINVIEW = "main";
@Override
protected void init(VaadinRequest vaadinRequest) {
getPage().setTitle("Vaadin vulnerabilities");
getPage().addUriFragmentChangedListener(new UriFragmentChangedListener() {
@Override
public void uriFragmentChanged(UriFragmentChangedEvent event) {
enter(event.getUriFragment());
}
});
enter(getPage().getUriFragment());
navigator = new Navigator(this,this);
navigator.addView(MAINVIEW, new MainView());
navigator.addView("", new StartView());
}
void enter(String fragment) {
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
public class StartView extends VerticalLayout implements View {
public StartView() {
//getPage().setUriFragment("StartView");
Button button = new Button("Zur Hauptansicht",
new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
if(userNameTextField.getValue().equals("")|| userNameTextField.getValue().isEmpty()) {
Notification.show("Bitte einen gültigen Wert eingeben!");
return;
}
else {
navigator.navigateTo(MAINVIEW + "/" + userNameTextField.getValue());
// What to do here with urlfragments?
}
}
});
addComponent(button);
}
public void enter(ViewChangeEvent event) {
}
}
[/code]