The fetched FunctionDTOs are now localized

This commit is contained in:
Lennart Hensler committed 2014-08-12 15:40:44 +02:00
1 parent f0bef8977a
commit 5cc0a2bd68
7 files changed
+31 -14

No files matched your search

@@ -12,9 +12,9 @@ import com.sap.sse.datamining.shared.dto.FunctionDTO;
public interface DataMiningService extends RemoteService {
Collection<FunctionDTO> getAllStatistics();
Collection<FunctionDTO> getAllStatistics(String localeInfoName);
Collection<FunctionDTO> getDimensionsFor(DataTypes dataType);
Collection<FunctionDTO> getDimensionsFor(DataTypes dataType, String localeInfoName);
<ResultType extends Number> QueryResult<ResultType> runQuery(QueryDefinitionDeprecated queryDefinition) throws Exception;
@@ -13,9 +13,9 @@ import com.sap.sse.datamining.shared.impl.GenericGroupKey;
public interface DataMiningServiceAsync {
void getAllStatistics(AsyncCallback<Collection<FunctionDTO>> callback);
void getAllStatistics(String localeInfoName, AsyncCallback<Collection<FunctionDTO>> callback);
void getDimensionsFor(DataTypes dataType, AsyncCallback<Collection<FunctionDTO>> callback);
void getDimensionsFor(DataTypes dataType, String localeInfoName, AsyncCallback<Collection<FunctionDTO>> callback);
<ResultType extends Number> void runQuery(QueryDefinitionDeprecated queryDefinition, AsyncCallback<QueryResult<ResultType>> callback);
@@ -9,6 +9,7 @@ import java.util.Set;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.i18n.client.LocaleInfo;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
@@ -58,7 +59,7 @@ public class SimpleStatisticProvider implements StatisticProvider {
}
private void updateExtractionFunctions() {
dataMiningService.getAllStatistics(new AsyncCallback<Collection<FunctionDTO>>() {
dataMiningService.getAllStatistics(LocaleInfo.getCurrentLocale().getLocaleName(), new AsyncCallback<Collection<FunctionDTO>>() {
@Override
public void onSuccess(Collection<FunctionDTO> extractionFunctions) {
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.server;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
@@ -19,8 +20,9 @@ import com.sap.sse.datamining.DataMiningServer;
import com.sap.sse.datamining.Query;
import com.sap.sse.datamining.factories.FunctionDTOFactory;
import com.sap.sse.datamining.functions.Function;
import com.sap.sse.datamining.shared.SSEDataMiningSerializationDummy;
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
import com.sap.sse.datamining.shared.QueryResult;
import com.sap.sse.datamining.shared.SSEDataMiningSerializationDummy;
import com.sap.sse.datamining.shared.dto.FunctionDTO;
public class DataMiningServiceImpl extends RemoteServiceServlet implements DataMiningService {
@@ -61,16 +63,16 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
}
@Override
public Collection<FunctionDTO> getAllStatistics() {
public Collection<FunctionDTO> getAllStatistics(String localeInfoName) {
Collection<Function<?>> statistics = getDataMiningServer().getFunctionProvider().getAllStatistics();
return functionsAsFunctionDTOs(statistics);
return functionsAsFunctionDTOs(statistics, localeInfoName);
}
@Override
public Collection<FunctionDTO> getDimensionsFor(DataTypes dataType) {
public Collection<FunctionDTO> getDimensionsFor(DataTypes dataType, String localeInfoName) {
Class<?> dataTypeBaseClass = getBaseClassFor(dataType);
Collection<Function<?>> dimensions = getDataMiningServer().getFunctionProvider().getDimensionsFor(dataTypeBaseClass);
return functionsAsFunctionDTOs(dimensions);
return functionsAsFunctionDTOs(dimensions, localeInfoName);
}
private Class<?> getBaseClassFor(DataTypes dataType) {
@@ -83,10 +85,13 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
throw new IllegalArgumentException("No base class for data type " + dataType);
}
private Collection<FunctionDTO> functionsAsFunctionDTOs(Collection<Function<?>> functions) {
private Collection<FunctionDTO> functionsAsFunctionDTOs(Collection<Function<?>> functions, String localeInfoName) {
Locale locale = DataMiningStringMessages.Util.getLocaleFor(localeInfoName);
DataMiningStringMessages dataMiningStringMessages = getDataMiningServer().getStringMessages();
Collection<FunctionDTO> functionDTOs = new ArrayList<FunctionDTO>();
for (Function<?> function : functions) {
functionDTOs.add(FunctionDTOFactory.createFunctionDTO(function));
functionDTOs.add(FunctionDTOFactory.createFunctionDTO(function, locale, dataMiningStringMessages));
}
return functionDTOs;
}
@@ -2,6 +2,7 @@ package com.sap.sse.datamining;
import com.sap.sse.datamining.functions.FunctionProvider;
import com.sap.sse.datamining.functions.FunctionRegistry;
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
public interface DataMiningServer {
@@ -9,4 +10,6 @@ public interface DataMiningServer {
public FunctionProvider getFunctionProvider();
public DataMiningStringMessages getStringMessages();
}
@@ -44,7 +44,7 @@ public class DataMiningActivator implements BundleActivator, ClassesWithFunction
FunctionRegistry functionRegistry = new SimpleFunctionRegistry();
FunctionProvider functionProvider = new RegistryFunctionProvider(functionRegistry);
dataMiningServer = new DataMiningServerImpl(functionRegistry, functionProvider, this);
dataMiningServer = new DataMiningServerImpl(stringMessages, functionRegistry, functionProvider, this);
registerDataMiningServer();
}
@@ -9,20 +9,23 @@ import com.sap.sse.datamining.ClassesWithFunctionsProvider;
import com.sap.sse.datamining.DataMiningServer;
import com.sap.sse.datamining.functions.FunctionProvider;
import com.sap.sse.datamining.functions.FunctionRegistry;
import com.sap.sse.datamining.i18n.DataMiningStringMessages;
public class DataMiningServerImpl implements DataMiningServer {
private final Set<Class<?>> registeredInternalClassesWithMarkedMethods;
private final Set<Class<?>> registeredExternalLibraryClasses;
private final DataMiningStringMessages stringMessages;
private final FunctionRegistry functionRegistry;
private final FunctionProvider functionProvider;
private final ClassesWithFunctionsProvider classesWithFunctionsProvider;
public DataMiningServerImpl(FunctionRegistry functionRegistry, FunctionProvider functionProvider, ClassesWithFunctionsProvider classesWithFunctionsProvider) {
public DataMiningServerImpl(DataMiningStringMessages stringMessages, FunctionRegistry functionRegistry, FunctionProvider functionProvider, ClassesWithFunctionsProvider classesWithFunctionsProvider) {
registeredInternalClassesWithMarkedMethods = new HashSet<>();
registeredExternalLibraryClasses = new HashSet<>();
this.stringMessages = stringMessages;
this.functionRegistry = functionRegistry;
this.functionProvider = functionProvider;
this.classesWithFunctionsProvider = classesWithFunctionsProvider;
@@ -82,4 +85,9 @@ public class DataMiningServerImpl implements DataMiningServer {
return missingElements;
}
@Override
public DataMiningStringMessages getStringMessages() {
return stringMessages;
}
}