I am using vaadin 12.
I have at the Start-Window MainLayout the following working code:
@HtmlImport("frontend://styles/shared-styles.html")
@Viewport("width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes")
@Theme(value = Lumo.class)
@Route("")
public class MainLayout extends Div implements RouterLayout {
private RouterLink aboutLink;
private Div navigation;
public MainLayout() {
...
aboutLink = new RouterLink(null, About.class);
navigation = new Div(aboutLink);
add(navigation);
}
@PostConstruct
void init() {
Button userButton = new Button("Name");
userButton.addClickListener(e -> {
userButton.getUI().ifPresent(ui -> ui.navigate("UserView"));
});
navigation.add(userButton);
}
}
When i want now inject a Service, i can not call Values of the service
@HtmlImport("frontend://styles/shared-styles.html")
@Viewport("width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes")
@Theme(value = Lumo.class)
@Route("")
public class MainLayout extends Div implements RouterLayout {
@Inject
Service service;
private RouterLink aboutLink;
private Div navigation;
public MainLayout() {
...
aboutLink = new RouterLink(null, About.class);
navigation = new Div(aboutLink);
add(navigation;
}
@PostConstruct
void init() {
Button userButton = new Button(service.getName());
userButton.addClickListener(e -> {
userButton.getUI().ifPresent(ui -> ui.navigate("UserView"));
});
navigation.add(userButton);
}
}
The error comes in this line:
Button userButton = new Button(service.getName());