protected NestedDatasource createPropertyDatasource() { return new PropertyDatasourceImpl(); }
protected void reattachListeners(Entity prevItem, Entity item) { if (prevItem != item) { detachListener(prevItem); attachListener(item); } }
Entity parentItem = masterDs.getItem(); T prevItem = getItem(); T newItem = null; for (Entity entity : entities) { detachListener(prevItem); attachListener(newItem); fireItemChanged(prevItem); detachListener(getItem(previousParentItem)); attachListener(getItem(newParentItem)); clearCommitLists();
@SuppressWarnings("unchecked") protected void initParentDsListeners() { masterDs.addItemChangeListener(e -> { Entity prevValue = getItem(e.getPrevItem()); Entity newValue = getItem(e.getItem()); reattachListeners(prevValue, newValue); fireItemChanged((T) prevValue); }); masterDs.addStateChangeListener(e -> fireStateChanged(e.getPrevState()) ); masterDs.addItemPropertyChangeListener(e -> { if (e.getProperty().equals(metaProperty.getName()) && !Objects.equals(e.getPrevValue(), e.getValue())) { reattachListeners((Entity) e.getPrevValue(), (Entity) e.getValue()); fireItemChanged((T) e.getPrevValue()); } }); }
@Override public void setItem(T item) { if (getItem() != null) { metadata.getTools().copy(item, getItem()); itemsToUpdate.add(item); } else { final Instance parentItem = masterDs.getItem(); parentItem.setValue(metaProperty.getName(), item); } setModified(true); }
if (getCommitMode() == CommitMode.PARENT) { if (parentDs == null) { throw new IllegalStateException("parentDs is null while commitMode=PARENT"); clearCommitLists(); modified = false;
throw new DevelopmentException("No view for datasource " + masterDs.getId(), ParamsMap.of("masterDs", masterDs.getId(), "propertyDs", getId())); masterView, property), ParamsMap.of("masterDs", masterDs.getId(), "propertyDs", getId(), "masterView", masterView, "property", property) ); view = metadata.getViewRepository().findView(getMetaClass(), property.getView().getName());
@Override public T getItem() { final Instance item = masterDs.getItem(); return getItem(item); }
propertyDs = new EmbeddedDatasourceImpl(); } else { propertyDs = new PropertyDatasourceImpl();