@Override public void invalidate() { if (State.NOT_INITIALIZED != this.state) { final State prevStatus = this.state; this.state = State.INVALID; fireStateChanged(prevStatus); } modified = false; clearCommitLists(); }
category = getDefaultCategory(); if (baseGenericIdEntity.getMetaClass().getProperty("category") != null) { baseGenericIdEntity.setValue("category", category); dynamicAttributesGuiTools.initDefaultAttributeValues(baseGenericIdEntity, resolveCategorizedEntityClass()); valid(); initializedBefore = true; fireItemChanged(null);
public RuntimePropsDatasourceImpl(DsContext dsContext, DataSupplier dataSupplier, String id, String mainDsId, @Nullable MetaClass categorizedEntityClass) { this.categorizedEntityClass = categorizedEntityClass; this.id = id; this.dsContext = dsContext; this.dataSupplier = dataSupplier; this.dynamicAttributesGuiTools = AppBeans.get(DynamicAttributesGuiTools.NAME); this.metaClass = new DynamicAttributesMetaClass(); this.setMainDs(mainDsId); this.setCommitMode(CommitMode.DATASTORE); this.attributes = AppBeans.get(DynamicAttributes.NAME, DynamicAttributes.class).getAttributesForMetaClass(resolveCategorizedEntityClass()); for (CategoryAttribute attribute : attributes) { MetaProperty metaProperty = DynamicAttributesUtils.getMetaPropertyPath(mainDs.getMetaClass(), attribute).getMetaProperty(); this.metaClass.addProperty(metaProperty, attribute); } }
@Override public void committed(Set<Entity> entities) { if (!State.VALID.equals(state)) { return; } for (Entity entity : entities) { if (entity.equals(mainDs.getItem())) { initMetaClass(entity); } } modified = false; clearCommitLists(); }
if (e.getState() == State.VALID) { if (e.getPrevState() != State.VALID) { initMetaClass(mainDs.getItem()); } else { valid(); categoryChanged = true; try { initMetaClass(mainDs.getItem()); } finally { categoryChanged = false; initMetaClass(e.getItem()) );
public RuntimePropsDatasource buildRuntimePropsDatasource(String mainDsId, @Nullable MetaClass categorizedEntityClass) { init(); RuntimePropsDatasourceImpl datasource; datasource = new RuntimePropsDatasourceImpl(dsContext, dataSupplier, id, mainDsId, categorizedEntityClass); registerDatasource(datasource); return datasource; }
@Override public void initialized() { final State prev = state; state = State.INVALID; fireStateChanged(prev); }
@Override public void refresh() { initMetaClass(mainDs.getItem()); }
@Nullable public Category getDefaultCategory() { MetaClass metaClass = resolveCategorizedEntityClass(); DynamicAttributes dynamicAttributes = AppBeans.get(DynamicAttributes.class); Collection<Category> categoriesForMetaClass = dynamicAttributes.getCategoriesForMetaClass(metaClass); for (Category category : categoriesForMetaClass) { if (Boolean.TRUE.equals(category.getIsDefault())) { return category; } } return null; }
protected void initRuntimePropertiesDatasources(View view) { rDS = new RuntimePropsDatasourceImpl(dsContext, dataSupplier, "rDS", datasource.getId(), null); MetaClass categoriesMeta = metadata.getSession().getClass(Category.class); categoriesDs = new CollectionDatasourceImpl(); ViewProperty categoryProperty = view.getProperty("category"); if (categoryProperty == null) { throw new IllegalArgumentException("Category property not found. Not a categorized entity?"); } categoriesDs.setup(dsContext, dataSupplier, "categoriesDs", categoriesMeta, categoryProperty.getView()); categoriesDs.setQuery(String.format("select c from sys$Category c where c.entityType='%s'", meta.getName())); categoriesDs.refresh(); dsContext.register(rDS); dsContext.register(categoriesDs); }
@Override public void valid() { final State prev = state; state = State.VALID; fireStateChanged(prev); }