private DataSupplier getDataService() { DsContext context = getDsContext(); if (context == null) { throw new UnsupportedOperationException(); } else { return context.getDataSupplier(); } }
/** * INTERNAL */ public DsBuilder(DsContext dsContext) { this.dsContext = dsContext; this.id = "ds"; if (dsContext != null) this.dataSupplier = dsContext.getDataSupplier(); else this.dataSupplier = new GenericDataSupplier(); }
protected DataSupplier getDataSupplier() { if (getDatasource() != null) { return getDatasource().getDataSupplier(); } Window window = ComponentsHelper.getWindowNN(this); if (window.getFrameOwner() instanceof LegacyFrame) { DsContext dsContext = ((LegacyFrame) window.getFrameOwner()).getDsContext(); if (dsContext != null && dsContext.getDataSupplier() != null) { return dsContext.getDataSupplier(); } } return null; }
/** * For entities with composite keys there will be a value of the 'uuid' property in the {@code entityId} parameter. */ protected Entity reloadEntity(MetaClass metaClass, Object entityId) { String ftsPrimaryKeyName = ftsService.getPrimaryKeyPropertyForFts(metaClass).getName(); String queryStr = String.format("select e from %s e where e.%s = :id", metaClass.getName(), ftsPrimaryKeyName); LoadContext lc = new LoadContext(metaClass) .setView(View.MINIMAL) .setQuery(LoadContext.createQuery(queryStr).setParameter("id", entityId)); List list = getDsContext().getDataSupplier().loadList(lc); return list.isEmpty() ? null : (Entity) list.get(0); } }
return frameOwner.getDsContext().getDataSupplier();
protected GroupDatasource createDataSource(String dataSetName, List<KeyValueEntity> keyValueEntities, Map<String, Set<Pair<String, Class>>> headerMap) { DsBuilder dsBuilder = DsBuilder.create(getDsContext()) .setId(dataSetName + "Ds") .setDataSupplier(getDsContext().getDataSupplier()); ValueGroupDatasourceImpl ds = dsBuilder.buildValuesGroupDatasource(); ds.setRefreshMode(CollectionDatasource.RefreshMode.NEVER); Set<Pair<String, Class>> headers = headerMap.get(dataSetName); for (Pair<String, Class> pair : headers) { Class javaClass = pair.getSecond(); if (Entity.class.isAssignableFrom(javaClass) || EnumClass.class.isAssignableFrom(javaClass) || Datatypes.get(javaClass) != null) { ds.addProperty(pair.getFirst(), pair.getSecond()); } } dsContext.register(ds); keyValueEntities.forEach(ds::includeItem); return ds; }
public void generateInsert() { setCopyButtonVisible(); scriptArea.setEditable(true); if (item instanceof Role) { View localView = metadata.getViewRepository().getView(Role.class, View.LOCAL); View roleView = new View(localView, Role.class, "role-export-view", true) .addProperty("permissions", metadata.getViewRepository().getView(Permission.class, View.LOCAL)); item = getDsContext().getDataSupplier().reload(item, roleView); StringBuilder result = new StringBuilder(); result.append(sqlGenerationService.generateInsertScript(item)).append("\n"); for (Permission permission : ((Role) item).getPermissions()) { result.append(sqlGenerationService.generateInsertScript(permission)).append("\n"); } scriptArea.setValue(result.toString()); } else { scriptArea.setValue(sqlGenerationService.generateInsertScript(item)); } showScriptArea(); }
protected void subscribeCreateActionCloseHandler(CreateAction createAction) { createAction.setAfterWindowClosedHandler(((window, closeActionId) -> { if (!COMMIT_ACTION_ID.equals(closeActionId)) { Report newReport = (Report) ((Editor) window).getItem(); if (!PersistenceHelper.isNew(newReport)) { DataSupplier dataSupplier = getDsContext().getDataSupplier(); Report reloadedReport = dataSupplier.reload(newReport, reportDs.getView()); boolean modified = reportDs.isModified(); reportDs.addItem(reloadedReport); ((DatasourceImplementation) reportDs).setModified(modified); } } })); } }
/** * Returns an entity reloaded with the view of the target datasource if it is wider than the set of attributes * that is loaded in the given entity instance. The entity is also reloaded if the target datasource requires * dynamic attributes and the entity instance does not contain them. */ public Entity reloadEntityIfNeeded(Entity entity, Datasource targetDatasource) { boolean needDynamicAttributes = false; boolean dynamicAttributesAreLoaded = true; if (entity instanceof BaseGenericIdEntity) { BaseGenericIdEntity e = (BaseGenericIdEntity) entity; dynamicAttributesAreLoaded = e.getDynamicAttributes() != null; needDynamicAttributes = targetDatasource.getLoadDynamicAttributes(); } View view = targetDatasource.getView(); if (view == null) { view = viewRepository.getView(entity.getClass(), View.LOCAL); } if (!entityStates.isLoadedWithView(entity, view)) { entity = targetDatasource.getDsContext().getDataSupplier().reload(entity, view, null, needDynamicAttributes); } else if (needDynamicAttributes && !dynamicAttributesAreLoaded) { dynamicAttributesGuiTools.reloadDynamicAttributes((BaseGenericIdEntity) entity); } return entity; }
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())); }
LegacyFrame frameOwner = (LegacyFrame) window.getFrameOwner(); DataSupplier dataSupplier = frameOwner.getDsContext().getDataSupplier(); entity = dataSupplier.reload(entity, View.MINIMAL); } else {
@Override public void init(final Map<String, Object> params) { super.init(params); dsContext = new DsContextImpl(getDsContext().getDataSupplier()); getDialogOptions() .setWidth(themeConstants.get("cuba.gui.report.ShowReportTable.width")) .setHeight(themeConstants.get("cuba.gui.report.ShowReportTable.height")) .setResizable(true); if (report != null) { reportSelectorBox.setVisible(false); CubaTableData dto = (CubaTableData) SerializationSupport.deserialize((byte[]) params.get(TABLE_DATA_PARAMETER)); drawTables(dto); openReportParameters(reportParameters); } reportLookup.addValueChangeListener(e -> { report = (Report) e.getValue(); openReportParameters(null); }); }
public Filter createFakeFilter() { if (filter != null) { return filter; } Filter fakeFilter = AppBeans.get(ComponentsFactory.NAME, ComponentsFactory.class).createComponent(Filter.class); ((HasXmlDescriptor) fakeFilter).setXmlDescriptor(Dom4j.readDocument("<filter/>").getRootElement()); CollectionDatasourceImpl fakeDatasource = new CollectionDatasourceImpl(); LegacyFrame legacyFrame = (LegacyFrame) this.frameOwner; DsContextImpl fakeDsContext = new DsContextImpl(legacyFrame.getDsContext().getDataSupplier()); FrameContextImpl fakeFrameContext = new FrameContextImpl((Frame) legacyFrame); fakeDsContext.setFrameContext(fakeFrameContext); fakeDatasource.setDsContext(fakeDsContext); //Attention: this query should match the logic in com.haulmont.reports.wizard.ReportingWizardBean.createJpqlDataSet() fakeDatasource.setQuery("select queryEntity from " + metaClass.getName() + " queryEntity"); fakeDatasource.setMetaClass(metaClass); fakeFilter.setDatasource(fakeDatasource); fakeFilter.setFrame(UiControllerUtils.getFrame(frameOwner)); return fakeFilter; }
/** * Method that is invoked by clicking Cancel button, discards changes and disables controls for editing. */ @SuppressWarnings("unchecked") public void cancel() { CollectionDatasource browseDs = getTable().getDatasource(); Datasource editDs = getFieldGroup().getDatasource(); Entity selectedItem = browseDs.getItem(); if (selectedItem != null) { Entity reloadedItem = getDsContext().getDataSupplier().reload( selectedItem, editDs.getView(), null, editDs.getLoadDynamicAttributes()); browseDs.setItem(reloadedItem); } else { editDs.setItem(null); } releaseLock(); disableEditControls(); } }
/** * Adds a listener that reloads the selected record with the specified view and sets it to editDs. */ @SuppressWarnings("unchecked") protected void initBrowseItemChangeListener() { CollectionDatasource browseDs = getTable().getDatasource(); Datasource editDs = getFieldGroup().getDatasource(); browseDs.addItemChangeListener(e -> { if (e.getItem() != null) { Entity reloadedItem = getDsContext().getDataSupplier().reload( e.getDs().getItem(), editDs.getView(), null, e.getDs().getLoadDynamicAttributes()); editDs.setItem(reloadedItem); } }); }
protected void loadDsContext(@Nullable Element dsContextElement) { DsContext dsContext = null; if (resultComponent.getFrameOwner() instanceof LegacyFrame) { DsContextLoader dsContextLoader; DsContext parentDsContext = context.getParent().getDsContext(); if (parentDsContext != null){ dsContextLoader = new DsContextLoader(parentDsContext.getDataSupplier()); } else { dsContextLoader = new DsContextLoader(new GenericDataSupplier()); } dsContext = dsContextLoader.loadDatasources(dsContextElement, parentDsContext, getContext().getAliasesMap()); ((ComponentLoaderContext) context).setDsContext(dsContext); } if (dsContext != null) { FrameOwner frameOwner = getContext().getFrame().getFrameOwner(); if (frameOwner instanceof LegacyFrame) { LegacyFrame frame = (LegacyFrame) frameOwner; frame.setDsContext(dsContext); for (Datasource ds : dsContext.getAll()) { if (ds instanceof DatasourceImplementation) { ((DatasourceImplementation) ds).initialized(); } } dsContext.setFrameContext(resultComponent.getContext()); } } }
@Override public void actionPerform(Component component) { if (!isEnabled()) { return; } ReportGroup group = (ReportGroup) target.getSingleSelected(); if (group != null) { if (group.getSystemFlag()) { showNotification(getMessage("unableToDeleteSystemReportGroup"), NotificationType.WARNING); } else { LoadContext<Report> loadContext = new LoadContext<>(Report.class); loadContext.setView("report.view"); LoadContext.Query query = new LoadContext.Query("select r from report$Report r where r.group.id = :groupId"); query.setMaxResults(1); query.setParameter("groupId", group.getId()); loadContext.setQuery(query); DataSupplier dataService = getDsContext().getDataSupplier(); Report report = dataService.load(loadContext); if (report != null) { showNotification(getMessage("unableToDeleteNotEmptyReportGroup"), NotificationType.WARNING); } else { super.actionPerform(component); } } } } }
LegacyFrame frameOwner = (LegacyFrame) window.getFrameOwner(); DataSupplier dataSupplier = frameOwner.getDsContext().getDataSupplier(); entity = dataSupplier.reload(entity, View.MINIMAL); } else {
entity = dsContext.getDataSupplier().reload(entity, View.MINIMAL);
@Override public void init(Map<String, Object> params) { super.init(params); List<Report> reports = reportsParameter; if (reports == null) { reports = reportGuiManager.getAvailableReports(screenParameter, userSessionSource.getUserSession().getUser(), null); } if (reportsParameter != null) { gridFilter.setVisible(false); } for (Report report : reports) { reportDs.includeItem(report); } Action runAction = new ItemTrackingAction(RUN_ACTION_ID) .withCaption(getMessage("runReport")) .withHandler(e -> { Report report = reportsTable.getSingleSelected(); if (report != null) { report = getDsContext().getDataSupplier().reload(report, ReportService.MAIN_VIEW_NAME); reportGuiManager.runReport(report, ReportRun.this); } }); reportsTable.addAction(runAction); reportsTable.setItemClickAction(runAction); addAction(new BaseAction("applyFilter") .withShortcut(clientConfig.getFilterApplyShortcut()) .withHandler(e -> { filterReports(); })); }