Skip to content

Commit

Permalink
introduced DocumentEntityDescriptor.Builder.setFilterDescriptorsProvi…
Browse files Browse the repository at this point in the history
…dersService, mainly for testing (for now)

metasfresh/metasfresh#5566
  • Loading branch information
teosarca committed Oct 3, 2019
1 parent 4e0d2a4 commit ccf0929
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 25 deletions.
Expand Up @@ -4,6 +4,8 @@
import java.util.Comparator;
import java.util.List;

import javax.annotation.Nullable;

import org.adempiere.ad.element.api.AdWindowId;
import org.adempiere.ad.expression.api.ConstantLogicExpression;
import org.adempiere.exceptions.AdempiereException;
Expand All @@ -25,6 +27,7 @@
import de.metas.dataentry.model.I_DataEntry_SubTab;
import de.metas.dataentry.model.I_DataEntry_Tab;
import de.metas.i18n.TranslatableStrings;
import de.metas.ui.web.document.filter.provider.DocumentFilterDescriptorsProvidersService;
import de.metas.ui.web.window.datatypes.WindowId;
import de.metas.ui.web.window.descriptor.DetailId;
import de.metas.ui.web.window.descriptor.DocumentEntityDescriptor;
Expand Down Expand Up @@ -75,17 +78,23 @@
@Value
public class DataEntryTabLoader
{
private final DocumentFilterDescriptorsProvidersService filterDescriptorsProvidersService;

AdWindowId adWindowId;
WindowId windowId;
DataEntrySubTabBindingDescriptorBuilder dataEntrySubTabBindingDescriptorBuilder;
DataEntryWebuiTools dataEntryWebuiTools;

@Builder
private DataEntryTabLoader(
@Nullable final DocumentFilterDescriptorsProvidersService filterDescriptorsProvidersService,
//
@NonNull final AdWindowId adWindowId,
@NonNull final WindowId windowId,
@NonNull final DataEntrySubTabBindingDescriptorBuilder dataEntrySubTabBindingDescriptorBuilder)
{
this.filterDescriptorsProvidersService = filterDescriptorsProvidersService;

this.adWindowId = adWindowId;
this.windowId = windowId;
this.dataEntrySubTabBindingDescriptorBuilder = dataEntrySubTabBindingDescriptorBuilder;
Expand Down Expand Up @@ -322,8 +331,7 @@ private ImmutableList<DocumentEntityDescriptor> createTabEntityDescriptors(@NonN

final DataEntryTabBindingDescriptorBuilder dataEntryDocumentBinding = new DataEntryTabBindingDescriptorBuilder();

final DocumentEntityDescriptor documentEntityDescriptor = DocumentEntityDescriptor
.builder()
final DocumentEntityDescriptor documentEntityDescriptor = DocumentEntityDescriptor.builder()
.setDocumentType(getAdWindowId())
.setDetailId(createDetailIdFor(dataEntryTab))
.setInternalName(dataEntryTab.getInternalName())
Expand All @@ -341,6 +349,8 @@ private ImmutableList<DocumentEntityDescriptor> createTabEntityDescriptors(@NonN
.addAllIncludedEntities(subGroupEntityDescriptors.build())

.setDataBinding(dataEntryDocumentBinding)

.setFilterDescriptorsProvidersService(filterDescriptorsProvidersService)
.build();

return ImmutableList.of(documentEntityDescriptor);
Expand All @@ -350,8 +360,7 @@ private DocumentEntityDescriptor createSubTabEntityDescriptor(
@NonNull final DataEntrySubTab dataEntrySubTab,
@NonNull final DocumentLinkColumnName documentLinkColumnName)
{
final DocumentEntityDescriptor.Builder documentEntityDescriptor = DocumentEntityDescriptor
.builder()
final DocumentEntityDescriptor.Builder documentEntityDescriptor = DocumentEntityDescriptor.builder()
.setSingleRowDetail(true)
.setDocumentType(getAdWindowId())
.setDetailId(createDetailIdFor(dataEntrySubTab))
Expand All @@ -367,10 +376,12 @@ private DocumentEntityDescriptor createSubTabEntityDescriptor(

.setDataBinding(dataEntrySubTabBindingDescriptorBuilder);

documentEntityDescriptor.addField(createIDField());
//
documentEntityDescriptor.setFilterDescriptorsProvidersService(filterDescriptorsProvidersService);

//
documentEntityDescriptor.addField(createIDField());
documentEntityDescriptor.addField(createParentLinkField(documentLinkColumnName));

for (final DataEntrySection dataEntrySection : dataEntrySubTab.getSections())
{
for (final DataEntryLine dataEntryLine : dataEntrySection.getLines())
Expand Down
@@ -1,10 +1,13 @@
package de.metas.ui.web.document.filter.provider;

import java.util.Collection;
import java.util.Map;

import javax.annotation.concurrent.Immutable;

import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;

import de.metas.ui.web.document.filter.DocumentFilterDescriptor;

Expand Down Expand Up @@ -35,12 +38,12 @@ public final class NullDocumentFilterDescriptorsProvider implements DocumentFilt
{
public static final transient NullDocumentFilterDescriptorsProvider instance = new NullDocumentFilterDescriptorsProvider();

public static final boolean isNull(final DocumentFilterDescriptorsProvider provider)
public static boolean isNull(final DocumentFilterDescriptorsProvider provider)
{
return provider == null || provider == instance;
}

public static final boolean isNotNull(final DocumentFilterDescriptorsProvider provider)
public static boolean isNotNull(final DocumentFilterDescriptorsProvider provider)
{
return !isNull(provider);
}
Expand All @@ -61,4 +64,12 @@ public DocumentFilterDescriptor getByFilterIdOrNull(String filterId)
return null;
}

/**
* NOTE: required for snapshot testing
*/
@JsonValue
private Map<String, String> toJson()
{
return ImmutableMap.of();
}
}
Expand Up @@ -428,6 +428,7 @@ public boolean isPrintable()
public static final class Builder
{
private static final Logger logger = LogManager.getLogger(DocumentEntityDescriptor.Builder.class);
private DocumentFilterDescriptorsProvidersService filterDescriptorsProvidersService;

private boolean _built = false;

Expand Down Expand Up @@ -1055,13 +1056,21 @@ private ICalloutExecutor buildCalloutExecutorFactory(final Collection<DocumentFi

private DocumentFilterDescriptorsProvider createFilterDescriptors()
{
final DocumentFilterDescriptorsProvidersService providersService = SpringContextHolder.instance.getBean(DocumentFilterDescriptorsProvidersService.class);
final DocumentFilterDescriptorsProvidersService filterDescriptorsProvidersService = this.filterDescriptorsProvidersService != null
? this.filterDescriptorsProvidersService
: SpringContextHolder.instance.getBean(DocumentFilterDescriptorsProvidersService.class);

final String tableName = getTableName().orElse(null);
final AdTabId adTabId = getAdTabId().orElse(null);
final Collection<DocumentFieldDescriptor> fields = getFields().values();

return providersService.createFiltersProvider(adTabId, tableName, fields);
return filterDescriptorsProvidersService.createFiltersProvider(adTabId, tableName, fields);
}

public Builder setFilterDescriptorsProvidersService(final DocumentFilterDescriptorsProvidersService filterDescriptorsProvidersService)
{
this.filterDescriptorsProvidersService = filterDescriptorsProvidersService;
return this;
}

public Builder setRefreshViewOnChangeEvents(final boolean refreshViewOnChangeEvents)
Expand Down
Expand Up @@ -16,6 +16,7 @@
import org.junit.Test;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.collect.ImmutableList;

import de.metas.dataentry.DataEntryFieldId;
import de.metas.dataentry.DataEntryListValueId;
Expand All @@ -34,6 +35,7 @@
import de.metas.dataentry.layout.DataEntryTab;
import de.metas.dataentry.layout.DataEntryTab.DocumentLinkColumnName;
import de.metas.i18n.TranslatableStrings;
import de.metas.ui.web.document.filter.provider.DocumentFilterDescriptorsProvidersService;
import de.metas.ui.web.window.datatypes.WindowId;
import de.metas.ui.web.window.datatypes.json.JSONDocumentLayoutOptions;
import de.metas.ui.web.window.datatypes.json.JSONDocumentLayoutTab;
Expand Down Expand Up @@ -92,8 +94,8 @@ private static DataEntryTabLoader createDataEntryTabLoader()
dataEntryRecordRepository,
dataEntryWebuiTools);

return DataEntryTabLoader
.builder()
return DataEntryTabLoader.builder()
.filterDescriptorsProvidersService(new DocumentFilterDescriptorsProvidersService(ImmutableList.of()))
.windowId(windowId)
.adWindowId(windowId.toAdWindowIdOrNull())
.dataEntrySubTabBindingDescriptorBuilder(dataEntrySubTabBindingDescriptorBuilder)
Expand Down
Expand Up @@ -1976,8 +1976,8 @@ de.metas.ui.web.dataentry.window.descriptor.factory.DataEntryTabLoaderTest.creat
"active" : true
}
},
"cached" : true,
"numericKey" : false
"numericKey" : false,
"cached" : true
},
"highVolume" : false,
"numericKey" : true
Expand Down Expand Up @@ -2289,9 +2289,7 @@ de.metas.ui.web.dataentry.window.descriptor.factory.DataEntryTabLoaderTest.creat
"_fieldNamesByCharacteristic" : { },
"calloutsEnabled" : false,
"defaultTableCalloutsEnabled" : false,
"filterDescriptors" : {
"descriptorsByFilterId" : { }
},
"filterDescriptors" : { },
"refreshViewOnChangeEvents" : false,
"adTabId" : {
"present" : false
Expand Down Expand Up @@ -2893,8 +2891,8 @@ de.metas.ui.web.dataentry.window.descriptor.factory.DataEntryTabLoaderTest.creat
"active" : true
}
},
"cached" : true,
"numericKey" : false
"numericKey" : false,
"cached" : true
},
"highVolume" : false,
"numericKey" : true
Expand Down Expand Up @@ -3206,9 +3204,7 @@ de.metas.ui.web.dataentry.window.descriptor.factory.DataEntryTabLoaderTest.creat
"_fieldNamesByCharacteristic" : { },
"calloutsEnabled" : false,
"defaultTableCalloutsEnabled" : false,
"filterDescriptors" : {
"descriptorsByFilterId" : { }
},
"filterDescriptors" : { },
"refreshViewOnChangeEvents" : false,
"adTabId" : {
"present" : false
Expand All @@ -3232,9 +3228,7 @@ de.metas.ui.web.dataentry.window.descriptor.factory.DataEntryTabLoaderTest.creat
"_fieldNamesByCharacteristic" : { },
"calloutsEnabled" : false,
"defaultTableCalloutsEnabled" : false,
"filterDescriptors" : {
"descriptorsByFilterId" : { }
},
"filterDescriptors" : { },
"refreshViewOnChangeEvents" : false,
"adTabId" : {
"present" : false
Expand Down

0 comments on commit ccf0929

Please sign in to comment.