You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

54 lines
2.0 KiB

package app.views.navigation;
import app.components.navigation.NavigationHeader;
import app.data.service.MatchService;
import app.data.service.MatchdayService;
import app.data.service.SeasonService;
import app.navigation.Navigation;
import com.vaadin.flow.component.orderedlayout.FlexComponent;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.BeforeEvent;
import com.vaadin.flow.router.HasUrlParameter;
import com.vaadin.flow.router.WildcardParameter;
import org.springframework.beans.factory.annotation.Autowired;
public abstract class NavigationViewBase extends VerticalLayout implements HasUrlParameter<String> {
protected final Navigation navigation;
protected final NavigationHeader navigationHeader;
protected NavigationViewBase(@Autowired SeasonService seasonService,
@Autowired MatchdayService matchdayService,
@Autowired MatchService matchService,
boolean seasonEnabled,
boolean matchdayEnabled,
boolean matchEnabled) {
this.navigation = new Navigation(seasonService, matchdayService, matchService);
this.navigationHeader = new NavigationHeader(navigation);
navigation.setRoute(getRoute());
navigation.setSeasonEnabled(seasonEnabled);
navigation.setMatchdayEnabled(matchdayEnabled);
navigation.setMatchEnabled(matchEnabled);
add(navigationHeader);
setAlignItems(FlexComponent.Alignment.CENTER);
navigation.addRunnableToBeRunAfterSelection(this::configureContent);
}
protected abstract String getRoute();
protected abstract void configureContent();
@Override
public void removeAll() {
super.removeAll();
add(navigationHeader);
}
@Override
public void setParameter(BeforeEvent event, @WildcardParameter String param) {
navigation.setParameter(event, param);
}
}