/** * Creates the collection datasource that is used for selecting the dynamic attribute value. If the * CategoryAttribute has "where" or "join" clauses then only items that satisfy these clauses will be presented in * the options datasource */ public CollectionDatasource createOptionsDatasourceForLookup(MetaClass metaClass, String joinClause, String whereClause) { CollectionDatasource optionsDatasource = DsBuilder.create() .setMetaClass(metaClass) .setViewName(View.MINIMAL) .buildCollectionDatasource(); String query = "select e from " + metaClass.getName() + " e"; if (!Strings.isNullOrEmpty(joinClause)) { query += " " + joinClause; } if (!Strings.isNullOrEmpty(whereClause)) { query += " where " + whereClause.replaceAll("\\{E\\}", "e"); } optionsDatasource.setQuery(query); optionsDatasource.refresh(); return optionsDatasource; }
private void initCollectionDatasourceAttributes(Element element, MetaClass metaClass) { String id = getDatasourceId(element); String viewName = element.attributeValue("view"); String deletion = element.attributeValue("softDeletion"); boolean softDeletion = deletion == null || Boolean.parseBoolean(deletion); boolean cacheable = Boolean.parseBoolean(element.attributeValue("cacheable")); builder.reset() .setMetaClass(metaClass) .setId(id) .setViewName(viewName) .setSoftDeletion(softDeletion) .setCacheable(cacheable) .setRefreshMode(getRefreshMode(element)) .setMaxResults(getMaxResults(element)) .setAllowCommit(getAllowCommit(element)); }
private void initDatasourceAttributes(Element element) { String id = getDatasourceId(element); MetaClass metaClass = loadMetaClass(element); String viewName = element.attributeValue("view"); builder.reset() .setMetaClass(metaClass) .setId(id) .setViewName(viewName) .setAllowCommit(getAllowCommit(element)); }
@SuppressWarnings("unchecked") @Override public Datasource getItemDatasource(Entity item) { if (fieldDatasources == null) { fieldDatasources = new WeakHashMap<>(); } Object fieldDatasource = fieldDatasources.get(item); if (fieldDatasource instanceof Datasource) { return (Datasource) fieldDatasource; } Datasource datasource = DsBuilder.create() .setAllowCommit(false) .setMetaClass(getDatasource().getMetaClass()) .setRefreshMode(CollectionDatasource.RefreshMode.NEVER) .setViewName("_local") .buildDatasource(); ((DatasourceImplementation) datasource).valid(); datasource.setItem(item); fieldDatasources.put(item, datasource); return datasource; }
protected Datasource createItemDatasource(E item) { EntityDataGridItems<E> items = getEntityDataGridItemsNN(); Datasource fieldDatasource = DsBuilder.create() .setAllowCommit(false) .setMetaClass(items.getEntityMetaClass()) .setRefreshMode(CollectionDatasource.RefreshMode.NEVER) .setViewName(View.LOCAL) .buildDatasource(); ((DatasourceImplementation) fieldDatasource).valid(); //noinspection unchecked fieldDatasource.setItem(item); return fieldDatasource; }
protected CollectionDatasource<Entity<Object>, Object> createOptionsDataSource(MetaClass metaClass) { CollectionDatasource ds = DsBuilder.create() .setMetaClass(metaClass) .setViewName(entityView) .buildCollectionDatasource(); ds.setRefreshOnComponentValueChange(true); ((DatasourceImplementation) ds).initialized(); if (!StringUtils.isBlank(entityWhere)) { QueryTransformer transformer = QueryTransformerFactory.createTransformer( "select e from " + metaClass.getName() + " e"); transformer.addWhere(entityWhere); String q = transformer.getResult(); ds.setQuery(q); } // TODO filter ds // if (WindowParams.DISABLE_AUTO_REFRESH.getBool(datasource.getDsContext().getFrameContext())) { // if (ds instanceof CollectionDatasource.Suspendable) // ((CollectionDatasource.Suspendable) ds).refreshIfNotSuspended(); // else ds.refresh(); // } return ds; }
optionsDs = DsBuilder.create() .setMetaClass(metaClass) .setViewName(View.MINIMAL) .buildCollectionDatasource(); optionsDs.refresh();
.setId("entities_" + parameter.getAlias()) .setMetaClass(entityMetaClass) .setViewName(View.LOCAL) .setAllowCommit(false) .buildCollectionDatasource();