diff --git a/src/clickTrainDetector/classification/CTClassifierParams.java b/src/clickTrainDetector/classification/CTClassifierParams.java index 9768c61f..91d4e8a7 100644 --- a/src/clickTrainDetector/classification/CTClassifierParams.java +++ b/src/clickTrainDetector/classification/CTClassifierParams.java @@ -36,7 +36,7 @@ public class CTClassifierParams implements Cloneable, Serializable, ManagedParam /** * A unique ID for the classifier that never changes. This is important for accessing data selectors. */ - public String uniqueID = UUID.randomUUID().toString(); + private String uniqueID = UUID.randomUUID().toString(); /** @@ -72,4 +72,21 @@ public class CTClassifierParams implements Cloneable, Serializable, ManagedParam return ps; } + /** + * @return the uniqueID + */ + public String getUniqueID() { + if (uniqueID == null) { + uniqueID = UUID.randomUUID().toString(); + } + return uniqueID; + } + + /** + * @param uniqueID the uniqueID to set + */ + public void setUniqueID(String uniqueID) { + this.uniqueID = uniqueID; + } + } diff --git a/src/clickTrainDetector/classification/simplechi2classifier/Chi2ThresholdClassifier.java b/src/clickTrainDetector/classification/simplechi2classifier/Chi2ThresholdClassifier.java index 8cca8403..e7b78e7d 100644 --- a/src/clickTrainDetector/classification/simplechi2classifier/Chi2ThresholdClassifier.java +++ b/src/clickTrainDetector/classification/simplechi2classifier/Chi2ThresholdClassifier.java @@ -119,14 +119,13 @@ public class Chi2ThresholdClassifier implements CTClassifier { public void createDataSelector(PamDataBlock source) { //System.out.println("Create data selector " +" " + clssfrParams.classifierName + " " + clssfrParams.speciesFlag + " " + clssfrParams.uniqueID ); - if (clssfrParams.uniqueID==null) clssfrParams.newUniqueID(); if (dataSelector==null || dataSelector.getPamDataBlock()!=source) { //create the data selector //System.out.println("Data selector: " + dataSelector); if (source!=null) { - dataSelector=source.getDataSelectCreator().getDataSelector(clickTrainControl.getUnitName() + "_" + clssfrParams.uniqueID + dataSelector=source.getDataSelectCreator().getDataSelector(clickTrainControl.getUnitName() + "_" + clssfrParams.getUniqueID() + "_X2_threshold_classifier", false, null); } else { diff --git a/src/clickTrainDetector/dataselector/CTDataSelector.java b/src/clickTrainDetector/dataselector/CTDataSelector.java index 1c6bdade..8fd9e4d7 100644 --- a/src/clickTrainDetector/dataselector/CTDataSelector.java +++ b/src/clickTrainDetector/dataselector/CTDataSelector.java @@ -131,6 +131,10 @@ public class CTDataSelector extends DataSelector { CTDataUnit clickTrain = (CTDataUnit) ctDataUnit; if (clickTrain.ctClassifications==null) return false; + + if (ctSelectParams.classifier == null) { + return false; + } int nClass = clickTrain.ctClassifications.size(); if (ctSelectParams.allowMultipleChoices == false) { diff --git a/src/clickTrainDetector/layout/classification/simplechi2classifier/SimpleCTClassifierPane.java b/src/clickTrainDetector/layout/classification/simplechi2classifier/SimpleCTClassifierPane.java index 8ee87ba5..fa2d9a84 100644 --- a/src/clickTrainDetector/layout/classification/simplechi2classifier/SimpleCTClassifierPane.java +++ b/src/clickTrainDetector/layout/classification/simplechi2classifier/SimpleCTClassifierPane.java @@ -229,7 +229,7 @@ public class SimpleCTClassifierPane extends SettingsPane { simpleChi2Classifier.getDataSelector().getDialogPaneFX().getParams(true); } if (this.currParams != null) { - currParams.uniqueID = this.currParams.uniqueID; + currParams.setUniqueID(this.currParams.getUniqueID()); } return this.currParams=currParams;