@Override public E getItem() { return container.getItemOrNull(); }
@Override public BindingState getState() { return container.getItemOrNull() == null ? BindingState.INACTIVE : BindingState.ACTIVE; }
@Override public V getValue() { E item = container.getItemOrNull(); if (item != null) { return item.getValueEx(metaPropertyPath); } return null; }
@Override public T getEditedEntity() { T editedEntity = getEditedEntityContainer().getItemOrNull(); return editedEntity != null ? editedEntity : entityToEdit; }
@Override public void setValue(V value) { E item = container.getItemOrNull(); if (item != null) { if (canUpdateMasterRefs()) { updateMasterRefs(value); } else { item.setValueEx(metaPropertyPath.toPathString(), value); } } }
@Override public void setItems(@Nullable Collection<E> entities) { super.setItems(entities); Entity masterItem = master.getItemOrNull(); if (masterItem != null) { MetaProperty masterProperty = getMasterProperty(); Collection masterCollection = masterItem.getValue(masterProperty.getName()); if (masterCollection != entities) { updateMasterCollection(masterProperty, masterCollection, entities); } } }
/** * Releases pessimistic lock if the entity was locked. */ public void releaseLock() { if (justLocked) { Entity entity = getEditContainer().getItemOrNull(); if (entity != null) { getBeanLocator().get(LockService.class).unlock(getLockName(), entity.getId().toString()); } } }
protected void releaseLock() { if (isLocked()) { Entity entity = getEditedEntityContainer().getItemOrNull(); if (entity != null) { getBeanLocator().get(LockService.class).unlock(getLockName(), entity.getId().toString()); } } }
/** * 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; }