Skip to content

Commit 5920786

Browse files
authored
Various issues and API update (#649)
* Removed testing code * Fixed wm report naming issue * Fixed #643 * Added spot removal procedures to API
1 parent e83ed78 commit 5920786

File tree

12 files changed

+144
-44
lines changed

12 files changed

+144
-44
lines changed

common.gradle

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

88
String mavenGroupId = 'org.cirdles'
9-
String mavenVersion = '1.8.2'
9+
String mavenVersion = '1.8.3'
1010

1111
sourceCompatibility = '1.8'
1212
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

squidAPI/src/main/java/org/cirdles/squid/Squid3API.java

+9
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,15 @@ void newSquid3GeochronProjectFromZippedPrawnXML(Path prawnXMLFileSourcePath)
140140
String getU_ppm(ReferenceMaterialModel curConcRefMatModel);
141141
String getTh_ppm(ReferenceMaterialModel curConcRefMatModel);
142142

143+
/**
144+
* Squid3 maintains a list of removed spots so that they can be recovered at anytime
145+
* @param spotNames
146+
*/
147+
void removeSpotsFromDataFile(List<String> spotNames);
148+
List<String> getRemovedSpotsByName();
149+
void restoreSpotToDataFile(String spotName);
150+
void restoreAllSpotsToDataFile();
151+
143152
// reports management ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
144153

145154
/**

squidAPI/src/main/java/org/cirdles/squid/Squid3Ink.java

+46
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,20 @@ public static void main(String[] args) throws IOException, SquidException, JAXBE
127127
for (int i = 0; i < squid3Ink.getArrayOfSpotSummariesFromSample("TEMORA").length; i++) {
128128
System.out.println(" " + squid3Ink.getArrayOfSpotSummariesFromSample("Temora")[i][0]);
129129
}
130+
System.out.println();
131+
132+
List<String> spotNames = new ArrayList<>();
133+
spotNames.add("Temora-2.1");
134+
spotNames.add("Temora-5.1");
135+
squid3Ink.removeSpotsFromDataFile(spotNames);
136+
for (int i = 0; i < squid3Ink.getArrayOfSpotSummariesFromSample("TEMORA").length; i++) {
137+
System.out.println(" " + squid3Ink.getArrayOfSpotSummariesFromSample("Temora")[i][0]);
138+
}
139+
System.out.println();
140+
squid3Ink.restoreAllSpotsToDataFile();
141+
for (int i = 0; i < squid3Ink.getArrayOfSpotSummariesFromSample("TEMORA").length; i++) {
142+
System.out.println(" " + squid3Ink.getArrayOfSpotSummariesFromSample("Temora")[i][0]);
143+
}
130144
}
131145

132146
@Override
@@ -489,6 +503,7 @@ public void updateSpotName(String oldSpotName, String spotName) {
489503

490504
squid3Project.getTask().setChanged(true);
491505
squid3Project.getTask().setPrawnChanged(true);
506+
SquidProject.setProjectChanged(true);
492507
break;
493508
}
494509
}
@@ -564,6 +579,37 @@ public String getTh_ppm(ReferenceMaterialModel curConcRefMatModel) {
564579
return ((ReferenceMaterialModel) curConcRefMatModel).getConcentrationByName("concTh")
565580
.getValue().setScale(3, RoundingMode.HALF_UP).toString();
566581
}
582+
583+
/**
584+
* Squid3 maintains a list of removed spots so that they can be recovered at anytime
585+
* @param spotNames
586+
*/
587+
@Override
588+
public void removeSpotsFromDataFile(List<String> spotNames) {
589+
squid3Project.removeSpotsFromDataFile(spotNames);
590+
squid3Project.generatePrefixTreeFromSpotNames();
591+
SquidProject.setProjectChanged(true);
592+
}
593+
594+
@Override
595+
public List<String> getRemovedSpotsByName() {
596+
return squid3Project.retrieveRemovedSpotsByName();
597+
}
598+
599+
@Override
600+
public void restoreSpotToDataFile(String spotName) {
601+
squid3Project.restoreSpotToDataFile(spotName);
602+
squid3Project.generatePrefixTreeFromSpotNames();
603+
SquidProject.setProjectChanged(true);
604+
}
605+
606+
@Override
607+
public void restoreAllSpotsToDataFile() {
608+
squid3Project.restoreAllRunsToPrawnFile();
609+
squid3Project.generatePrefixTreeFromSpotNames();
610+
SquidProject.setProjectChanged(true);
611+
}
612+
567613
// REPORTS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
568614

569615
/**

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

+3-6
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,7 @@ public void changed(ObservableValue<? extends PrawnFile.Run> observable, PrawnFi
261261
});
262262

263263
shrimpFractionList.setCellFactory(
264-
(lv)
265-
-> new RunsViewModel.ShrimpFractionListCell()
264+
(lv) -> new RunsViewModel.ShrimpFractionListCell()
266265
);
267266

268267
runsModel.addRunsList(shrimpRuns);
@@ -277,8 +276,7 @@ public void changed(ObservableValue<? extends PrawnFile.Run> observable, PrawnFi
277276
shrimpRefMatList.setStyle(SquidUI.SPOT_LIST_CSS_STYLE_SPECS);
278277

279278
shrimpRefMatList.setCellFactory(
280-
(lv)
281-
-> new RunsViewModel.ShrimpFractionAbbreviatedListCell()
279+
(lv) -> new RunsViewModel.ShrimpFractionAbbreviatedListCell()
282280
);
283281

284282
shrimpRefMatList.setContextMenu(createRefMatSpotsViewContextMenu());
@@ -287,8 +285,7 @@ public void changed(ObservableValue<? extends PrawnFile.Run> observable, PrawnFi
287285
shrimpConcentrationRefMatList.setStyle(SquidUI.SPOT_LIST_CSS_STYLE_SPECS);
288286

289287
shrimpConcentrationRefMatList.setCellFactory(
290-
(lv)
291-
-> new RunsViewModel.ShrimpFractionAbbreviatedListCell()
288+
(lv) -> new RunsViewModel.ShrimpFractionAbbreviatedListCell()
292289
);
293290

294291
shrimpConcentrationRefMatList.setContextMenu(createConcRefMatSpotsViewContextMenu());

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

+5-6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
import java.io.OutputStream;
3131
import java.io.PrintStream;
32-
import java.util.Map;
3332

3433
/**
3534
* @author James F. Bowring
@@ -138,11 +137,11 @@ public void write(int b) {
138137

139138
}
140139

141-
System.out.println(System.getenv("CATALINA_HOME"));
142-
Map<String, String> env = System.getenv();
143-
for (String envName : env.keySet()) {
144-
System.out.format("%s=%s%n", envName, env.get(envName));
145-
}
140+
// System.out.println(System.getenv("CATALINA_HOME"));
141+
// Map<String, String> env = System.getenv();
142+
// for (String envName : env.keySet()) {
143+
// System.out.format("%s=%s%n", envName, env.get(envName));
144+
// }
146145

147146
launch(args);
148147
}

squidApp/src/main/java/org/cirdles/squid/gui/dateInterpretations/plots/plotControllers/RefMatWeightedMeanToolBoxNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ public void handle(ActionEvent e) {
539539
private void writeWeightedMeanReport(boolean doAppend) throws IOException {
540540
if (squidProject.hasReportsFolder()) {
541541
String report = SquidWeightedMeanReportEngine.makeWeightedMeanReportAsCSV(sampleNode.getSpotSummaryDetailsWM());
542-
String reportFileName = "WeightedMeanReportForSample_" + sampleNode.getNodeName() + ".csv";
542+
String reportFileName = squidProject.getProjectName() + "_WMReport_RM_" + sampleNode.getNodeName() + ".csv";
543543

544544
try {
545545
File reportFile = squidProject.getPrawnFileHandler().getReportsEngine().getWeightedMeansReportFile(reportFileName);

squidApp/src/main/java/org/cirdles/squid/gui/dateInterpretations/plots/plotControllers/SamplesWeightedMeanToolBoxNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ public void handle(ActionEvent e) {
671671
private void writeWeightedMeanReport(boolean doAppend) throws IOException {
672672
if (squidProject.hasReportsFolder()) {
673673
String report = SquidWeightedMeanReportEngine.makeWeightedMeanReportAsCSV(sampleNode.getSpotSummaryDetailsWM());
674-
String reportFileName = "WeightedMeanReportForSample_" + sampleNode.getNodeName() + ".csv";
674+
String reportFileName = squidProject.getProjectName() + "_WMReport_" + sampleNode.getNodeName() + ".csv";
675675

676676
try {
677677
File reportFile = squidProject.getPrawnFileHandler().getReportsEngine().getWeightedMeansReportFile(reportFileName);

squidApp/src/main/java/org/cirdles/squid/gui/utilities/fileUtilities/FileHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public static File saveTaskFileXML(TaskInterface task, Window ownerWindow)
248248
File mruFolder = new File(squidPersistentState.getMRUTaskXMLFolderPath());
249249
fileChooser.setInitialDirectory(mruFolder.isDirectory() ? mruFolder : null);
250250

251-
// uipdate task name to match file name
251+
// update task name to match file name
252252
task.setName(task.getName().replaceAll(" ", "_").replaceAll("/", "-").replaceAll("\\\\", "-"));
253253
fileChooser.setInitialFileName(task.getName() + ".xml");
254254

squidCore/src/main/java/org/cirdles/squid/projects/Squid3ProjectBasicAPI.java

+8
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,14 @@ public interface Squid3ProjectBasicAPI extends Serializable {
102102

103103
List<PrawnFile.Run> getPrawnFileRuns();
104104

105+
public void removeSpotsFromDataFile(List<String> spotNames);
106+
107+
public List<String> retrieveRemovedSpotsByName();
108+
109+
public void restoreSpotToDataFile(String spotName);
110+
111+
public void restoreAllRunsToPrawnFile();
112+
105113
String getPrawnFileShrimpSoftwareVersionName();
106114

107115
String getPrawnSourceFileName();

squidCore/src/main/java/org/cirdles/squid/projects/SquidProject.java

+49-28
Original file line numberDiff line numberDiff line change
@@ -212,27 +212,6 @@ public void initializeTaskAndReduceData(boolean autoGenerateNominalMasses) {
212212
task.setFiltersForUnknownNames(filtersForUnknownNames);
213213

214214
((Task) task).initializeTaskAndReduceData(autoGenerateNominalMasses);
215-
216-
// // four passes needed for percolating results
217-
// task.updateAllExpressions(true);
218-
// task.setChanged(true);
219-
// task.setupSquidSessionSpecsAndReduceAndReport(false);
220-
//
221-
// // autogenerate task basics for type General = Ratio mode
222-
// if (autoGenerateNominalMasses && projectType.equals(GENERAL)) {
223-
// List<String> nominalMasses = new ArrayList<>();
224-
// for (SquidSpeciesModel ssm : task.getSquidSpeciesModelList()) {
225-
// // no background assumed
226-
// String proposedNominalMassName
227-
// = new BigDecimal(task.getMapOfIndexToMassStationDetails()
228-
// .get(ssm.getMassStationIndex())
229-
// .getIsotopeAMU()).setScale(1, RoundingMode.HALF_UP).toPlainString();
230-
// nominalMasses.add(proposedNominalMassName);
231-
// }
232-
// this.task.setNominalMasses(nominalMasses);
233-
//
234-
// ((Task) task).initializeSquidSpeciesModelsRatioMode(true, false, true, false);
235-
// }
236215
}
237216
}
238217

@@ -764,16 +743,51 @@ public void preProcessPrawnSession() {
764743

765744
}
766745

767-
public void removeRunsFromPrawnFile(List<Run> runs) {
746+
public void removeSpotsFromDataFile(List<String> spotNames) {
747+
List<Run> runs = new ArrayList<>();
748+
for (int i = 0; i < spotNames.size(); i++) {
749+
Run run = retrieveRunBySpotName(spotNames.get(i));
750+
if (run != null) {
751+
runs.add(run);
752+
}
753+
}
754+
removeRunsFromPrawnFile(runs);
755+
}
768756

769-
prawnFile.getRun().removeAll(runs);
770-
removedRuns.addAll(runs);
757+
private Run retrieveRunBySpotName(String spotName) {
758+
Run retVal = null;
759+
List<Run> runs = prawnFile.getRun();
760+
for (Run run : runs) {
761+
if (run.getPar().get(0).getValue().compareToIgnoreCase(spotName) == 0) {
762+
retVal = run;
763+
break;
764+
}
765+
}
766+
return retVal;
767+
}
771768

772-
// save new count
773-
prawnFile.setRuns((short) prawnFile.getRun().size());
769+
public List<String> retrieveRemovedSpotsByName() {
770+
List<String> retVal = new ArrayList<>();
771+
for (Run run : removedRuns) {
772+
retVal.add(run.getPar().get(0).getValue());
773+
}
774+
return retVal;
775+
}
774776

775-
// update fractions
776-
((Task) task).setupSquidSessionSkeleton();
777+
public void removeRunsFromPrawnFile(List<Run> runs) {
778+
if (removedRuns == null){
779+
removedRuns = new ArrayList<>();
780+
}
781+
if (runs.size() > 0) {
782+
prawnFile.getRun().removeAll(runs);
783+
removedRuns.addAll(runs);
784+
785+
// save new count
786+
prawnFile.setRuns((short) prawnFile.getRun().size());
787+
788+
// update fractions
789+
((Task) task).setupSquidSessionSkeleton();
790+
}
777791
}
778792

779793
public void restoreRunToPrawnFile(Run run) {
@@ -788,6 +802,13 @@ public void restoreRunToPrawnFile(Run run) {
788802
((Task) task).setupSquidSessionSkeleton();
789803
}
790804

805+
public void restoreSpotToDataFile(String spotName) {
806+
Run run = retrieveRunBySpotName(spotName);
807+
if (run != null) {
808+
restoreRunToPrawnFile(run);
809+
}
810+
}
811+
791812
public void restoreAllRunsToPrawnFile() {
792813

793814
prawnFile.getRun().addAll(removedRuns);

squidCore/src/main/java/org/cirdles/squid/tasks/Task.java

+20
Original file line numberDiff line numberDiff line change
@@ -2658,6 +2658,8 @@ private String printDependencyGraph(
26582658
* @return
26592659
*/
26602660
public void initTaskDefaultSquidReportTables(boolean updateDefaultReports) {
2661+
// +++++++++++ handle reports for reference materials ++++++++++++++
2662+
26612663
if (squidReportTablesRefMat == null) {
26622664
this.squidReportTablesRefMat = new ArrayList<>();
26632665
}
@@ -2675,6 +2677,16 @@ public void initTaskDefaultSquidReportTables(boolean updateDefaultReports) {
26752677
}
26762678
squidReportTablesRefMat.add(SquidReportTable.createDefaultSquidReportTableRefMat(this));
26772679

2680+
SquidReportTableInterface labReportRM = SquidLabData.getExistingSquidLabData().getDefaultReportTableRM();
2681+
if (labReportRM != null){
2682+
if (!squidReportTablesRefMat.contains(labReportRM)){
2683+
squidReportTablesRefMat.add(labReportRM);
2684+
selectedRefMatReportModel = labReportRM;
2685+
}
2686+
}
2687+
2688+
// +++++++++++ handle reports for unknowns ++++++++++++++
2689+
26782690
if (squidReportTablesUnknown == null) {
26792691
this.squidReportTablesUnknown = new ArrayList<>();
26802692
}
@@ -2692,6 +2704,14 @@ public void initTaskDefaultSquidReportTables(boolean updateDefaultReports) {
26922704
}
26932705
squidReportTablesUnknown.add(SquidReportTable.createDefaultSquidReportTableUnknown(this));
26942706

2707+
SquidReportTableInterface labReport = SquidLabData.getExistingSquidLabData().getDefaultReportTable();
2708+
if (labReport != null){
2709+
if (!squidReportTablesUnknown.contains(labReport)){
2710+
squidReportTablesUnknown.add(labReport);
2711+
selectedUnknownReportModel = labReport;
2712+
}
2713+
}
2714+
26952715
initSquidWeightedMeanPlotSortTable();
26962716
initSquidRMWeightedMeanPlotSortTable();
26972717
}
Binary file not shown.

0 commit comments

Comments
 (0)