protected void registerScreen(String id, WindowInfo windowInfo) { String controllerClassName = windowInfo.getControllerClassName(); if (controllerClassName != null) { MetadataReader classMetadata = loadClassMetadata(controllerClassName); AnnotationMetadata annotationMetadata = classMetadata.getAnnotationMetadata(); registerPrimaryEditor(windowInfo, annotationMetadata); registerPrimaryLookup(windowInfo, annotationMetadata); } screens.put(id, windowInfo); RouteDefinition routeDef = windowInfo.getRouteDefinition(); if (routeDef != null) { String anotherScreenId = routes.get(routeDef.getPath()); if (anotherScreenId != null && !Objects.equals(id, anotherScreenId)) { log.debug("Multiple use of the route '{}' for different screens is detected: '{}' and '{}'. " + "The screen '{}' will be opened during navigation as the last registered screen", routeDef.getPath(), id, anotherScreenId, id); } routes.put(routeDef.getPath(), id); } }