| ... |
... |
@@ -34,7 +34,9 @@ import fr.ird.observe.dto.data.ps.logbook.ActivityReference; |
|
34
|
34
|
import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
|
|
35
|
35
|
import io.ultreia.java4all.i18n.I18n;
|
|
36
|
36
|
|
|
|
37
|
+import java.beans.PropertyChangeListener;
|
|
37
|
38
|
import java.util.List;
|
|
|
39
|
+import java.util.Objects;
|
|
38
|
40
|
|
|
39
|
41
|
/**
|
|
40
|
42
|
* @author Tony Chemit - dev@tchemit.fr
|
| ... |
... |
@@ -42,6 +44,17 @@ import java.util.List; |
|
42
|
44
|
*/
|
|
43
|
45
|
class ActivityUIHandler extends GeneratedActivityUIHandler {
|
|
44
|
46
|
|
|
|
47
|
+ /**
|
|
|
48
|
+ * To enable or not original coordinate on ActivityDto.originalDataModified flag.
|
|
|
49
|
+ * <p>
|
|
|
50
|
+ * See <a href="https://gitlab.com/ultreiaio/ird-observe/-/issues/2720">issue 2720</a>
|
|
|
51
|
+ */
|
|
|
52
|
+ private final PropertyChangeListener originalDataModifiedChanged;
|
|
|
53
|
+
|
|
|
54
|
+ public ActivityUIHandler() {
|
|
|
55
|
+ originalDataModifiedChanged = evt -> onOriginalDataModifiedChanged((Boolean) evt.getNewValue());
|
|
|
56
|
+ }
|
|
|
57
|
+
|
|
45
|
58
|
@Override
|
|
46
|
59
|
public void onInit(ActivityUI ui) {
|
|
47
|
60
|
super.onInit(ui);
|
| ... |
... |
@@ -49,6 +62,15 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { |
|
49
|
62
|
fr.ird.observe.client.datasource.editor.ps.data.observation.ActivityUIHandler.initLabels(activities, ui.getVesselActivityInformation(), ui.getVesselActivityInformation2());
|
|
50
|
63
|
}
|
|
51
|
64
|
|
|
|
65
|
+ @Override
|
|
|
66
|
+ public void startEditUI() {
|
|
|
67
|
+ ActivityDto bean = getModel().getStates().getBean();
|
|
|
68
|
+ bean.removePropertyChangeListener(ActivityDto.PROPERTY_ORIGINAL_DATA_MODIFIED, originalDataModifiedChanged);
|
|
|
69
|
+ super.startEditUI();
|
|
|
70
|
+ bean.addPropertyChangeListener(ActivityDto.PROPERTY_ORIGINAL_DATA_MODIFIED, originalDataModifiedChanged);
|
|
|
71
|
+ onOriginalDataModifiedChanged(bean.isOriginalDataModified());
|
|
|
72
|
+ }
|
|
|
73
|
+
|
|
52
|
74
|
@Override
|
|
53
|
75
|
protected void installSaveAction() {
|
|
54
|
76
|
SaveAction.create(ui, ActivityDto.class)
|
| ... |
... |
@@ -66,10 +88,41 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { |
|
66
|
88
|
})
|
|
67
|
89
|
.install(ui.getSave());
|
|
68
|
90
|
CopyCoordinate.install(I18n.t("observe.ui.action.copyCoordinate"),
|
|
69
|
|
- ObservePsKeyStrokes.KEY_STROKE_COPY_COORDINATE,
|
|
70
|
|
- ui,
|
|
71
|
|
- ui.getCoordinate(),
|
|
72
|
|
- ui.getCoordinateOriginal(),
|
|
73
|
|
- ui.getCopyFirstCoordinate());
|
|
|
91
|
+ ObservePsKeyStrokes.KEY_STROKE_COPY_COORDINATE,
|
|
|
92
|
+ ui,
|
|
|
93
|
+ ui.getCoordinate(),
|
|
|
94
|
+ ui.getCoordinateOriginal(),
|
|
|
95
|
+ ui.getCopyFirstCoordinate());
|
|
|
96
|
+ }
|
|
|
97
|
+
|
|
|
98
|
+
|
|
|
99
|
+ private void onOriginalDataModifiedChanged(Boolean newValue) {
|
|
|
100
|
+
|
|
|
101
|
+ ActivityUI ui = getUi();
|
|
|
102
|
+
|
|
|
103
|
+ ActivityDto bean = getModel().getStates().getBean();
|
|
|
104
|
+ if (Objects.equals(true, newValue)) {
|
|
|
105
|
+
|
|
|
106
|
+ // original data modified
|
|
|
107
|
+ ui.getCoordinateOriginal().setEnabled(true);
|
|
|
108
|
+ //FIXME In jaxx should be done by previous statement
|
|
|
109
|
+ ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(true);
|
|
|
110
|
+ ui.getCoordinateOriginal().getDmdFormat().setEnabled(true);
|
|
|
111
|
+ ui.getCoordinateOriginal().getDmsFormat().setEnabled(true);
|
|
|
112
|
+ ui.getCoordinateOriginal().getDdFormat().setEnabled(true);
|
|
|
113
|
+ ui.getCopyFirstCoordinate().setEnabled(true);
|
|
|
114
|
+
|
|
|
115
|
+ } else {
|
|
|
116
|
+
|
|
|
117
|
+ // original data not modified
|
|
|
118
|
+ ui.getCoordinateOriginal().getGlobalResetButton().doClick();
|
|
|
119
|
+ ui.getCoordinateOriginal().setEnabled(false);
|
|
|
120
|
+ //FIXME In jaxx should be done by previous statement
|
|
|
121
|
+ ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(false);
|
|
|
122
|
+ ui.getCoordinateOriginal().getDmdFormat().setEnabled(false);
|
|
|
123
|
+ ui.getCoordinateOriginal().getDmsFormat().setEnabled(false);
|
|
|
124
|
+ ui.getCoordinateOriginal().getDdFormat().setEnabled(false);
|
|
|
125
|
+ ui.getCopyFirstCoordinate().setEnabled(false);
|
|
|
126
|
+ }
|
|
74
|
127
|
}
|
|
75
|
128
|
} |