/** * Creates a screen by its controller class. * * @param screenClass screen controller class * @param launchMode how the screen should be opened */ default <T extends Screen> T create(Class<T> screenClass, LaunchMode launchMode) { return create(screenClass, launchMode, FrameOwner.NO_OPTIONS); }
/** * Creates a screen by its controller class. * <p> * By default, the screen will be opened in the current tab of the main window ({@link OpenMode#THIS_TAB}). * * @param screenClass screen controller class */ default <T extends Screen> T create(Class<T> screenClass) { return create(screenClass, OpenMode.THIS_TAB, FrameOwner.NO_OPTIONS); }
/** * Creates a screen by its screen id. * * @param screenId screen id * @param launchMode how the screen should be opened */ default Screen create(String screenId, LaunchMode launchMode) { return create(screenId, launchMode, FrameOwner.NO_OPTIONS); }
/** * Called on each browser tab initialization. */ public void createTopLevelWindow(AppUI ui) { String topLevelWindowId = routeTopLevelWindowId(); Screens screens = ui.getScreens(); Screen screen = screens.create(topLevelWindowId, OpenMode.ROOT); screens.show(screen); }
Screen screen = screenContext.getScreens().create(editorWindowId, OpenMode.DIALOG, new MapScreenOptions(params)); screen.addAfterCloseListener(event -> { CloseAction closeAction = event.getCloseAction();
protected void handle404(String route) { Map<String, Object> params = ParamsMap.of("requestedRoute", route); MapScreenOptions options = new MapScreenOptions(params); getScreens().create(NotFoundScreen.class, OpenMode.NEW_TAB, options) .show(); }
/** * Initialize new TopLevelWindow and replace current. * * @param topLevelWindowId target top level window id * @deprecated Use {@link Screens#create(Class, Screens.LaunchMode)} with {@link OpenMode#ROOT} */ @Deprecated public void navigateTo(String topLevelWindowId) { AppUI ui = AppUI.getCurrent(); WindowInfo windowInfo = windowConfig.getWindowInfo(topLevelWindowId); Screens screens = ui.getScreens(); Screen screen = screens.create(windowInfo.asScreen(), OpenMode.ROOT); screens.show(screen); }
protected Screen createEditor(WindowInfo windowInfo, NavigationState requestedState) { Map<String, Object> screenOptions = createEditorScreenOptions(windowInfo, requestedState); if (screenOptions.isEmpty()) { return null; } Screen editor; OpenMode openMode = getScreenOpenMode(requestedState.getNestedRoute(), windowInfo); if (LegacyFrame.class.isAssignableFrom(windowInfo.getControllerClass())) { editor = getScreens().create(windowInfo.getId(), openMode, new MapScreenOptions(screenOptions)); } else { editor = getScreens().create(windowInfo.getId(), openMode); } Entity entity = (Entity) screenOptions.get(WindowParams.ITEM.name()); //noinspection unchecked ((EditorScreen<Entity>) editor).setEntityToEdit(entity); return editor; }
@SuppressWarnings("unchecked") protected Screen createScreen(RelatedEntitiesBuilder builder, MetaClass metaClass, MetaProperty metaProperty) { FrameOwner origin = builder.getOrigin(); Screens screens = getScreenContext(origin).getScreens(); if (builder instanceof RelatedEntitiesClassBuilder) { RelatedEntitiesClassBuilder screenClassBuilder = (RelatedEntitiesClassBuilder) builder; Class screenClass = screenClassBuilder.getScreenClass(); if (screenClass == null) { throw new IllegalArgumentException("Screen class is not set"); } return screens.create(screenClass, builder.getLaunchMode(), builder.getOptions()); } else { String screenId = builder.getScreenId(); if (StringUtils.isEmpty(screenId)) { // try to get default browse screen id screenId = windowConfig.getBrowseScreenId(metaProperty.getRange().asClass()); if (StringUtils.isEmpty(screenId)) { String message = String.format("Can't create related entities screen: passed screen id is null and " + "there is no default browse screen for %s", metaClass.getName()); throw new IllegalArgumentException(message); } } return screens.create(builder.getScreenId(), builder.getLaunchMode(), builder.getOptions()); } }
protected <E extends Entity> Screen createScreen(LookupBuilder<E> builder, Screens screens) { Screen screen; if (builder instanceof LookupClassBuilder) { LookupClassBuilder lookupClassBuilder = (LookupClassBuilder) builder; @SuppressWarnings("unchecked") Class<? extends Screen> screenClass = lookupClassBuilder.getScreenClass(); if (screenClass == null) { throw new IllegalArgumentException("Screen class is not set"); } screen = screens.create(screenClass, builder.getLaunchMode(), builder.getOptions()); } else { String lookupScreenId; if (builder.getScreenId() != null) { lookupScreenId = builder.getScreenId(); } else { lookupScreenId = windowConfig.getLookupScreen(builder.getEntityClass()).getId(); } if (lookupScreenId == null) { throw new IllegalArgumentException("Screen id is not set"); } screen = screens.create(lookupScreenId, builder.getLaunchMode(), builder.getOptions()); } return screen; }
Screen screen = screens.create(screenId, openType.getOpenMode(), new MapScreenOptions(params)); screens.showFromNavigation(screen);
Screen screen = screens.create(defaultScreenId, OpenMode.NEW_TAB);
.create()); BulkEditorWindow bulkEditorWindow = (BulkEditorWindow) screens.create("bulkEditor", builder.launchMode, options);
screen = getScreens().create(windowInfo.getId(), openMode);