upgrade clean code MainLayout

This commit is contained in:
Nils Burghardt
2025-07-13 18:34:31 +02:00
parent 6b57a0c5e5
commit e828e83991

View File

@@ -10,7 +10,7 @@ import com.vaadin.flow.server.VaadinServletRequest;
import com.vaadin.flow.server.VaadinServletResponse;
import de.nilzbu.mytimetracker.ui.view.MainView;
import de.nilzbu.mytimetracker.ui.view.TimeEntryView;
import de.nilzbu.mytimetracker.ui.view.UserAdminView;
import de.nilzbu.mytimetracker.ui.view.UserManagementView;
import jakarta.annotation.security.PermitAll;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@@ -19,44 +19,46 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
@PermitAll
public class MainLayout extends AppLayout {
public MainLayout() {
createHeader();
buildHeader();
}
private void createHeader() {
H1 logo = new H1("Time Tracker");
logo.getStyle()
private void buildHeader() {
H1 title = new H1("Time Tracker");
title.getStyle()
.set("font-size", "var(--lumo-font-size-l)")
.set("margin", "0");
RouterLink homeLink = new RouterLink("Dashboard", MainView.class);
RouterLink dashboardLink = new RouterLink("Dashboard", MainView.class);
RouterLink bookingsLink = new RouterLink("Bookings", TimeEntryView.class);
RouterLink userAdminView = new RouterLink("Admin", UserAdminView.class);
homeLink.getStyle().set("margin-left", "2em");
RouterLink adminLink = new RouterLink("Admin", UserManagementView.class);
dashboardLink.getStyle().set("margin-left", "2em");
bookingsLink.getStyle().set("margin-left", "2em");
userAdminView.getStyle().set("margin-left", "2em");
adminLink.getStyle().set("margin-left", "2em");
Button logoutButton = new Button("Logout", event -> handleLogout());
Button logoutButton = new Button("Logout", event -> performLogout());
HorizontalLayout header = new HorizontalLayout(logo, homeLink, bookingsLink, userAdminView, logoutButton);
header.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER);
header.setWidthFull();
header.setPadding(true);
header.setSpacing(true);
HorizontalLayout headerLayout = new HorizontalLayout(
title, dashboardLink, bookingsLink, adminLink, logoutButton
);
headerLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER);
headerLayout.setWidthFull();
headerLayout.setPadding(true);
headerLayout.setSpacing(true);
addToNavbar(header);
addToNavbar(headerLayout);
}
private void handleLogout() {
private void performLogout() {
HttpServletRequest request = VaadinServletRequest.getCurrent().getHttpServletRequest();
HttpServletResponse response = VaadinServletResponse.getCurrent().getHttpServletResponse();
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (auth != null) {
new SecurityContextLogoutHandler().logout(request, response, auth);
if (authentication != null) {
new SecurityContextLogoutHandler().logout(request, response, authentication);
}
getUI().ifPresent(ui -> ui.getPage().setLocation("/login"));