Skip to content

Commit b809835

Browse files
authored
Merge pull request #768 from bowring/ratiomodeI
Ratio Mode phase I completed
2 parents e19e0dc + f9c1b42 commit b809835

File tree

16 files changed

+99
-98
lines changed

16 files changed

+99
-98
lines changed

common.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ apply plugin: 'maven-publish'
77

88

99
String mavenGroupId = 'org.cirdles'
10-
String mavenVersion = '2.0.5'
10+
String mavenVersion = '2.0.6'
1111

1212
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
1313

squidApp/src/main/java/org/cirdles/squid/gui/IsotopesManagerController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -196,14 +196,14 @@ public TableCell<MassStationDetail, String> call(TableColumn param) {
196196
public void handle(TableColumn.CellEditEvent<MassStationDetail, String> editEvent) {
197197
String editIsotopeName = editEvent.getNewValue();
198198
if (editIsotopeName.compareToIgnoreCase(DEFAULT_BACKGROUND_MASS_LABEL) != 0) {
199-
((MassStationDetail) editEvent.getTableView().getItems().get(editEvent.getTablePosition().getRow()))
199+
editEvent.getTableView().getItems().get(editEvent.getTablePosition().getRow())
200200
.setIsotopeLabel(editIsotopeName);
201201
SquidSpeciesModel ssm
202202
= task.getSquidSpeciesModelList()
203203
.get(editEvent.getTablePosition().getRow());
204204
ssm.setIsotopeName(editIsotopeName);
205205
} else {
206-
((MassStationDetail) editEvent.getTableView().getItems().get(editEvent.getTablePosition().getRow()))
206+
editEvent.getTableView().getItems().get(editEvent.getTablePosition().getRow())
207207
.setIsotopeLabel(editEvent.getOldValue());
208208
}
209209
task.setChanged(true);

squidApp/src/main/java/org/cirdles/squid/gui/SquidUIController.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ private void launchExpressionBuilder() throws SquidException {
11091109

11101110
// present warning if needed
11111111
if (squidProject.isTypeGeochron() && !squidProject.projectIsHealthyGeochronMode()) {
1112-
SquidMessageDialog.showInfoDialog("Please be sure to Manage Isotopes (press red button) to initialize expressions\n"
1112+
SquidMessageDialog.showInfoDialog("Please be sure to Map Isotopes from Tasks to Data (Isotopes Menu) to initialize expressions\n"
11131113
+ " and confirm the ratios in ParentElement_ConcenConst = \n"
11141114
+ "\t\t" + squidProject.getTask().getExpressionByName(PARENT_ELEMENT_CONC_CONST).getExcelExpressionString(),
11151115
primaryStageWindow);
@@ -1386,7 +1386,7 @@ private void videoTutorialsMenuItemAction() {
13861386
@FXML
13871387
private void producePerScanReportsAction() throws IOException {
13881388
if (squidProject.getTask().getRatioNames().isEmpty()) {
1389-
SquidMessageDialog.showInfoDialog("Please be sure to Manage Isotopes and Ratios to initialize expressions.\n",
1389+
SquidMessageDialog.showInfoDialog("Please be sure to Map Isotopes from Tasks to Data (Isotopes Menu) to initialize expressions.\n",
13901390
primaryStageWindow);
13911391
} else {
13921392
if (squidProject.hasReportsFolder()) {
@@ -1487,7 +1487,7 @@ public void produceProjectAuditReportAction() throws IOException {
14871487
@FXML
14881488
public void generateAllReportsAction() throws IOException, SquidException {
14891489
if (squidProject.getTask().getRatioNames().isEmpty()) {
1490-
SquidMessageDialog.showInfoDialog("Please be sure to Manage Isotopes and Ratios to initialize expressions.\n",
1490+
SquidMessageDialog.showInfoDialog("Please be sure to Map Isotopes from Tasks to Data (Isotopes Menu) to initialize expressions.\n",
14911491
primaryStageWindow);
14921492
} else {
14931493
if (squidProject.hasReportsFolder()) {

squidApp/src/main/java/org/cirdles/squid/gui/TaskEditorController.java

+12-10
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ private void updateAddButton() {
235235
String den = denLabel.getText();
236236
boolean valid = (num.compareTo(den) != 0)
237237
&& !taskEditor.getRatioNames().contains(num + "/" + den)
238-
&& !REQUIRED_RATIO_NAMES.contains(num + "/" + den)
238+
&& !taskEditor.getTaskType().getRequiredRatioNames().contains(num + "/" + den)
239239
&& num.length() > 0 && den.length() > 0;
240240
addBtn.setDisable(!valid);
241241
}
@@ -246,7 +246,7 @@ private void populateRatios() {
246246
int count = 1;
247247

248248
if (amGeochronMode) {
249-
for (String ratioName : REQUIRED_RATIO_NAMES) {
249+
for (String ratioName : taskEditor.getTaskType().getRequiredRatioNames()) {
250250
VBox ratio = makeRatioVBox(ratioName);
251251
ratio.setStyle(ratio.getStyle() + "-fx-border-color: black;-fx-background-color: pink;");
252252
ratio.setTranslateX(count++);
@@ -458,8 +458,8 @@ private void initTaskDesign() throws SquidException {
458458

459459
if (newValue == 0) {
460460
taskEditor.setIndexOfBackgroundSpecies(-1);
461-
} else if (newValue > taskEditor.getNominalMasses().size() + REQUIRED_NOMINAL_MASSES.size()) {
462-
taskEditor.setIndexOfBackgroundSpecies(taskEditor.getNominalMasses().size() + REQUIRED_NOMINAL_MASSES.size() - 1);
461+
} else if (newValue > taskEditor.getNominalMasses().size() + taskEditor.getTaskType().getRequiredNominalMasses().size()) {
462+
taskEditor.setIndexOfBackgroundSpecies(taskEditor.getNominalMasses().size() + taskEditor.getTaskType().getRequiredNominalMasses().size() - 1);
463463
} else {
464464
taskEditor.setIndexOfBackgroundSpecies(newValue - 1);
465465
}
@@ -495,7 +495,7 @@ private void populateMasses() {
495495
defaultMassesListTextFlow.setMaxHeight(30);
496496
List<String> allMasses = new ArrayList<>();
497497
if (amGeochronMode) {
498-
allMasses.addAll(REQUIRED_NOMINAL_MASSES);
498+
allMasses.addAll(taskEditor.getTaskType().getRequiredNominalMasses());
499499
}
500500
allMasses.addAll(taskEditor.getNominalMasses());
501501

@@ -506,7 +506,7 @@ private void populateMasses() {
506506
StackPane massText;
507507
if (count == taskEditor.getIndexOfBackgroundSpecies() + 1) {
508508
massText = makeMassStackPane(mass, "Aquamarine");
509-
} else if (REQUIRED_NOMINAL_MASSES.contains(mass)) {
509+
} else if (taskEditor.getTaskType().getRequiredNominalMasses().contains(mass)) {
510510
massText = makeMassStackPane(mass, "pink");
511511
} else {
512512
massText = makeMassStackPane(mass, "white");
@@ -726,11 +726,13 @@ private ContextMenu createChooseRatiosContextMenu() {
726726
denLabel.setText("");
727727
addBtn.setDisable(true);
728728
List<String> masses = new ArrayList<>();
729-
masses.addAll(REQUIRED_NOMINAL_MASSES);
729+
masses.addAll(taskEditor.getTaskType().getRequiredNominalMasses());
730730
masses.addAll(taskEditor.getNominalMasses());
731731
// DEFAULT_BACKGROUND_MASS_LABEL);
732732
masses.sort(new IntuitiveStringComparator<>());
733-
masses.remove(taskEditor.getIndexOfBackgroundSpecies());
733+
if (taskEditor.getIndexOfBackgroundSpecies() >= 0) {
734+
masses.remove(taskEditor.getIndexOfBackgroundSpecies());
735+
}
734736
addNumeratorVBox.getChildren().clear();
735737
addDenominatorVBox.getChildren().clear();
736738
for (String mass : masses) {
@@ -824,7 +826,7 @@ private void updateCurrentTaskWithThisTaskAction() throws SquidException {
824826
// check the mass count
825827
boolean valid = (squidProject.getTask().getSquidSpeciesModelList().size()
826828
== (taskEditor.getNominalMasses().size()
827-
+ (amGeochronMode ? REQUIRED_NOMINAL_MASSES.size() : 0)));
829+
+ (amGeochronMode ? taskEditor.getTaskType().getRequiredNominalMasses().size() : 0)));
828830
if (valid) {
829831
// detect if masses or ratios have changed before reconstruction
830832
boolean noChange = ((Task) squidProject.getTask()).taskDesignDiffersFromTask(taskEditor);
@@ -846,7 +848,7 @@ private void updateCurrentTaskWithThisTaskAction() throws SquidException {
846848
} else {
847849
SquidMessageDialog.showInfoDialog("The data file has " + squidProject.getTask().getSquidSpeciesModelList().size()
848850
+ " masses, but the Task Editor specifies "
849-
+ ((amGeochronMode ? REQUIRED_NOMINAL_MASSES.size() : 0) + taskEditor.getNominalMasses().size())
851+
+ ((amGeochronMode ? taskEditor.getTaskType().getRequiredNominalMasses().size() : 0) + taskEditor.getNominalMasses().size())
850852
+ ".",
851853
primaryStageWindow);
852854
}

squidApp/src/main/java/org/cirdles/squid/gui/TaskFolderBrowserController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ private void populateMasses(TaskInterface task) {
371371
StackPane massText;
372372
if (count == task.getIndexOfBackgroundSpecies() + 1) {
373373
massText = makeMassStackPane(mass, "Aquamarine");
374-
} else if (REQUIRED_NOMINAL_MASSES.contains(mass)) {
374+
} else if (task.getTaskType().getRequiredNominalMasses().contains(mass)) {
375375
massText = makeMassStackPane(mass, "pink");
376376
} else {
377377
massText = makeMassStackPane(mass, "white");
@@ -394,7 +394,7 @@ private void populateRatios(TaskInterface task) {
394394
List<String> ratioNames = task.getRatioNames();
395395
for (String ratioName : ratioNames) {
396396
VBox ratio = TaskEditorController.makeRatioVBox(ratioName);
397-
if (REQUIRED_RATIO_NAMES.contains(ratioName)) {
397+
if (task.getTaskType().getRequiredNominalMasses().contains(ratioName)) {
398398
ratio.setStyle(ratio.getStyle() + "-fx-border-color: black;-fx-background-color: pink;");
399399
} else {
400400
ratio.setStyle(ratio.getStyle() + "-fx-border-color: black;");

squidApp/src/main/java/org/cirdles/squid/gui/TaskManagerController.java

+5-32
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package org.cirdles.squid.gui;
1717

18-
import javafx.beans.value.ChangeListener;
19-
import javafx.beans.value.ObservableValue;
2018
import javafx.event.ActionEvent;
2119
import javafx.fxml.FXML;
2220
import javafx.fxml.Initializable;
@@ -219,40 +217,15 @@ private void populateDirectives() {
219217
}
220218

221219
private void setupListeners() {
222-
taskNameTextField.textProperty().addListener(new ChangeListener<String>() {
223-
@Override
224-
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
225-
task.setName(newValue);
226-
}
227-
});
220+
taskNameTextField.textProperty().addListener((observable, oldValue, newValue) -> task.setName(newValue));
228221

229-
taskDescriptionTextField.textProperty().addListener(new ChangeListener<String>() {
230-
@Override
231-
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
232-
task.setDescription(newValue);
233-
}
234-
});
222+
taskDescriptionTextField.textProperty().addListener((observable, oldValue, newValue) -> task.setDescription(newValue));
235223

236-
authorsNameTextField.textProperty().addListener(new ChangeListener<String>() {
237-
@Override
238-
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
239-
task.setAuthorName(newValue);
240-
}
241-
});
224+
authorsNameTextField.textProperty().addListener((observable, oldValue, newValue) -> task.setAuthorName(newValue));
242225

243-
labNameTextField.textProperty().addListener(new ChangeListener<String>() {
244-
@Override
245-
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
246-
task.setLabName(newValue);
247-
}
248-
});
226+
labNameTextField.textProperty().addListener((observable, oldValue, newValue) -> task.setLabName(newValue));
249227

250-
provenanceTextField.textProperty().addListener(new ChangeListener<String>() {
251-
@Override
252-
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
253-
task.setProvenance(newValue);
254-
}
255-
});
228+
provenanceTextField.textProperty().addListener((observable, oldValue, newValue) -> task.setProvenance(newValue));
256229
}
257230

258231
@FXML

squidApp/src/main/java/org/cirdles/squid/gui/dataReductionReports/ReducedDataReportManagerController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void initialize(URL url, ResourceBundle rb) {
5151
squidProject.getPrawnFileHandler().getReportsEngine()
5252
.produceCalamariReportByFlavor(SquidUI.calamariReportFlavor).replaceAll(",", ""));
5353
} else {
54-
SquidMessageDialog.showInfoDialog("Please be sure to Manage Isotopes to initialize expressions.\n",
54+
SquidMessageDialog.showInfoDialog("Please be sure to Map Isotopes from Tasks to Data (Isotopes Menu) to initialize expressions.\n",
5555
primaryStageWindow);
5656
}
5757
}

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

+5
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ public class ExpressionBuilderController implements Initializable {
147147
private final Map<String, Tooltip> tooltipsMap = new HashMap<>();
148148
private final Map<KeyCode, Boolean> keyMap = new HashMap<>();
149149
private final ObservableList<ExpressionTextNode> selectedNodes = FXCollections.observableArrayList();
150+
@FXML
151+
public TitledPane spotMetaDataFieldsTitledPane;
150152
//RADIOS
151153
ToggleGroup toggleGroup;
152154
//List of all the expressions
@@ -358,6 +360,9 @@ public class ExpressionBuilderController implements Initializable {
358360
public void initialize(URL url, ResourceBundle rb) {
359361

360362
task = squidProject.getTask();
363+
nuSwitchedExpressionsTitledPane.setDisable(task.getTaskType().equals(TaskTypeEnum.GENERAL));
364+
builtInExpressionsTitledPane.setDisable(task.getTaskType().equals(TaskTypeEnum.GENERAL));
365+
spotMetaDataFieldsTitledPane.setDisable(task.getTaskType().equals(TaskTypeEnum.GENERAL));
361366

362367
initPropertyBindings();
363368
initListViews();

squidApp/src/main/resources/org/cirdles/squid/gui/SquidUIController.fxml

+5-6
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,11 @@
4444
text="By Joining two Prawn XML files"/>
4545
<SeparatorMenuItem/>
4646
<MenuItem fx:id="newSquidProjectFromOPFileMenuItem" mnemonicParsing="false"
47-
onAction="#newSquidProjectFromOPFileAction" text="(Beta) From OP File"/>
48-
<Menu fx:id="openRecentOPFileMenu" mnemonicParsing="false"
49-
text="(Beta) From Recent OP File"/>
47+
onAction="#newSquidProjectFromOPFileAction" text="From OP File"/>
48+
<Menu fx:id="openRecentOPFileMenu" mnemonicParsing="false" text="From Recent OP File"/>
5049
</items>
5150
</Menu>
52-
<Menu mnemonicParsing="false" text="New Squid3 RATIO Project &lt;BETA&gt;">
51+
<Menu mnemonicParsing="false" text="New Squid3 RATIO Project ">
5352
<items>
5453
<MenuItem fx:id="newSquidRatioProjectMenuItem" mnemonicParsing="false"
5554
onAction="#newSquidRatioProjectAction" text="From a single Prawn XML file"/>
@@ -125,7 +124,7 @@
125124
<Menu fx:id="manageRatiosMenu" mnemonicParsing="false" text="Isotopes">
126125
<items>
127126
<MenuItem mnemonicParsing="false" onAction="#specifyIsotopesMenuItemAction"
128-
text="Map Isotopes from Data to Task"/>
127+
text="Map Isotopes from Task to Data"/>
129128
</items>
130129
</Menu>
131130
<Menu fx:id="manageExpressionsMenu" mnemonicParsing="false" text="Expressions">
@@ -405,4 +404,4 @@
405404
</children>
406405
</AnchorPane>
407406
</children>
408-
</VBox>
407+
</VBox>

squidApp/src/main/resources/org/cirdles/squid/gui/expressions/ExpressionBuilder.fxml

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
<?import javafx.scene.layout.*?>
2222
<?import javafx.scene.text.*?>
2323
<?import javafx.scene.web.WebView?>
24-
<SplitPane xmlns:fx="http://javafx.com/fxml/1" fx:id="mainPane" dividerPositions="0.25" maxHeight="-Infinity"
25-
maxWidth="-Infinity"
24+
<SplitPane xmlns:fx="http://javafx.com/fxml/1" fx:id="mainPane" dividerPositions="0.25" maxHeight="-Infinity" maxWidth="-Infinity"
2625
minHeight="660.0" minWidth="1250.0" prefHeight="660.0" prefWidth="1250.0"
2726
styleClass="backgroundCalamari" stylesheets="@../css/projectManager.css"
2827
xmlns="http://javafx.com/javafx/17"
@@ -95,7 +94,8 @@
9594
<ListView fx:id="isotopesExpressionsListView"/>
9695
</content>
9796
</TitledPane>
98-
<TitledPane animated="false" layoutX="10.0" layoutY="102.0"
97+
<TitledPane fx:id="spotMetaDataFieldsTitledPane" animated="false" layoutX="10.0"
98+
layoutY="102.0"
9999
style="-fx-font-family: SansSerif; -fx-font-size: 12; -fx-font-weight: bold;"
100100
text="Spot Metadata Fields &amp; Common Lead Specs">
101101
<content>
@@ -612,4 +612,4 @@
612612
</children>
613613
</VBox>
614614
</items>
615-
</SplitPane>
615+
</SplitPane>

squidCore/src/main/java/org/cirdles/squid/constants/Squid3Constants.java

+16-5
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
import java.io.File;
1919
import java.math.BigDecimal;
2020
import java.math.RoundingMode;
21-
import java.util.HashMap;
22-
import java.util.Map;
21+
import java.util.*;
2322

2423
import static org.cirdles.squid.tasks.expressions.builtinExpressions.BuiltInExpressionsDataDictionary.COR_PREFIX;
2524

@@ -260,15 +259,19 @@ public String getIsotopeCorrectionPrefixString() {
260259
}
261260

262261
public enum TaskTypeEnum {
263-
GEOCHRON("GEOCHRON", "Geochron"),
264-
GENERAL("GENERAL", "Ratio");
262+
GEOCHRON("GEOCHRON", "Geochron", new ArrayList<>(Arrays.asList("204", "206", "207", "208")), new ArrayList<>(Arrays.asList("204/206", "207/206", "208/206"))),
263+
GENERAL("GENERAL", "Ratio", new ArrayList<>(Arrays.asList()), new ArrayList<>(Arrays.asList()));
265264

266265
private final String name;
267266
private final String projectName;
267+
private final List<String> requiredNominalMasses;
268+
private final List<String> requiredRatioNames;
268269

269-
TaskTypeEnum(String name, String projectName) {
270+
TaskTypeEnum(String name, String projectName, List<String> requiredNominalMasses, List<String> requiredRatioNames) {
270271
this.name = name;
271272
this.projectName = projectName;
273+
this.requiredNominalMasses = requiredNominalMasses;
274+
this.requiredRatioNames = requiredRatioNames;
272275
}
273276

274277
public String getName() {
@@ -281,6 +284,14 @@ public String getName() {
281284
public String getProjectName() {
282285
return projectName;
283286
}
287+
288+
public List<String> getRequiredNominalMasses() {
289+
return requiredNominalMasses;
290+
}
291+
292+
public List<String> getRequiredRatioNames() {
293+
return requiredRatioNames;
294+
}
284295
}
285296

286297
public enum ConcentrationTypeEnum {

squidCore/src/main/java/org/cirdles/squid/squidReports/squidReportCategories/SquidReportCategory.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ public class SquidReportCategory implements Serializable, SquidReportCategoryInt
7272
// raw ratios will be populated on the fly from task with the exception of the required ratios
7373
SquidReportCategory rawRatios = createReportCategory("Raw Ratios");
7474
categoryColumns = new LinkedList<>();
75-
for (String ratioName : BuiltInExpressionsDataDictionary.REQUIRED_RATIO_NAMES) {
76-
column = SquidReportColumn.createSquidReportColumn(ratioName);
77-
categoryColumns.add(column);
78-
}
75+
// for (String ratioName : BuiltInExpressionsDataDictionary.REQUIRED_RATIO_NAMES) {
76+
// column = SquidReportColumn.createSquidReportColumn(ratioName);
77+
// categoryColumns.add(column);
78+
// }
7979
rawRatios.setCategoryColumns(categoryColumns);
8080
defaultSampleWMSortingCategories.add(rawRatios);
8181
defaultRefMatWMSortingCategories.add(rawRatios);

0 commit comments

Comments
 (0)