Skip to content

Commit 62dd085

Browse files
committed
enhanced display name of fields to use the alias
1 parent 3ae1690 commit 62dd085

7 files changed

Lines changed: 88 additions & 47 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/FacadeProvider.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
import de.symeda.sormas.api.specialcaseaccess.SpecialCaseAccessFacade;
110110
import de.symeda.sormas.api.survey.SurveyFacade;
111111
import de.symeda.sormas.api.survey.SurveyTokenFacade;
112+
import de.symeda.sormas.api.survey.alias.PathAliasFacade;
112113
import de.symeda.sormas.api.symptoms.SymptomsFacade;
113114
import de.symeda.sormas.api.systemconfiguration.SystemConfigurationCategoryFacade;
114115
import de.symeda.sormas.api.systemconfiguration.SystemConfigurationValueFacade;
@@ -319,6 +320,10 @@ public static PrescriptionFacade getPrescriptionFacade() {
319320
return get().lookupEjbRemote(PrescriptionFacade.class);
320321
}
321322

323+
public static PathAliasFacade getPathAliasFacade() {
324+
return get().lookupEjbRemote(PathAliasFacade.class);
325+
}
326+
322327
public static TreatmentFacade getTreatmentFacade() {
323328
return get().lookupEjbRemote(TreatmentFacade.class);
324329
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package de.symeda.sormas.api.survey.alias;
2+
3+
import javax.ejb.Remote;
4+
5+
@Remote
6+
public interface PathAliasFacade {
7+
8+
/**
9+
* Makes it more "readable" by shortening physical paths into aliases per example FieldIds.
10+
*
11+
* @param path
12+
* that may (or may not) contain physical paths.
13+
* @return shortened path.
14+
*/
15+
String toAliasPath(String path);
16+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package de.symeda.sormas.backend.patch.alias;
2+
3+
import javax.ejb.LocalBean;
4+
import javax.ejb.Stateless;
5+
import javax.inject.Inject;
6+
7+
import de.symeda.sormas.api.survey.alias.PathAliasFacade;
8+
9+
@Stateless(name = "PathAliasFacade")
10+
public class PathAliasFacadeEjb implements PathAliasFacade {
11+
12+
@Inject
13+
private PathAliasHelper pathAliasHelper;
14+
15+
@Override
16+
public String toAliasPath(String path) {
17+
return pathAliasHelper.toAliasPath(path);
18+
}
19+
20+
@LocalBean
21+
@Stateless
22+
public static class PathAliasFacadeEjbLocal extends PathAliasFacadeEjb {
23+
24+
}
25+
}

sormas-backend/src/main/java/de/symeda/sormas/backend/patch/alias/PathAliasHelper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,11 @@ public Tuple<String, PathFailureCause> resolveAlias(String pathWithPotentialAlia
9898
/**
9999
* Objective is to retrieve a path WITH an alias to get the Field ID as in the data dictionary.
100100
*
101-
* @param pathWithoutAlias
101+
* @param path
102102
* field that may or may not contain a "physical-path" that must be "shortened" to the Field ID.
103103
* @return path that is "shortened" to a path using the Field ID (alias).
104104
*/
105-
public String toAliasPath(String pathWithoutAlias) {
105+
public String toAliasPath(String path) {
106106
Set<Map.Entry<String, String>> reduce = Stream.concat(
107107
DEFAULT_ALIAS_DICTIONARY.entrySet().stream(),
108108
DEFAULT_FORBIDDEN_ALIASES_DICTIONARY.entrySet()
@@ -111,14 +111,14 @@ public String toAliasPath(String pathWithoutAlias) {
111111
.collect(Collectors.toSet());
112112

113113
for (Map.Entry<String, String> entry : reduce) {
114-
pathWithoutAlias = pathWithoutAlias.replace(entry.getValue(), entry.getKey());
114+
path = path.replace(entry.getValue(), entry.getKey());
115115
}
116116

117117
for (Map.Entry<String, String> entry : REFERENCE_TO_ROOT_DICTIONARY.entrySet()) {
118-
pathWithoutAlias = pathWithoutAlias.replace(entry.getKey(), entry.getValue());
118+
path = path.replace(entry.getKey(), entry.getValue());
119119
}
120120

121-
return pathWithoutAlias;
121+
return path;
122122
}
123123

124124
private static @NotNull Tuple<String, PathFailureCause> tupleWithFailure(PathFailureCause forbiddenNonUniqueAlias) {

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/surveyresponse/SurveyResponseDetailsWindow.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,21 +202,24 @@ private void addReadOnlyField(VerticalLayout layout, String caption, String valu
202202
layout.addComponent(label);
203203
}
204204

205-
private String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
206-
if (displayData != null) {
207-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
208-
if (info != null && info.getTranslatedFieldName() != null) {
209-
return info.getTranslatedFieldName();
205+
public String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
206+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
207+
String aliasPath = FacadeProvider.getPathAliasFacade().toAliasPath(fieldPath);
208+
if (info != null) {
209+
String translatedFieldName = info.getTranslatedFieldName();
210+
if (translatedFieldName != null) {
211+
return String.format("%s (%s)", translatedFieldName, aliasPath);
210212
}
211213
}
212-
return fieldPath;
214+
return aliasPath;
213215
}
214216

215217
private String resolveCurrentValue(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
216-
if (displayData != null) {
217-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
218-
if (info != null && info.getTranslatedFieldValue() != null) {
219-
return info.getTranslatedFieldValue();
218+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
219+
if (info != null) {
220+
String translatedFieldValue = info.getTranslatedFieldValue();
221+
if (translatedFieldValue != null) {
222+
return translatedFieldValue;
220223
}
221224
}
222225
return "";

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/surveyresponse/SurveyResponseFailureEditor.java

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,7 @@
1919
import java.util.Map;
2020
import java.util.stream.Collectors;
2121

22-
import com.vaadin.ui.Button;
23-
import com.vaadin.ui.CheckBox;
24-
import com.vaadin.ui.FormLayout;
25-
import com.vaadin.ui.Grid;
26-
import com.vaadin.ui.HorizontalLayout;
27-
import com.vaadin.ui.Label;
28-
import com.vaadin.ui.Notification;
29-
import com.vaadin.ui.TextField;
30-
import com.vaadin.ui.VerticalLayout;
31-
import com.vaadin.ui.Window;
22+
import com.vaadin.ui.*;
3223
import com.vaadin.ui.themes.ValoTheme;
3324

3425
import de.symeda.sormas.api.FacadeProvider;
@@ -202,22 +193,22 @@ public SurveyResponseFailureEditor(ExternalMessageDto externalMessage, Displayab
202193
setContent(mainLayout);
203194
}
204195

205-
private String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
206-
if (displayData != null) {
207-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
208-
if (info != null && info.getTranslatedFieldName() != null) {
209-
return info.getTranslatedFieldName();
196+
public String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
197+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
198+
String aliasPath = FacadeProvider.getPathAliasFacade().toAliasPath(fieldPath);
199+
if (info != null) {
200+
String translatedFieldName = info.getTranslatedFieldName();
201+
if (translatedFieldName != null) {
202+
return String.format("%s (%s)", translatedFieldName, aliasPath);
210203
}
211204
}
212-
return fieldPath;
205+
return aliasPath;
213206
}
214207

215208
private String resolveCurrentValue(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
216-
if (displayData != null) {
217-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
218-
if (info != null) {
219-
return info.getTranslatedFieldValue();
220-
}
209+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
210+
if (info != null) {
211+
return info.getTranslatedFieldValue();
221212
}
222213
return null;
223214
}

sormas-ui/src/main/java/de/symeda/sormas/ui/externalmessage/surveyresponse/SurveyResponseFailurePanel.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.vaadin.ui.Grid;
2222
import com.vaadin.ui.VerticalLayout;
2323

24+
import de.symeda.sormas.api.FacadeProvider;
2425
import de.symeda.sormas.api.i18n.Captions;
2526
import de.symeda.sormas.api.i18n.I18nProperties;
2627
import de.symeda.sormas.api.patch.DataPatchFailure;
@@ -79,22 +80,22 @@ public SurveyResponseFailurePanel(Map<String, DataPatchFailure> failures, Displa
7980
addComponent(grid);
8081
}
8182

82-
private String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
83-
if (displayData != null) {
84-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
85-
if (info != null && info.getTranslatedFieldName() != null) {
86-
return info.getTranslatedFieldName();
83+
public String resolveFieldName(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
84+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
85+
String aliasPath = FacadeProvider.getPathAliasFacade().toAliasPath(fieldPath);
86+
if (info != null) {
87+
String translatedFieldName = info.getTranslatedFieldName();
88+
if (translatedFieldName != null) {
89+
return String.format("%s (%s)", translatedFieldName, aliasPath);
8790
}
8891
}
89-
return fieldPath;
92+
return aliasPath;
9093
}
9194

9295
private String resolveCurrentValue(String fieldPath, DisplayablePartialRetrievalResponse displayData) {
93-
if (displayData != null) {
94-
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
95-
if (info != null && info.getTranslatedFieldValue() != null) {
96-
return info.getTranslatedFieldValue();
97-
}
96+
DisplayableFieldInfo info = displayData.getFieldInfoDictionary().get(fieldPath);
97+
if (info != null && info.getTranslatedFieldValue() != null) {
98+
return info.getTranslatedFieldValue();
9899
}
99100
return "";
100101
}

0 commit comments

Comments
 (0)