/** * Creates {@code CollectionPropertyContainer}. */ @SuppressWarnings("unchecked") public <E extends Entity> CollectionPropertyContainer<E> createCollectionContainer(Class<E> entityClass, InstanceContainer<? extends Entity> masterContainer, String property) { CollectionPropertyContainerImpl<E> container = new CollectionPropertyContainerImpl<>( metadata.getClassNN(entityClass), masterContainer, property); if (security.isEntityAttrReadPermitted(masterContainer.getEntityMetaClass(), property) && security.isEntityOpPermitted(entityClass, EntityOp.READ)) { masterContainer.addItemChangeListener(e -> { Entity item = masterContainer.getItemOrNull(); container.setItems(item != null ? item.getValue(property) : null); }); masterContainer.addItemPropertyChangeListener(e -> { if (e.getProperty().equals(property)) { container.setDisconnectedItems((Collection<E>) e.getValue()); } }); } return container; }
/** * Creates {@code InstancePropertyContainer}. */ @SuppressWarnings("unchecked") public <E extends Entity> InstancePropertyContainer<E> createInstanceContainer(Class<E> entityClass, InstanceContainer<? extends Entity> masterContainer, String property) { InstancePropertyContainerImpl<E> container = new InstancePropertyContainerImpl<>( metadata.getClassNN(entityClass), masterContainer, property); if (security.isEntityAttrReadPermitted(masterContainer.getEntityMetaClass(), property) && security.isEntityOpPermitted(entityClass, EntityOp.READ)) { masterContainer.addItemChangeListener(e -> { Entity item = masterContainer.getItemOrNull(); container.setItem(item != null ? item.getValue(property) : null); }); masterContainer.addItemPropertyChangeListener(e -> { if (e.getProperty().equals(property)) { container.setItem((E) e.getValue()); } }); } return container; }
this.container.addItemChangeListener(this::containerItemChanged); this.container.addItemPropertyChangeListener(this::containerItemPropertyChanged); InstanceContainer<Entity> propertyCont = dataComponents.createInstanceContainer(intermediatePath.getRangeJavaClass()); parentCont.addItemChangeListener(event -> { if (event.getItem() != null) { setState(BindingState.ACTIVE);