/** * Open a lookup screen. * * @param entityClass required class of entity * @param handler is invoked when selection confirmed and the lookup screen closes * @param openType how to open the screen * @return created window * * @deprecated Use {@link ScreenBuilders} bean instead. */ @Deprecated default AbstractLookup openLookup(Class<? extends Entity> entityClass, Window.Lookup.Handler handler, WindowManager.OpenType openType) { WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME); WindowInfo lookupScreen = windowConfig.getLookupScreen(entityClass); return (AbstractLookup) getWindowManager().openLookup(lookupScreen, handler, openType); }
/** * Open a lookup screen. * * @param entityClass required class of entity * @param handler is invoked when selection confirmed and the lookup screen closes * @param openType how to open the screen * @param params parameters to pass to {@code init()} method of the screen's controller * @return created window * * @deprecated Use {@link ScreenBuilders} bean instead. */ @Deprecated default AbstractLookup openLookup(Class<? extends Entity> entityClass, Window.Lookup.Handler handler, WindowManager.OpenType openType, Map<String, Object> params) { WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME); WindowInfo lookupScreen = windowConfig.getLookupScreen(entityClass); return (AbstractLookup) getWindowManager().openLookup(lookupScreen, handler, openType, params); }
/** * Open a lookup screen. * * @param windowAlias screen ID as defined in {@code screens.xml} * @param handler is invoked when selection confirmed and the lookup screen closes * @param openType how to open the screen * @return created window * * @deprecated Use {@link ScreenBuilders} bean instead. */ @Deprecated default AbstractLookup openLookup(String windowAlias, Window.Lookup.Handler handler, WindowManager.OpenType openType) { WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME); WindowInfo windowInfo = windowConfig.getWindowInfo(windowAlias); return (AbstractLookup) getWindowManager().openLookup(windowInfo, handler, openType); }
/** * Open a lookup screen. * * @param windowAlias screen ID as defined in {@code screens.xml} * @param handler is invoked when selection confirmed and the lookup screen closes * @param openType how to open the screen * @param params parameters to pass to {@code init()} method of the screen's controller * @return created window * * @deprecated Use {@link ScreenBuilders} bean instead. */ @Deprecated default AbstractLookup openLookup(String windowAlias, Window.Lookup.Handler handler, WindowManager.OpenType openType, Map<String, Object> params) { WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME); WindowInfo windowInfo = windowConfig.getWindowInfo(windowAlias); return (AbstractLookup) getWindowManager().openLookup(windowInfo, handler, openType, params); }
@Override public void actionPerform(Component component) { if (filterEntity == null) { // todo add notification 'Filter not selected' return; } Frame frame = filter.getFrame(); String[] strings = ValuePathHelper.parse(ComponentsHelper.getFilterComponentPath(filter)); String windowAlias = strings[0]; StringBuilder lookupAlias = new StringBuilder(windowAlias); if (windowAlias.endsWith(Window.BROWSE_WINDOW_SUFFIX)) { int index = lookupAlias.lastIndexOf(Window.BROWSE_WINDOW_SUFFIX); lookupAlias.delete(index, lookupAlias.length()); lookupAlias.append(Window.LOOKUP_WINDOW_SUFFIX); } WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(frame).getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo(lookupAlias.toString()); wm.openLookup(windowInfo, items -> { String filterXml = filterEntity.getXml(); filterEntity.setXml(UserSetHelper.addEntities(filterXml, items)); filterEntity.getFolder().setFilterXml(filterEntity.getXml()); filterEntity.setFolder(saveFolder(filterEntity.getFolder())); setFilterEntity(filterEntity); }, OpenType.THIS_TAB); } }
protected void openLookup(FrameOwner screen) { ScreenContext screenContext = UiControllerUtils.getScreenContext(screen); WindowManager wm = (WindowManager) screenContext.getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo("report$Report.run"); Screen hostScreen; if (screen instanceof Screen) { hostScreen = (Screen) screen; } else { hostScreen = UiControllerUtils.getHostScreen((ScreenFragment) screen); } wm.openLookup(windowInfo, items -> { if (items != null && items.size() > 0) { Report report = (Report) items.iterator().next(); if (screen instanceof LegacyFrame) { DataSupplier dataSupplier = ((LegacyFrame) screen).getDsContext().getDataSupplier(); report = dataSupplier.reload(report, "report.edit"); } else { DataManager dataManager = AppBeans.get(DataManager.NAME); report = dataManager.reload(report, "report.edit"); } if (report.getInputParameters() != null && report.getInputParameters().size() > 0 || reportGuiManager.inputParametersRequiredByTemplates(report)) { openReportParamsDialog(report, screen); } else { reportGuiManager.printReport(report, Collections.emptyMap(), screen); } } }, OpenType.DIALOG, ParamsMap.of(ReportRun.SCREEN_PARAMETER, hostScreen.getId())); }
WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo("report$Report.run"); wm.openLookup(windowInfo, items -> { if (CollectionUtils.isNotEmpty(items)) { Report report = (Report) items.iterator().next();
AbstractLookup lookupWindow = (AbstractLookup) wm.openLookup( windowConfig.getWindowInfo(windowAlias), this::handleLookupWindowSelection,
/** * This method is invoked by action owner component. Don't override it, there are special methods to * customize behaviour below. * * @param component component invoking action */ @Override public void actionPerform(Component component) { if (beforeActionPerformedHandler != null) { if (!beforeActionPerformedHandler.beforeActionPerformed()) { return; } } Map<String, Object> params = prepareWindowParams(); Window.Lookup.Handler handler = getHandler(); Window.Lookup.Handler itemsHandler = handler != null ? handler : new DefaultHandler(); WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(target.getFrame()).getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo(getWindowId()); Window lookupWindow = wm.openLookup(windowInfo, itemsHandler, getOpenType(), params); if (target instanceof Component.Focusable) { lookupWindow.addCloseListener(actionId -> { // move focus to owner ((Component.Focusable) target).focus(); }); } }