/** * Loads single item by id. * * @param meta item's meta class * @param id item's id * @param view view * @return loaded item if found, null otherwise */ protected Entity loadSingleItem(MetaClass meta, Object id, View view) { String primaryKeyName = metadata.getTools().getPrimaryKeyName(meta); if (primaryKeyName == null) { throw new IllegalStateException(String.format("Entity %s has no primary key", meta.getName())); } LoadContext ctx = new LoadContext(meta); ctx.setLoadDynamicAttributes(true); ctx.setSoftDeletion(false); ctx.setView(view); String query = String.format("select e from %s e where e.%s = :id", meta.getName(), primaryKeyName); LoadContext.Query q = ctx.setQueryString(query); q.setParameter("id", id); return dataSupplier.load(ctx); }
protected Entity reloadInstance(Entity instance) { View reloadView = new View(instance.getMetaClass().getJavaClass(), true); LoadContext loadContext = new LoadContext(instance.getMetaClass()); loadContext.setSoftDeletion(false); loadContext.setId(instance.getId()); loadContext.setView(reloadView); DataSupplier supplier = getDataSupplier(); return supplier.load(loadContext); }
@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); } } } } }