Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 888d878

Browse files
lgallgal
authored andcommitted
SORMAS-Foundation#1613 added unsaved changes warning when embedded fields are changed
1 parent cc06ada commit 888d878

3 files changed

Lines changed: 32 additions & 12 deletions

File tree

sormas-ui/src/main/java/de/symeda/sormas/ui/clinicalcourse/HealthConditionsForm.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232

3333
import java.util.Arrays;
3434

35+
import com.vaadin.ui.CustomLayout;
3536
import com.vaadin.ui.Label;
37+
import com.vaadin.v7.ui.Field;
3638
import com.vaadin.v7.ui.TextArea;
3739

3840
import de.symeda.sormas.api.clinicalcourse.HealthConditionsDto;
@@ -112,4 +114,11 @@ protected void addFields() {
112114
protected String createHtmlLayout() {
113115
return HTML_LAYOUT;
114116
}
117+
118+
@Override
119+
protected <F extends Field> F addFieldToLayout(CustomLayout layout, String propertyId, F field) {
120+
field.addValueChangeListener(e -> fireValueChange(false));
121+
122+
return super.addFieldToLayout(layout, propertyId, field);
123+
}
115124
}

sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,32 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.ui.location;
1919

20+
import static de.symeda.sormas.ui.utils.LayoutUtil.divs;
21+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidColumnLoc;
22+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
23+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
24+
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
25+
26+
import java.util.Arrays;
27+
import java.util.Collections;
28+
import java.util.stream.Stream;
29+
30+
import org.apache.commons.lang3.ObjectUtils;
31+
2032
import com.vaadin.icons.VaadinIcons;
2133
import com.vaadin.ui.Alignment;
2234
import com.vaadin.ui.Button;
2335
import com.vaadin.ui.Component;
36+
import com.vaadin.ui.CustomLayout;
2437
import com.vaadin.ui.HorizontalLayout;
2538
import com.vaadin.ui.PopupView;
2639
import com.vaadin.ui.themes.ValoTheme;
2740
import com.vaadin.v7.ui.AbstractField;
2841
import com.vaadin.v7.ui.AbstractSelect;
2942
import com.vaadin.v7.ui.ComboBox;
43+
import com.vaadin.v7.ui.Field;
3044
import com.vaadin.v7.ui.TextField;
45+
3146
import de.symeda.sormas.api.FacadeProvider;
3247
import de.symeda.sormas.api.i18n.I18nProperties;
3348
import de.symeda.sormas.api.location.LocationDto;
@@ -44,17 +59,6 @@
4459
import de.symeda.sormas.ui.utils.FieldHelper;
4560
import de.symeda.sormas.ui.utils.StringToAngularLocationConverter;
4661
import de.symeda.sormas.ui.utils.UiFieldAccessCheckers;
47-
import org.apache.commons.lang3.ObjectUtils;
48-
49-
import java.util.Arrays;
50-
import java.util.Collections;
51-
import java.util.stream.Stream;
52-
53-
import static de.symeda.sormas.ui.utils.LayoutUtil.divs;
54-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidColumnLoc;
55-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
56-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
57-
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
5862

5963
public class LocationEditForm extends AbstractEditForm<LocationDto> {
6064

@@ -294,4 +298,11 @@ public void setCoordinates(GeoLatLon coordinates) {
294298
this.coordinates = coordinates;
295299
}
296300
}
301+
302+
@Override
303+
protected <F extends Field> F addFieldToLayout(CustomLayout layout, String propertyId, F field) {
304+
field.addValueChangeListener(e -> fireValueChange(false));
305+
306+
return super.addFieldToLayout(layout, propertyId, field);
307+
}
297308
}

sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractForm.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ protected <F extends Field> F addField(CustomLayout layout, String propertyId, F
196196
return addFieldToLayout(layout, propertyId, field);
197197
}
198198

199-
private <F extends Field> F addFieldToLayout(CustomLayout layout, String propertyId, F field) {
199+
protected <F extends Field> F addFieldToLayout(CustomLayout layout, String propertyId, F field) {
200200
formatField(field, propertyId);
201201
field.setId(propertyId);
202202
layout.addComponent(field, propertyId);

0 commit comments

Comments
 (0)