Skip to content

Commit c87477b

Browse files
authored
Misc fixes (#607)
* Fixed detail in task library * Fixed Shrimp software version parsing bug * Fixed SpotFieldNode xml handlers * Updated output of peeks to show function result arrays * Fixed bug in SquidReports xml handling
1 parent 5353a65 commit c87477b

19 files changed

+211
-146
lines changed

squidApp/src/main/java/org/cirdles/squid/gui/expressions/ExpressionBuilderController.java

+56-53
Original file line numberDiff line numberDiff line change
@@ -2102,7 +2102,6 @@ private String peekDetailsPerSummary(SpotSummaryDetails spotSummary) {
21022102
boolean isAge = ((ExpressionTree) spotSummary.getExpressionTree()).getName().toUpperCase(Locale.ENGLISH).contains("AGE");
21032103
boolean isLambda = ((ExpressionTree) spotSummary.getExpressionTree()).getName().toUpperCase(Locale.ENGLISH).contains("LAMBDA2");
21042104
boolean isConcen = ((ExpressionTree) spotSummary.getExpressionTree()).getName().toUpperCase(Locale.ENGLISH).contains("CONCEN");
2105-
boolean isWM = ((ExpressionTree) spotSummary.getExpressionTree()).getName().toUpperCase(Locale.ENGLISH).contains("WM");
21062105

21072106
String[][] labels;
21082107
try {
@@ -2226,9 +2225,12 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
22262225

22272226
// context-sensitivity - we use Ma in Squid for display
22282227
boolean isAge = expTree.getName().toUpperCase(Locale.ENGLISH).contains("AGE");
2229-
String[][] resultLabelsFirst = clone2dArray(((ExpressionTree) expTree).getOperation().getLabelsForOutputValues());
2230-
isAge = isAge || resultLabelsFirst[0][0].toUpperCase(Locale.ENGLISH).contains("AGE");
2231-
2228+
String[][] resultLabelsFirst = new String[0][];
2229+
if (((ExpressionTree) expTree).getOperation() != null) {
2230+
resultLabelsFirst = clone2dArray(((ExpressionTree) expTree).getOperation().getLabelsForOutputValues());
2231+
isAge = isAge || resultLabelsFirst[0][0].toUpperCase(Locale.ENGLISH).contains("AGE");
2232+
}
2233+
22322234
String contextAgeFieldName = (isAge ? "Age(Ma)" : "Value");
22332235
String contextAge1SigmaAbsName = (isAge ? "1\u03C3Abs(Ma)" : "1\u03C3Abs");
22342236
// or it may be concentration ppm
@@ -2323,6 +2325,7 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
23232325
formatter.format("% 20.14" + (String) ((i == 2) ? "f " : "E "), squid3RoundedToSize(results[0][i], sigDigits));
23242326
}
23252327
sb.append(formatter.toString());
2328+
formatter.close();
23262329
}
23272330

23282331
sb.append("\n");
@@ -2359,6 +2362,7 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
23592362
Formatter formatter = new Formatter();
23602363
formatter.format("% 20.14E % 20.14E % 20.14f ", results[0][0], results[0][1], calcPercentUnct(results[0]));
23612364
sb.append(formatter.toString());
2365+
formatter.close();
23622366
}
23632367

23642368
sb.append("\n");
@@ -2401,6 +2405,7 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
24012405
}
24022406
sb.append(formatter.toString());
24032407
}
2408+
formatter.close();
24042409
}
24052410

24062411
sb.append("\n");
@@ -2427,6 +2432,7 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
24272432

24282433
formatter.format("%1$-20s ", squid3RoundedToSize(results[0][0], sigDigits));
24292434
sb.append(formatter.toString());
2435+
formatter.close();
24302436
}
24312437

24322438
sb.append("\n");
@@ -2449,6 +2455,7 @@ private String peekDetailsPerSpot(List<ShrimpFractionExpressionInterface> spots,
24492455
Formatter formatter = new Formatter();
24502456
formatter.format("%1$-" + 20 + "s", squid3RoundedToSize(results[0][0], sigDigits));
24512457
sb.append(formatter.toString());
2458+
formatter.close();
24522459
}
24532460

24542461
} catch (Exception e) {
@@ -2525,23 +2532,23 @@ private ContextMenu createExpressionTextNodeContextMenu(ExpressionTextNode etn)
25252532
|| task.getRatioNames().contains(text)) {
25262533
MenuItem menuItem1 = new MenuItem("1 \u03C3 (%)");
25272534
menuItem1.setOnAction((evt) -> {
2528-
ExpressionTextNode etn2 = new ExpressionTextNode("[%\"" + text + "\"]");// etn.getText().trim().replaceAll("\\[(±?)(%?)\"", "[%\""));
2535+
ExpressionTextNode etn2 = new ExpressionTextNode("[%\"" + text + "\"]");
25292536
etn2.setOrdinalIndex(etn.getOrdinalIndex());
25302537
expressionTextFlow.getChildren().remove(etn);
25312538
expressionTextFlow.getChildren().add(etn2);
25322539
updateExpressionTextFlowChildren();
25332540
});
25342541
MenuItem menuItem2 = new MenuItem("1 \u03C3 abs (±)");
25352542
menuItem2.setOnAction((evt) -> {
2536-
ExpressionTextNode etn2 = new ExpressionTextNode("[±\"" + text + "\"]");// etn.getText().trim().replaceAll("\\[(±?)(%?)\"", "[±\""));
2543+
ExpressionTextNode etn2 = new ExpressionTextNode("[±\"" + text + "\"]");
25372544
etn2.setOrdinalIndex(etn.getOrdinalIndex());
25382545
expressionTextFlow.getChildren().remove(etn);
25392546
expressionTextFlow.getChildren().add(etn2);
25402547
updateExpressionTextFlowChildren();
25412548
});
25422549
MenuItem menuItem3 = new MenuItem("Use value");
25432550
menuItem3.setOnAction((evt) -> {
2544-
ExpressionTextNode etn2 = new ExpressionTextNode("[\"" + text + "\"]");// etn.getText().trim().replaceAll("\\[(±?)(%?)\"", "[\""));
2551+
ExpressionTextNode etn2 = new ExpressionTextNode("[\"" + text + "\"]");
25452552
etn2.setOrdinalIndex(etn.getOrdinalIndex());
25462553
expressionTextFlow.getChildren().remove(etn);
25472554
expressionTextFlow.getChildren().add(etn2);
@@ -2620,7 +2627,6 @@ private ContextMenu createExpressionTextNodeContextMenu(ExpressionTextNode etn)
26202627
});
26212628
menuItem = new MenuItem("<< Edit value then click here to save", editText);
26222629
menuItem.setOnAction((evt) -> {
2623-
//etn.setText(editText.getText());
26242630
// this allows for redo of content editing
26252631
NumberTextNode etn2 = new NumberTextNode(editText.getText());
26262632
etn2.setOrdinalIndex(etn.getOrdinalIndex());
@@ -3651,15 +3657,13 @@ private void setCellModeView(ListCell<Expression> cell) {
36513657
MenuItem remove = new MenuItem("Remove expression(s)");
36523658
remove.setOnAction((t) -> {
36533659
int index = cell.getIndex();
3654-
// ListView parent = cell.getListView();
3660+
36553661
ObservableList selectedItemsToRemove = parent.getSelectionModel().getSelectedItems();
36563662
for (int i = 0; i < selectedItemsToRemove.size(); i++) {
36573663
removedExpressions.add((Expression) selectedItemsToRemove.get(i));
36583664
task.removeExpression((Expression) selectedItemsToRemove.get(i), true);
36593665
}
36603666

3661-
// removedExpressions.add(cell.getItem());
3662-
// task.removeExpression(cell.getItem(), true);
36633667
selectedExpression.set(null);
36643668
populateExpressionListViews();
36653669

@@ -3678,56 +3682,55 @@ private void setCellModeView(ListCell<Expression> cell) {
36783682
});
36793683
cm.getItems().add(remove);
36803684

3681-
}
3682-
3683-
MenuItem restore = new MenuItem("Restore removed expressions");
3684-
restore.setOnAction((t) -> {
3685-
for (Expression removedExp : removedExpressions) {
3686-
boolean nameExist;
3687-
do {
3688-
nameExist = false;
3689-
for (Expression e : namedExpressions) {
3690-
if (e.getName().equalsIgnoreCase(removedExp.getName())) {
3691-
removedExp.setName(removedExp.getName() + " [restored]");
3692-
nameExist = true;
3685+
MenuItem restore = new MenuItem("Restore removed expressions");
3686+
restore.setOnAction((t) -> {
3687+
for (Expression removedExp : removedExpressions) {
3688+
boolean nameExist;
3689+
do {
3690+
nameExist = false;
3691+
for (Expression e : namedExpressions) {
3692+
if (e.getName().equalsIgnoreCase(removedExp.getName())) {
3693+
removedExp.setName(removedExp.getName() + " [restored]");
3694+
nameExist = true;
3695+
}
36933696
}
3694-
}
3695-
} while (nameExist);
3697+
} while (nameExist);
36963698

3697-
task.addExpression(removedExp, true);
3698-
}
3699-
removedExpressions.clear();
3700-
populateExpressionListViews();
3701-
});
3702-
restore.setDisable(removedExpressions.isEmpty());
3703-
cm.getItems().add(restore);
3699+
task.addExpression(removedExp, true);
3700+
}
3701+
removedExpressions.clear();
3702+
populateExpressionListViews();
3703+
});
3704+
restore.setDisable(removedExpressions.isEmpty());
3705+
cm.getItems().add(restore);
37043706

3705-
cm.getItems().add(new SeparatorMenuItem());
3707+
cm.getItems().add(new SeparatorMenuItem());
37063708

3707-
Menu export = new Menu("Export Expression as");
3709+
Menu export = new Menu("Export Expression as");
37083710

3709-
MenuItem exportXML = new MenuItem("XML document");
3710-
exportXML.setOnAction((t) -> {
3711-
try {
3712-
FileHandler.saveExpressionFileXML(cell.getItem(), SquidUI.primaryStageWindow);
3713-
} catch (IOException ex) {
3714-
}
3715-
});
3716-
export.getItems().add(exportXML);
3711+
MenuItem exportXML = new MenuItem("XML document");
3712+
exportXML.setOnAction((t) -> {
3713+
try {
3714+
FileHandler.saveExpressionFileXML(cell.getItem(), SquidUI.primaryStageWindow);
3715+
} catch (IOException ex) {
3716+
}
3717+
});
3718+
export.getItems().add(exportXML);
37173719

3718-
MenuItem exportHTML = new MenuItem("HTML document");
3719-
exportHTML.setOnAction((t) -> {
3720-
try {
3721-
FileHandler.saveExpressionGraphHTML(cell.getItem(), SquidUI.primaryStageWindow);
3722-
} catch (IOException ex) {
3723-
}
3724-
});
3725-
export.getItems().add(exportHTML);
3720+
MenuItem exportHTML = new MenuItem("HTML document");
3721+
exportHTML.setOnAction((t) -> {
3722+
try {
3723+
FileHandler.saveExpressionGraphHTML(cell.getItem(), SquidUI.primaryStageWindow);
3724+
} catch (IOException ex) {
3725+
}
3726+
});
3727+
export.getItems().add(exportHTML);
37263728

3727-
export.setDisable(parent.getSelectionModel().getSelectedItems().size() > 1);
3728-
cm.getItems().add(export);
3729+
export.setDisable(parent.getSelectionModel().getSelectedItems().size() > 1);
3730+
cm.getItems().add(export);
37293731

3730-
cm.show(cell, event.getScreenX(), event.getScreenY());
3732+
cm.show(cell, event.getScreenX(), event.getScreenY());
3733+
}
37313734
}
37323735
});
37333736

0 commit comments

Comments
 (0)