Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
metas-dev committed May 12, 2017
2 parents 3de4bdd + 732916e commit 8fcadbe
Show file tree
Hide file tree
Showing 11 changed files with 52 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

public final class DocumentFilterDescriptor
{
static final Builder builder()
public static final Builder builder()
{
return new Builder();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@
* #L%
*/

public class DocumentFilterParamDescriptor
public final class DocumentFilterParamDescriptor
{
static final Builder builder()
public static final Builder builder()
{
return new Builder();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
import com.google.common.collect.Maps;

import groovy.transform.Immutable;
import lombok.Builder;
import lombok.Singular;
import lombok.ToString;

/*
* #%L
Expand All @@ -39,7 +42,8 @@
*/

@Immutable
final class ImmutableDocumentFilterDescriptorsProvider implements DocumentFilterDescriptorsProvider
@ToString
public final class ImmutableDocumentFilterDescriptorsProvider implements DocumentFilterDescriptorsProvider
{
public static final ImmutableDocumentFilterDescriptorsProvider of(final List<DocumentFilterDescriptor> descriptors)
{
Expand Down Expand Up @@ -76,7 +80,8 @@ public static final ImmutableDocumentFilterDescriptorsProvider of(final Document

private final Map<String, DocumentFilterDescriptor> descriptorsByFilterId;

public ImmutableDocumentFilterDescriptorsProvider(final List<DocumentFilterDescriptor> descriptors)
@Builder
private ImmutableDocumentFilterDescriptorsProvider(@Singular final List<DocumentFilterDescriptor> descriptors)
{
super();
descriptorsByFilterId = Maps.uniqueIndex(descriptors, descriptor -> descriptor.getFilterId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@

import java.util.Collection;
import java.util.Set;
import java.util.function.Supplier;

import org.adempiere.util.lang.ExtendedMemorizingSupplier;
import org.compiere.util.CCache;
import org.compiere.util.Util.ArrayKey;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -13,6 +11,8 @@

import de.metas.handlingunits.model.I_M_HU;
import de.metas.ui.web.document.filter.DocumentFilterDescriptor;
import de.metas.ui.web.document.filter.DocumentFilterDescriptorsProvider;
import de.metas.ui.web.document.filter.ImmutableDocumentFilterDescriptorsProvider;
import de.metas.ui.web.view.IViewFactory;
import de.metas.ui.web.view.ViewCreateRequest;
import de.metas.ui.web.view.ViewFactory;
Expand Down Expand Up @@ -57,14 +57,33 @@ public class HUEditorViewFactory implements IViewFactory
@Autowired
private DocumentDescriptorFactory documentDescriptorFactory;

private static final Supplier<SqlViewBinding> sqlViewBindingSupplier = ExtendedMemorizingSupplier.of(() -> createSqlViewBinding());
private final transient CCache<Integer, SqlViewBinding> sqlViewBindingCache = CCache.newCache("SqlViewBinding", 1, 0);
private final transient CCache<ArrayKey, ViewLayout> layouts = CCache.newLRUCache("HUEditorViewFactory#Layouts", 10, 0);

private SqlViewBinding getSqlViewBinding()
{
return sqlViewBindingSupplier.get();
final int key = 0; // not important
return sqlViewBindingCache.getOrLoad(key, () -> createSqlViewBinding());
}


private static final DocumentFilterDescriptorsProvider createFilterDescriptors()
{
// TODO: implement
// final ITranslatableString caption = Services.get(IMsgBL.class).translatable("Barcode");
final DocumentFilterDescriptorsProvider viewFilterDescriptors = ImmutableDocumentFilterDescriptorsProvider.builder()
// .descriptor(DocumentFilterDescriptor.builder()
// .setFilterId("barcode")
// .setDisplayName(caption)
// .addParameter(DocumentFilterParamDescriptor.builder()
// .setFieldName("Barcode")
// .setDisplayName(caption)
// .setWidgetType(DocumentFieldWidgetType.Text))
// .build())
.build();

return viewFilterDescriptors;
}

private static SqlViewBinding createSqlViewBinding()
{
return SqlViewBinding.builder()
Expand All @@ -81,6 +100,7 @@ private static SqlViewBinding createSqlViewBinding()
.build())
//
.setOrderBys(ImmutableList.of(DocumentQueryOrderBy.byFieldName(I_M_HU.COLUMNNAME_M_HU_ID, true)))
.setViewFilterDescriptors(createFilterDescriptors())
.build();
}

Expand All @@ -96,7 +116,7 @@ public Collection<DocumentFilterDescriptor> getViewFilterDescriptors(final Windo
{
return getSqlViewBinding().getViewFilterDescriptors().getAll();
}

private final ViewLayout createHUViewLayout(final WindowId windowId, JSONViewDataType viewDataType)
{
if (viewDataType == JSONViewDataType.includedView)
Expand All @@ -117,6 +137,7 @@ private final ViewLayout createHUViewLayout_IncludedView(final WindowId windowId
.setEmptyResultText(LayoutFactory.HARDCODED_TAB_EMPTY_RESULT_TEXT)
.setEmptyResultHint(LayoutFactory.HARDCODED_TAB_EMPTY_RESULT_HINT)
.setIdFieldName(IHUEditorRow.COLUMNNAME_M_HU_ID)
.setFilters(getSqlViewBinding().getViewFilterDescriptors().getAll())
//
.setHasAttributesSupport(true)
.setHasTreeSupport(true)
Expand Down Expand Up @@ -153,6 +174,7 @@ private final ViewLayout createHUViewLayout_Grid(final WindowId windowId)
.setEmptyResultText(LayoutFactory.HARDCODED_TAB_EMPTY_RESULT_TEXT)
.setEmptyResultHint(LayoutFactory.HARDCODED_TAB_EMPTY_RESULT_HINT)
.setIdFieldName(IHUEditorRow.COLUMNNAME_M_HU_ID)
.setFilters(getSqlViewBinding().getViewFilterDescriptors().getAll())
//
.setHasAttributesSupport(true)
.setHasTreeSupport(true)
Expand Down Expand Up @@ -220,7 +242,7 @@ public HUEditorView createView(final ViewCreateRequest request)
{
referencingTableName = null;
}

final Set<Integer> huIds = request.getFilterOnlyIds();
return HUEditorView.builder(getSqlViewBinding())
.setParentViewId(request.getParentViewId())
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/de/metas/ui/web/login/LoginRestController.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.adempiere.ad.api.ILanguageBL;
import org.adempiere.ad.session.ISessionBL;
import org.adempiere.ad.session.MFSession;
import org.adempiere.exceptions.AdempiereException;
Expand All @@ -30,6 +29,7 @@
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableSet;

import de.metas.i18n.ILanguageBL;
import de.metas.ui.web.base.session.UserPreference;
import de.metas.ui.web.config.WebConfig;
import de.metas.ui.web.login.exceptions.NotAuthenticatedException;
Expand Down Expand Up @@ -302,9 +302,10 @@ public String getAD_Language()
@RequestMapping(value = "/availableLanguages", method = RequestMethod.GET)
public JSONLookupValuesList getAvailableLanguages()
{
return Services.get(ILanguageBL.class).getAvailableLanguages(userSession.getCtx())
return Services.get(ILanguageBL.class).getAvailableLanguages()
.toValueNamePairs()
.stream()
.map(adLanguageObj -> JSONLookupValue.of(adLanguageObj.getAD_Language(), adLanguageObj.getName()))
.map(JSONLookupValue::ofNamePair)
.collect(JSONLookupValuesList.collect())
.setDefaultValue(userSession.getAD_Language());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.Properties;

import org.compiere.util.Env;
import org.compiere.util.Language;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Primary;
Expand All @@ -19,6 +18,7 @@

import com.google.common.base.MoreObjects;

import de.metas.i18n.Language;
import de.metas.ui.web.base.session.UserPreference;

/*
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/de/metas/ui/web/session/UserSession.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
import org.compiere.util.Env;
import org.compiere.util.Evaluatee;
import org.compiere.util.Evaluatees;
import org.compiere.util.Language;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;

import de.metas.i18n.Language;
import de.metas.logging.LogManager;
import de.metas.ui.web.base.session.UserPreference;
import de.metas.ui.web.exceptions.DeprecatedRestAPINotAllowedException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package de.metas.ui.web.session;

import org.compiere.util.Language;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import de.metas.i18n.Language;
import de.metas.ui.web.config.WebConfig;
import de.metas.ui.web.session.json.JSONUserSession;
import de.metas.ui.web.window.datatypes.json.JSONLookupValue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package de.metas.ui.web.session.json;

import org.compiere.util.Language;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import de.metas.i18n.Language;
import de.metas.ui.web.session.UserSession;
import de.metas.ui.web.window.datatypes.json.JSONDate;
import de.metas.ui.web.window.datatypes.json.JSONLookupValue;
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/de/metas/ui/web/view/descriptor/ViewLayout.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.metas.ui.web.view.descriptor;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
Expand Down Expand Up @@ -172,7 +173,7 @@ public static final class Builder
private ITranslatableString emptyResultText;
private ITranslatableString emptyResultHint;

private List<DocumentFilterDescriptor> filters = null;
private Collection<DocumentFilterDescriptor> filters = null;

private boolean hasAttributesSupport = false;
private boolean hasTreeSupport = false;
Expand Down Expand Up @@ -296,7 +297,7 @@ public boolean hasElement(final String fieldName)
return findElementBuilderByFieldName(fieldName) != null;
}

public List<DocumentFilterDescriptor> getFilters()
private Collection<DocumentFilterDescriptor> getFilters()
{
if(filters == null || filters.isEmpty())
{
Expand All @@ -305,7 +306,7 @@ public List<DocumentFilterDescriptor> getFilters()
return filters;
}

public Builder setFilters(List<DocumentFilterDescriptor> filters)
public Builder setFilters(final Collection<DocumentFilterDescriptor> filters)
{
this.filters = filters;
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
import org.compiere.model.ILookupDisplayColumn;
import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.compiere.util.Language;
import org.slf4j.Logger;

import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;

import de.metas.i18n.Language;
import de.metas.logging.LogManager;
import de.metas.printing.esb.base.util.Check;
import de.metas.ui.web.window.WindowConstants;
Expand Down

0 comments on commit 8fcadbe

Please sign in to comment.