protected void initNotifications(PivotTable pivotTable) { ScreenContext screenContext = ComponentsHelper.getScreenContext(pivotTable); notifications = screenContext.getNotifications(); }
@Deprecated @Override public WindowManager getWindowManager() { return (WindowManager) UiControllerUtils.getScreenContext(getFrameOwner()).getScreens(); }
protected RouteDefinition getRouteDef(Screen screen) { return screen == null ? null : getScreenContext(screen).getWindowInfo().getRouteDefinition(); }
@Override public boolean handleTimeoutException() { boolean handled = wrappedTask.handleTimeoutException(); if (handled || wrappedTask.getOwnerScreen() == null) { Screens screens = getScreenContext().getScreens(); screens.remove(screen); } else { Screens screens = getScreenContext().getScreens(); screens.remove(screen); Notifications notifications = getScreenContext().getNotifications(); Messages messages = AppBeans.get(Messages.NAME); notifications.create(Notifications.NotificationType.WARNING) .withCaption(messages.getMessage(LocalizedTaskWrapper.class, "backgroundWorkProgress.timeout")) .withDescription(messages.getMessage(LocalizedTaskWrapper.class, "backgroundWorkProgress.timeoutMessage")) .show(); handled = true; } return handled; }
return UiControllerUtils.getScreenContext(frameOwner).getScreens(); return UiControllerUtils.getScreenContext(frameOwner).getDialogs(); return UiControllerUtils.getScreenContext(frameOwner).getNotifications(); return UiControllerUtils.getScreenContext(frameOwner).getFragments(); return UiControllerUtils.getScreenContext(frameOwner).getUrlRouting();
protected void showExecutionError(Exception ex) { Screen ownerFrame = wrappedTask.getOwnerScreen(); if (ownerFrame != null) { Dialogs dialogs = getScreenContext().getDialogs(); Messages messages = AppBeans.get(Messages.class); dialogs.createExceptionDialog() .withThrowable(ex) .withCaption(messages.getMessage(LocalizedTaskWrapper.class, "backgroundWorkProgress.executionError")) .withMessage(ex.getLocalizedMessage()) .show(); } } }
protected void reflectTabChangeToUrl(boolean userOriginated) { if (!userOriginated) { return; } Component selectedTab = tabbedContainer.getTabSheetBehaviour().getSelectedTab(); if (selectedTab == null) { return; } Window selectedWindow = ((TabWindowContainer) selectedTab).getBreadCrumbs().getCurrentWindow(); WebWindow webWindow = (WebWindow) selectedWindow; NavigationState resolvedState = webWindow.getResolvedState(); if (resolvedState != null) { int stateMark = generateUrlStateMark(); NavigationState newState = new NavigationState( resolvedState.getRoot(), String.valueOf(stateMark), resolvedState.getNestedRoute(), resolvedState.getParams()); webWindow.setUrlStateMark(stateMark); webWindow.setResolvedState(newState); Screen screen = selectedWindow.getFrameOwner(); UrlRouting urlRouting = UiControllerUtils.getScreenContext(screen) .getUrlRouting(); urlRouting.pushState(screen, newState.getParams()); } }
/** * Convenient method to perform programmatic initialization of the fragment. * * @see Fragments#init(ScreenFragment) */ public ScreenFragment init() { getScreenContext().getFragments().init(this); return this; }
setScreenContext(controller, new ScreenContextImpl(windowInfo, parentContext.getOptions(), hostScreenContext.getScreens(), hostScreenContext.getDialogs(), hostScreenContext.getNotifications(), hostScreenContext.getFragments(), hostScreenContext.getUrlRouting()) ); setScreenData(controller, new ScreenDataImpl());
protected void analyzeLayout(Object target) { Window window = findWindow((Layout) target); if (window != null) { LayoutAnalyzer analyzer = new LayoutAnalyzer(); List<LayoutTip> tipsList = analyzer.analyze(window); if (tipsList.isEmpty()) { Notifications notifications = ComponentsHelper.getScreenContext(window).getNotifications(); notifications.create(NotificationType.HUMANIZED) .withCaption("No layout problems found") .show(); } else { WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(window).getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo("layoutAnalyzer"); wm.openWindow(windowInfo, WindowManager.OpenType.DIALOG, ParamsMap.of("tipsList", tipsList)); } } }
protected void confirmAndRemove(Set<Entity> selected) { Dialogs dialogs = ComponentsHelper.getScreenContext(target.getFrame()).getDialogs(); dialogs.createOptionDialog() .withCaption(getConfirmationTitle()) .withMessage(getConfirmationMessage()) .withActions( new DialogAction(Type.OK, Status.PRIMARY).withHandler(event -> { try { remove(selected); } finally { if (target instanceof Component.Focusable) { ((Component.Focusable) target).focus(); } Set<Entity> filtered = new HashSet<>(selected); filtered.retainAll(target.getDatasource().getItems()); //noinspection unchecked target.setSelected(filtered); } }), new DialogAction(Type.CANCEL).withHandler(event -> { // move focus to owner if (target instanceof Component.Focusable) { ((Component.Focusable) target).focus(); } })) .show(); }
@Override public void initLookupLayout() { Action selectAction = getAction(LOOKUP_SELECT_ACTION_ID); if (selectAction != null && selectAction.getOwner() == null) { Fragments fragments = UiControllerUtils.getScreenContext(this).getFragments(); ScreenFragment lookupWindowActions = fragments.create(this, "lookupWindowActions"); lookupWindowActions.getFragment().setId("lookupWindowActions"); lookupWindowActions.getFragment().setVisible(false); getFrame().add(lookupWindowActions.getFragment()); lookupWindowActions.init(); } Element element = ((Component.HasXmlDescriptor) getFrame()).getXmlDescriptor(); if (element != null) { String lookupComponent = element.attributeValue("lookupComponent"); if (StringUtils.isNotEmpty(lookupComponent)) { Component component = getFrame().getComponent(lookupComponent); setLookupComponent(component); } } Component lookupComponent = getLookupComponent(); if (lookupComponent instanceof LookupSelectionChangeNotifier) { LookupSelectionChangeNotifier selectionNotifier = (LookupSelectionChangeNotifier) lookupComponent; if (selectAction != null) { //noinspection unchecked selectionNotifier.addLookupValueChangeListener(valueChangeEvent -> selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty())); selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty()); } } }
setScreenContext(controller, new ScreenContextImpl(windowInfo, parentContext.getOptions(), hostScreenContext.getScreens(), hostScreenContext.getDialogs(), hostScreenContext.getNotifications(), hostScreenContext.getFragments(), hostScreenContext.getUrlRouting()) ); setScreenData(controller, new ScreenDataImpl());
@Deprecated @Override public WindowManager getWindowManager() { return (WindowManager) UiControllerUtils.getScreenContext(getFrameOwner()).getScreens(); }
/** * Show validation alert with passed errors and first problem UI component. * * @param origin screen controller * @param errors validation error */ public void showValidationErrors(FrameOwner origin, ValidationErrors errors) { checkNotNullArgument(origin); checkNotNullArgument(errors); if (errors.isEmpty()) { return; } StringBuilder buffer = new StringBuilder(); for (ValidationErrors.Item error : errors.getAll()) { buffer.append(error.description).append("\n"); } ClientConfig clientConfig = configuration.getConfig(ClientConfig.class); String validationNotificationType = clientConfig.getValidationNotificationType(); if (validationNotificationType.endsWith("_HTML")) { // HTML validation notification types are not supported validationNotificationType = validationNotificationType.replace("_HTML", ""); } Notifications notifications = getScreenContext(origin).getNotifications(); notifications.create(NotificationType.valueOf(validationNotificationType)) .withCaption(messages.getMainMessage("validationFail.caption")) .withDescription(buffer.toString()) .show(); focusProblemComponent(errors); }
Notifications notifications = getScreenContext(origin).getNotifications(); Notifications notifications = getScreenContext(origin).getNotifications(); WindowInfo windowInfo = windowConfig.getWindowInfo("ftsSearchResults"); WindowManager wm = (WindowManager) getScreenContext(origin).getScreens(); wm.openWindow(windowInfo, OpenType.NEW_TAB,
Dialogs dialogs = getScreenContext(this).getDialogs();
protected int getScreenHashCode(Screen screen) { ScreenContext screenContext = UiControllerUtils.getScreenContext(screen); WindowInfo windowInfo = screenContext.getWindowInfo(); Map<String, Object> params = getFrame().getContext().getParams(); return windowInfo.hashCode() + (params != null ? params.hashCode() : 0); }
/** * Shows this screen. * * @see Screens#show(Screen) */ public Screen show() { getScreenContext().getScreens().show(this); return this; }
protected void showParseErrorNotification(String message) { ScreenContext screenContext = UiControllerUtils.getScreenContext(getFrame().getFrameOwner()); screenContext.getNotifications().create(Notifications.NotificationType.TRAY) .withDescription(message) .show(); } }