Skip to content

Commit 2d926bb

Browse files
committed
Comparison should be done on latest configuration data
1 parent c973c5a commit 2d926bb

File tree

13 files changed

+242
-232
lines changed

13 files changed

+242
-232
lines changed

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/configuration/ComparisonDataEditorController.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/configuration/ConfigPvEntry.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public class ConfigPvEntry implements Comparable<ConfigPvEntry> {
2525
private final StringProperty pvNameProperty;
2626
private final StringProperty readBackPvNameProperty;
2727
private final BooleanProperty readOnlyProperty;
28-
private final ObjectProperty<Comparison> comparisonProperty;
29-
private final ObjectProperty<ComparisonMode> compareModeProperty;
28+
private final ObjectProperty<ComparisonMode> comparisonModeProperty;
3029
private final ObjectProperty<Double> toleranceProperty;
3130

3231
public ConfigPvEntry(ConfigPv configPv) {
3332
this.pvNameProperty = new SimpleStringProperty(this, "pvNameProperty", configPv.getPvName());
3433
this.readBackPvNameProperty = new SimpleStringProperty(configPv.getReadbackPvName());
3534
this.readOnlyProperty = new SimpleBooleanProperty(configPv.isReadOnly());
36-
this.comparisonProperty = new SimpleObjectProperty<>(configPv.getComparison());
35+
this.comparisonModeProperty = new SimpleObjectProperty<>(configPv.getComparison() == null ? null : configPv.getComparison().getComparisonMode());
36+
this.toleranceProperty = new SimpleObjectProperty<>(configPv.getComparison() == null ? null : configPv.getComparison().getTolerance());
3737
}
3838

3939
public StringProperty getPvNameProperty() {
@@ -48,8 +48,8 @@ public BooleanProperty getReadOnlyProperty() {
4848
return readOnlyProperty;
4949
}
5050

51-
public ObjectProperty<ComparisonMode> getCompareModeProperty() {
52-
return compareModeProperty;
51+
public ObjectProperty<ComparisonMode> getComparisonModeProperty() {
52+
return comparisonModeProperty;
5353
}
5454

5555
public ObjectProperty<Double> getToleranceProperty() {
@@ -64,8 +64,8 @@ public void setReadBackPvNameProperty(String readBackPvNameProperty) {
6464
this.readBackPvNameProperty.set(readBackPvNameProperty);
6565
}
6666

67-
public void setCompareModeProperty(ComparisonMode compareModeProperty) {
68-
this.compareModeProperty.set(compareModeProperty);
67+
public void setComparisonModeProperty(ComparisonMode comparisonModeProperty) {
68+
this.comparisonModeProperty.set(comparisonModeProperty);
6969
}
7070

7171
public void setToleranceProperty(Double toleranceProperty) {
@@ -77,10 +77,9 @@ public ConfigPv toConfigPv() {
7777
.pvName(pvNameProperty.get())
7878
.readbackPvName(readBackPvNameProperty.get())
7979
.readOnly(readOnlyProperty.get())
80-
.compareMode(compareModeProperty.get())
8180
.build();
82-
if(toleranceProperty != null){
83-
configPv.setTolerance(toleranceProperty.get());
81+
if(comparisonModeProperty.isNotNull().get() && toleranceProperty.isNotNull().get()){
82+
configPv.setComparison(new Comparison(comparisonModeProperty.get(), toleranceProperty.get()));
8483
}
8584
return configPv;
8685
}

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/configuration/ConfigurationController.java

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,9 @@ public void initialize() {
214214
pvTable.getSelectionModel().getSelectedItems(), userIdentity));
215215

216216
ContextMenu contextMenu = new ContextMenu();
217-
MenuItem setComparisonData = new MenuItem("Add comparison on selection");
218-
setComparisonData.setOnAction(e -> launchComparisonEditor());
219-
contextMenu.getItems().add(setComparisonData);
220217
pvTable.setOnContextMenuRequested(event -> {
221218
contextMenu.getItems().clear();
222-
contextMenu.getItems().addAll(deleteMenuItem, setComparisonData);
219+
contextMenu.getItems().addAll(deleteMenuItem);
223220
contextMenu.getItems().add(new SeparatorMenuItem());
224221
ObservableList<ConfigPvEntry> selectedPVs = pvTable.getSelectionModel().getSelectedItems();
225222
if (!selectedPVs.isEmpty()) {
@@ -254,20 +251,20 @@ public void initialize() {
254251
return readOnly;
255252
});
256253

257-
comparisonModeColumn.setCellValueFactory(cell -> cell.getValue().getCompareModeProperty());
254+
comparisonModeColumn.setCellValueFactory(cell -> cell.getValue().getComparisonModeProperty());
258255
comparisonModeColumn.setCellFactory(callback -> {
259256
ObservableList<ComparisonMode> values = FXCollections.observableArrayList(Arrays.stream(ComparisonMode.values()).toList());
260257
values.add(0, null);
261258
ComboBoxTableCell<ConfigPvEntry, ComparisonMode> tableCell = new ComboBoxTableCell<>(values) {
262259

263260
@Override
264-
public void commitEdit(ComparisonMode pvCompareMode) {
265-
getTableView().getItems().get(getIndex()).setCompareModeProperty(pvCompareMode);
266-
if (pvCompareMode == null) {
261+
public void commitEdit(ComparisonMode comparisonMode) {
262+
getTableView().getItems().get(getIndex()).setComparisonModeProperty(comparisonMode);
263+
if (comparisonMode == null) {
267264
getTableView().getItems().get(getIndex()).setToleranceProperty(null);
268265
}
269266
setDirty(true);
270-
super.commitEdit(pvCompareMode);
267+
super.commitEdit(comparisonMode);
271268
}
272269
};
273270

@@ -527,25 +524,4 @@ public void nodeChanged(Node node) {
527524
private void setDirty(boolean dirty) {
528525
this.dirty.set(dirty && !loadInProgress.get());
529526
}
530-
531-
private void launchComparisonEditor(){
532-
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
533-
alert.setHeaderText(null);
534-
alert.setGraphic(null);
535-
ResourceBundle resourceBundle = NLS.getMessages(Messages.class);
536-
FXMLLoader loader = new FXMLLoader();
537-
loader.setResources(resourceBundle);
538-
loader.setLocation(this.getClass().getResource("ComparisonDataEditor.fxml"));
539-
try {
540-
javafx.scene.Node content = loader.load();
541-
alert.getDialogPane().setContent(content);
542-
alert.showAndWait();
543-
} catch (IOException e) {
544-
throw new RuntimeException(e);
545-
}
546-
}
547-
548-
public record ComparisonData(ComparisonMode pvCompareMode, Double tolerance){
549-
550-
}
551527
}

app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ closeConfigurationWarning=Configuration modified, but not saved. Do you wish to
1919
closeCompositeSnapshotWarning=Composite snapshot modified, but not saved. Do you wish to continue?
2020
closeTabPrompt=Close tab?
2121
comment=Comment
22-
compareMode=Compare Mode
23-
compareTolerance=Tolerance
22+
comparisonMode=Comparison Mode
23+
comparisonTolerance=Tolerance
2424
compositeSnapshotConsistencyCheckFailed=Failed to check consistency for composite snapshot
2525
copy=Copy
2626
createdDate=Created

app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/configuration/ComparisonDataEditor.fxml

Lines changed: 0 additions & 22 deletions
This file was deleted.

app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/configuration/ConfigurationEditor.fxml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
<TableColumn fx:id="pvNameColumn" editable="true" prefWidth="${controlsPane.width * 0.35}" text="%pvName"/>
6262
<TableColumn fx:id="readOnlyColumn" editable="true" prefWidth="${controlsPane.width * 0.1}" text="%pvReadOnly"/>
6363
<TableColumn fx:id="readbackPvNameColumn" editable="true" prefWidth="${controlsPane.width * 0.35}" text="%pvNameReadback"/>
64-
<TableColumn fx:id="comparisonModeColumn" editable="true" prefWidth="${controlsPane.width * 0.1}" text="%compareMode"/>
65-
<TableColumn fx:id="toleranceColumn" editable="true" prefWidth="${controlsPane.width * 0.1}" text="%compareTolerance"/>
64+
<TableColumn fx:id="comparisonModeColumn" editable="true" prefWidth="${controlsPane.width * 0.1}" text="%comparisonMode"/>
65+
<TableColumn fx:id="toleranceColumn" editable="true" prefWidth="${controlsPane.width * 0.1}" text="%comparisonTolerance"/>
6666
</columns>
6767
</TableColumn>
6868

app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/Comparison.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@
44

55
package org.phoebus.applications.saveandrestore.model;
66

7-
public record Comparison(ComparisonMode comparisonMode, double tolerance){
7+
public class Comparison{
88

9+
private ComparisonMode comparisonMode;
10+
private Double tolerance;
11+
12+
public Comparison(){
13+
14+
}
15+
16+
public Comparison(ComparisonMode comparisonMode, Double tolerance){
17+
this.comparisonMode = comparisonMode;
18+
this.tolerance = tolerance;
19+
}
20+
21+
public ComparisonMode getComparisonMode() {
22+
return comparisonMode;
23+
}
24+
25+
public void setComparisonMode(ComparisonMode comparisonMode) {
26+
this.comparisonMode = comparisonMode;
27+
}
28+
29+
public Double getTolerance() {
30+
return tolerance;
31+
}
32+
33+
public void setTolerance(Double tolerance) {
34+
this.tolerance = tolerance;
35+
}
936
}

app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/ConfigPv.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,6 @@ public void setComparison(Comparison comparison) {
8989
this.comparison = comparison;
9090
}
9191

92-
public Double getTolerance() {
93-
return tolerance;
94-
}
95-
96-
public void setTolerance(Double tolerance) {
97-
this.tolerance = tolerance;
98-
}
99-
10092
@Override
10193
public boolean equals(Object other) {
10294
if (other instanceof ConfigPv otherConfigPv) {
@@ -119,8 +111,8 @@ public String toString() {
119111
.append(", readOnly=").append(readOnly)
120112
.append(", tolerance=").append(tolerance);
121113
if(comparison != null){
122-
stringBuffer.append(", comparison mode=").append(comparison.comparisonMode());
123-
stringBuffer.append(", tolerance=").append(comparison.tolerance());
114+
stringBuffer.append(", comparison mode=").append(comparison.getComparisonMode());
115+
stringBuffer.append(", tolerance=").append(comparison.getTolerance());
124116
}
125117
return stringBuffer.toString();
126118
}
@@ -167,11 +159,6 @@ public Builder comparison(Comparison comparison) {
167159
return this;
168160
}
169161

170-
public Builder tolerance(double tolerance) {
171-
configPv.setTolerance(tolerance);
172-
return this;
173-
}
174-
175162
public ConfigPv build() {
176163
return configPv;
177164
}

app/save-and-restore/model/src/test/java/org/phoebus/applications/saveandrestore/model/ConfigPvTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,11 @@ public void testConfigPv() {
4242

4343
assertEquals("b", configPV.getReadbackPvName());
4444
assertTrue(configPV.isReadOnly());
45-
assertNull(configPV.getCompareMode());
46-
assertNull(configPV.getTolerance());
45+
assertNull(configPV.getComparison());
4746

48-
configPV = ConfigPv.builder().pvName("a").readbackPvName("b").readOnly(true).compareMode(ComparisonMode.ABSOLUTE).tolerance(1.0).build();
49-
assertEquals(ComparisonMode.ABSOLUTE, configPV.getCompareMode());
50-
assertEquals(1.0, configPV.getTolerance());
47+
configPV = ConfigPv.builder().pvName("a").readbackPvName("b").readOnly(true).comparison(new Comparison(ComparisonMode.ABSOLUTE, 1.0)).build();
48+
assertEquals(ComparisonMode.ABSOLUTE, configPV.getComparison().getComparisonMode());
49+
assertEquals(1.0, configPV.getComparison().getTolerance());
5150
}
5251

5352
@Test

app/save-and-restore/util/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@
3434
<version>4.7.4-SNAPSHOT</version>
3535
</dependency>
3636

37+
<dependency>
38+
<groupId>org.apache.commons</groupId>
39+
<artifactId>commons-collections4</artifactId>
40+
<version>4.4</version>
41+
</dependency>
42+
3743
<dependency>
3844
<groupId>org.junit.jupiter</groupId>
3945
<artifactId>junit-jupiter</artifactId>

0 commit comments

Comments
 (0)