/** * @return a value source that can be used to create the component */ @SuppressWarnings("unchecked") @Nullable public ValueSource getValueSource() { return valueSource == null && datasource != null ? new DatasourceValueSource(datasource, property) : valueSource; }
/** * @return datasource instance * * @deprecated Use {@link #getValueSource()} instead */ @Deprecated default Datasource getDatasource() { ValueSource<V> valueSource = getValueSource(); return valueSource instanceof DatasourceValueSource ? ((DatasourceValueSource) valueSource).getDatasource() : null; }
@SuppressWarnings("unchecked") protected void afterCommitOpenedEntity(Entity item) { if (pickerField instanceof LookupField) { LookupField lookupPickerField = ((LookupField) pickerField); EntityOptions entityOptionsSource = (EntityOptions) lookupPickerField.getOptions(); if (entityOptionsSource != null && entityOptionsSource.containsItem(item)) { entityOptionsSource.updateItem(item); } } if (pickerField.getValueSource() instanceof DatasourceValueSource) { DatasourceValueSource datasourceValueSource = (DatasourceValueSource) pickerField.getValueSource(); boolean modified = datasourceValueSource.isModified(); pickerField.setValue(item); datasourceValueSource.setModified(modified); } else { pickerField.setValue(item); } }
@Nullable public static String getInferredTestId(ValueSource<?> valueSource) { if (valueSource instanceof DatasourceValueSource) { DatasourceValueSource dsValueSource = (DatasourceValueSource) valueSource; return StringUtils.join(dsValueSource.getMetaPropertyPath().getPropertyNames(), "_"); } else if (valueSource instanceof ContainerValueSource) { ContainerValueSource dcValueSource = (ContainerValueSource) valueSource; return StringUtils.join(dcValueSource.getMetaPropertyPath().getPropertyNames(), "_"); } return null; }
/** * @return datasource property path * * @deprecated Use {@link #getValueSource()} instead */ @Deprecated default MetaPropertyPath getMetaPropertyPath() { ValueSource<V> valueSource = getValueSource(); if (valueSource instanceof DatasourceValueSource) { return ((DatasourceValueSource) valueSource).getMetaPropertyPath(); } if (valueSource instanceof ContainerValueSource) { return ((ContainerValueSource) valueSource).getMetaPropertyPath(); } return null; }
@SuppressWarnings("unchecked") @Override public Field createField(Datasource datasource, String property) { return createField(new DatasourceValueSource(datasource, property), property); }
/** * @return datasource property * @deprecated Use {@link #getValueSource()} instead */ @Deprecated default MetaProperty getMetaProperty() { ValueSource<V> valueSource = getValueSource(); if (valueSource instanceof DatasourceValueSource) { return ((DatasourceValueSource) valueSource).getMetaPropertyPath().getMetaProperty(); } if (valueSource instanceof ContainerValueSource) { return ((ContainerValueSource) valueSource).getMetaPropertyPath().getMetaProperty(); } return null; }
@SuppressWarnings("unchecked") protected void datasourceItemChanged(Datasource.ItemChangeEvent e) { if (e.getItem() != null && datasource.getState() == Datasource.State.VALID) { setState(BindingState.ACTIVE); } else { setState(BindingState.INACTIVE); } events.publish(InstanceChangeEvent.class, new InstanceChangeEvent(this, e.getPrevItem(), e.getItem())); }
/** * @return datasource instance * @deprecated Use {@link #getValueSource()} instead. */ @Deprecated default Datasource getDatasource() { ValueSource<FileDescriptor> valueSource = getValueSource(); return valueSource instanceof DatasourceValueSource ? ((DatasourceValueSource) valueSource).getDatasource() : null; }
@SuppressWarnings("unchecked") @Override public Component createField(Datasource datasource, String property, Element xmlDescriptor) { return createField(new DatasourceValueSource(datasource, property), property, xmlDescriptor); }
@Override public void setBeanLocator(BeanLocator beanLocator) { MetaClass metaClass = datasource.getMetaClass(); MetadataTools metadataTools = beanLocator.get(MetadataTools.NAME); MetaPropertyPath metaPropertyPath = metadataTools.resolveMetaPropertyPath(metaClass, property); checkNotNullArgument(metaPropertyPath, "Could not resolve property path '%s' in '%s'", property, metaClass); this.metaPropertyPath = metaPropertyPath; this.datasource.addStateChangeListener(this::datasourceStateChanged); this.datasource.addItemChangeListener(this::datasourceItemChanged); this.datasource.addItemPropertyChangeListener(this::datasourceItemPropertyChanged); if (datasource.getState() == Datasource.State.VALID) { setState(BindingState.ACTIVE); } }
/** * Sets datasource and its property. * @deprecated Use {@link #setValueSource(ValueSource)} instead. */ @SuppressWarnings("unchecked") @Deprecated default void setDatasource(Datasource datasource, String property) { if (datasource != null) { this.setValueSource(new DatasourceValueSource(datasource, property)); } else { this.setValueSource(null); } }
@Override public Component generateField(Datasource datasource, String propertyId) { DynamicAttributeComponentsGenerator generator = AppBeans.get(DynamicAttributeComponentsGenerator.NAME); //noinspection unchecked return generator.generateComponent(new DatasourceValueSource(datasource, propertyId), propertyId); } }
/** * Set datasource and its property. * * @deprecated Use {@link #setValueSource(ValueSource)} instead */ @SuppressWarnings("unchecked") @Deprecated default void setDatasource(Datasource datasource, String property) { if (datasource == null && property != null) { throw new IllegalArgumentException("datasource is null"); } if (datasource != null) { this.setValueSource(new DatasourceValueSource(datasource, property)); } else { this.setValueSource(null); } } }