Search in sources :

Example 31 with Screen

use of com.haulmont.cuba.gui.screen.Screen in project cuba by cuba-platform.

the class RootNavigationHandler method handle404.

protected void handle404(String route, AppUI ui) {
    RootWindow topWindow = ui.getTopLevelWindow();
    Screen rootScreen = topWindow != null ? topWindow.getFrameOwner() : null;
    if (rootScreen instanceof Window.HasWorkArea) {
        MapScreenOptions options = new MapScreenOptions(ParamsMap.of("requestedRoute", route));
        ui.getScreens().create(NotFoundScreen.class, OpenMode.NEW_TAB, options).show();
    } else {
        ui.getNotifications().create(Notifications.NotificationType.TRAY).withCaption(messages.formatMainMessage("navigation.screenNotFound", route)).show();
    }
}
Also used : Screen(com.haulmont.cuba.gui.screen.Screen) NotFoundScreen(com.haulmont.cuba.web.app.ui.navigation.notfoundwindow.NotFoundScreen) RootWindow(com.haulmont.cuba.gui.components.RootWindow) MapScreenOptions(com.haulmont.cuba.gui.screen.MapScreenOptions) NotFoundScreen(com.haulmont.cuba.web.app.ui.navigation.notfoundwindow.NotFoundScreen)

Example 32 with Screen

use of com.haulmont.cuba.gui.screen.Screen in project cuba by cuba-platform.

the class RootNavigationHandler method doHandle.

@Override
public boolean doHandle(NavigationState requestedState, AppUI ui) {
    UrlChangeHandler urlChangeHandler = ui.getUrlChangeHandler();
    if (urlChangeHandler.isEmptyState(requestedState)) {
        urlChangeHandler.revertNavigationState();
        return false;
    }
    if (!rootChanged(requestedState, ui)) {
        return false;
    }
    String rootRoute = requestedState.getRoot();
    WindowInfo windowInfo = windowConfig.findWindowInfoByRoute(rootRoute);
    if (windowInfo == null) {
        log.info("No registered screen found for route: '{}'", rootRoute);
        urlChangeHandler.revertNavigationState();
        handle404(rootRoute, ui);
        return true;
    }
    if (urlChangeHandler.shouldRedirect(windowInfo)) {
        urlChangeHandler.redirect(requestedState);
        return true;
    }
    if (!urlChangeHandler.isPermittedToNavigate(requestedState, windowInfo)) {
        return true;
    }
    Screen screen = ui.getScreens().create(windowInfo.getId(), OpenMode.ROOT);
    boolean hasNestedRoute = StringUtils.isNotEmpty(requestedState.getNestedRoute());
    if (!hasNestedRoute && MapUtils.isNotEmpty(requestedState.getParams())) {
        UiControllerUtils.fireEvent(screen, UrlParamsChangedEvent.class, new UrlParamsChangedEvent(screen, requestedState.getParams()));
        ((WebWindow) screen.getWindow()).setResolvedState(requestedState);
    }
    screen.show();
    return !hasNestedRoute;
}
Also used : UrlParamsChangedEvent(com.haulmont.cuba.gui.navigation.UrlParamsChangedEvent) Screen(com.haulmont.cuba.gui.screen.Screen) NotFoundScreen(com.haulmont.cuba.web.app.ui.navigation.notfoundwindow.NotFoundScreen) UrlChangeHandler(com.haulmont.cuba.web.sys.navigation.UrlChangeHandler) WindowInfo(com.haulmont.cuba.gui.config.WindowInfo) WebWindow(com.haulmont.cuba.web.gui.WebWindow)

Example 33 with Screen

use of com.haulmont.cuba.gui.screen.Screen in project cuba by cuba-platform.

the class OpenMainScreenTest method openMainScreen.

@Test
public void openMainScreen() {
    Screen screen = environment.getScreens().create(MainScreen.class, OpenMode.ROOT).show();
    assertNotNull(screen);
    assertTrue(screen instanceof MainScreen);
}
Also used : MainScreen(com.haulmont.cuba.web.app.main.MainScreen) Screen(com.haulmont.cuba.gui.screen.Screen) MainScreen(com.haulmont.cuba.web.app.main.MainScreen) Test(org.junit.jupiter.api.Test)

Example 34 with Screen

use of com.haulmont.cuba.gui.screen.Screen in project cuba by cuba-platform.

the class UrlChangeHandler method revertNavigationState.

public void revertNavigationState() {
    Screen screen = findActiveScreenByState(ui.getHistory().getNow());
    if (screen == null) {
        screen = getActiveScreen();
    }
    urlTools.replaceState(getResolvedState(screen).asRoute(), ui);
}
Also used : Screen(com.haulmont.cuba.gui.screen.Screen)

Example 35 with Screen

use of com.haulmont.cuba.gui.screen.Screen in project cuba by cuba-platform.

the class UrlChangeHandler method redirect.

public void redirect(NavigationState navigationState) {
    String loginScreenId = webConfig.getLoginScreenId();
    Screen loginScreen = ui.getScreens().create(loginScreenId, OpenMode.ROOT);
    loginScreen.show();
    RedirectHandler redirectHandler = beanLocator.getPrototype(RedirectHandler.NAME, ui);
    redirectHandler.schedule(navigationState);
    setRedirectHandler(redirectHandler);
}
Also used : Screen(com.haulmont.cuba.gui.screen.Screen) RedirectHandler(com.haulmont.cuba.web.sys.RedirectHandler)

Aggregations

Screen (com.haulmont.cuba.gui.screen.Screen)66 WebWindow (com.haulmont.cuba.web.gui.WebWindow)18 NotFoundScreen (com.haulmont.cuba.web.app.ui.navigation.notfoundwindow.NotFoundScreen)11 GuiDialogWindow (com.haulmont.cuba.web.gui.components.WebDialogWindow.GuiDialogWindow)10 WebTabWindow (com.haulmont.cuba.web.gui.components.WebTabWindow)10 EditorScreen (com.haulmont.cuba.gui.screen.EditorScreen)9 NavigationState (com.haulmont.cuba.gui.navigation.NavigationState)8 Nullable (javax.annotation.Nullable)8 Screens (com.haulmont.cuba.gui.Screens)6 WindowInfo (com.haulmont.cuba.gui.config.WindowInfo)6 WebAppWorkArea (com.haulmont.cuba.web.gui.components.mainwindow.WebAppWorkArea)6 FrameOwner (com.haulmont.cuba.gui.screen.FrameOwner)5 AppUI (com.haulmont.cuba.web.AppUI)5 Entity (com.haulmont.cuba.core.entity.Entity)4 com.haulmont.cuba.core.global (com.haulmont.cuba.core.global)4 SelectHandlerAdapter (com.haulmont.cuba.gui.components.compatibility.SelectHandlerAdapter)4 WindowConfig (com.haulmont.cuba.gui.config.WindowConfig)4 OpenMode (com.haulmont.cuba.gui.screen.OpenMode)4 ScreenFragment (com.haulmont.cuba.gui.screen.ScreenFragment)4 UiControllerUtils (com.haulmont.cuba.gui.screen.UiControllerUtils)4