/** * This method is called by the framework after opening the screen to apply user settings to all components. */ @Deprecated default void applySettings(Settings settings) { UiControllerUtils.applySettings(getFrameOwner(), settings); }
/** * This method is called by the framework when closing the screen * to save user settings if they have been changed. */ @Deprecated default void saveSettings() { UiControllerUtils.saveSettings(getFrameOwner()); }
/** * This method is called by the framework on reset to defaults action */ @Deprecated default void deleteSettings() { UiControllerUtils.deleteSettings(getFrameOwner()); }
/** * @return object encapsulating user settings for the current screen */ @Deprecated default Settings getSettings() { return UiControllerUtils.getSettings(getFrameOwner()); }
protected void loadCrossFieldValidate(Window window, Element element) { String crossFieldValidate = element.attributeValue("crossFieldValidate"); if (isNotEmpty(crossFieldValidate)) { // todo lookupComponent if (window.getFrameOwner() instanceof Window.Editor) { Window.Editor editor = (Window.Editor) window.getFrameOwner(); editor.setCrossFieldValidate(Boolean.parseBoolean(crossFieldValidate)); } else { throw new GuiDevelopmentException("Window should extend Window.Editor to use crossFieldValidate attribute", context.getCurrentFrameId()); } } }
@Override public void selectWindowTab(Window window) { WebAppWorkArea workArea = getConfiguredWorkArea(); Collection<WindowStack> workAreaStacks = getWorkAreaStacks(workArea); Screen screen = window.getFrameOwner(); workAreaStacks.stream() .filter(ws -> ws.getBreadcrumbs().contains(screen)) .findFirst() .ifPresent(WindowStack::select); }
@Override public Collection<Screen> getBreadcrumbs() { checkAttached(); Deque<Window> windows = windowContainer.getBreadCrumbs().getWindows(); Iterator<Window> windowIterator = windows.descendingIterator(); List<Screen> screens = new ArrayList<>(windows.size()); while (windowIterator.hasNext()) { Screen screen = windowIterator.next().getFrameOwner(); screens.add(screen); } return screens; }
/** * Add a listener that will be notified when this screen is closed. * * @param listener listener instance * @deprecated Use {@link Screen#addAfterCloseListener(Consumer)} instead. */ @Deprecated default void addCloseListener(CloseListener listener) { getFrameOwner().addAfterCloseListener(new AfterCloseListenerAdapter(listener)); }
/** * Add a listener that will be notified when this screen is closed. * * @param listener listener instance * @deprecated Use {@link Screen#addAfterCloseListener(Consumer)} instead. */ @Deprecated default void addListener(CloseListener listener) { getFrameOwner().addAfterCloseListener(new AfterCloseListenerAdapter(listener)); }
/** * Get screen context for UI component. * * @param component component * @return screen context * @throws IllegalStateException in case window cannot be inferred */ public static ScreenContext getScreenContext(Component.BelongToFrame component) { Window window = getWindowNN(component); return UiControllerUtils.getScreenContext(window.getFrameOwner()); }
/** * INTERNAL. Don't call from application code. * * @deprecated Use {@link #getFrameOwner()} and trigger {@link Screen#close(CloseAction)} instead. */ @Deprecated default void closeAndRun(String actionId, Runnable runnable) { getFrameOwner().close(new StandardCloseAction(actionId)) .then(runnable); }
@Deprecated default void removeListener(CloseListener listener) { EventHub eventHub = UiControllerUtils.getEventHub(getFrameOwner()); eventHub.unsubscribe(AfterCloseEvent.class, new AfterCloseListenerAdapter(listener)); }
@Deprecated default void removeCloseListener(CloseListener listener) { EventHub eventHub = UiControllerUtils.getEventHub(getFrameOwner()); eventHub.unsubscribe(AfterCloseEvent.class, new AfterCloseListenerAdapter(listener)); }
@Nullable public static Screen getScreen(ScreenFragment frameOwner) { Frame frame = frameOwner.getFragment(); while (frame != null) { if (frame instanceof Window && frame.getFrame() == frame) { return ((Window) frame).getFrameOwner(); } frame = frame.getFrame(); } return null; }
protected void openSearchWindow() { String searchTerm = searchField.getValue(); if (StringUtils.isBlank(searchTerm)) { return; } FtsSearchLauncher searchLauncher = beanLocator.get(FtsSearchLauncher.NAME); Screen frameOwner = ComponentsHelper.getWindowNN(this).getFrameOwner(); searchLauncher.search(frameOwner, searchTerm); }
protected void loadScreenData(Window window, Element element) { Element dataEl = element.element("data"); if (dataEl != null) { ScreenDataXmlLoader screenDataXmlLoader = beanLocator.get(ScreenDataXmlLoader.class); ScreenData screenData = UiControllerUtils.getScreenData(window.getFrameOwner()); screenDataXmlLoader.load(screenData, dataEl, null); ((ComponentLoaderContext) context).setScreenData(screenData); } }
protected void onCloseWindowButtonClick(@SuppressWarnings("unused") MouseEventDetails meDetails) { Window window = getCurrentWindow(); if (!window.isCloseable()) { return; } if (!isCloseWithCloseButtonPrevented(window)) { window.getFrameOwner() .close(FrameOwner.WINDOW_CLOSE_ACTION); } }
protected void initDatasources(Window window, DsContext dsContext, @SuppressWarnings("unused") Map<String, Object> params) { ((LegacyFrame) window.getFrameOwner()).setDsContext(dsContext); for (Datasource ds : dsContext.getAll()) { if (Datasource.State.NOT_INITIALIZED.equals(ds.getState()) && ds instanceof DatasourceImplementation) { ((DatasourceImplementation) ds).initialized(); } } }
@Override public void run() { Window windowToClose = breadCrumbs.getCurrentWindow(); if (windowToClose != null) { if (!getConfiguredWorkArea().isNotCloseable(breadCrumbs.getCurrentWindow()) && !isWindowClosePrevented(windowToClose, CloseOriginType.CLOSE_BUTTON)) { windowToClose.getFrameOwner() .close(WINDOW_CLOSE_ACTION) .then(new TabCloseTask(breadCrumbs)); } } } }
protected void initTabShortcuts() { Screen rootScreen = ComponentsHelper.getWindowNN(this).getFrameOwner(); RootWindow topLevelWindow = (RootWindow) rootScreen.getWindow(); CubaOrderedActionsLayout actionsLayout = topLevelWindow.unwrap(CubaOrderedActionsLayout.class); if (getMode() == Mode.TABBED) { actionsLayout.addShortcutListener(createNextWindowTabShortcut(topLevelWindow)); actionsLayout.addShortcutListener(createPreviousWindowTabShortcut(topLevelWindow)); } actionsLayout.addShortcutListener(createCloseShortcut(topLevelWindow)); }