From a542c07b516fc3d221bb316a2fe0d32e16daf482 Mon Sep 17 00:00:00 2001 From: berndmoos Date: Mon, 27 May 2024 14:10:21 +0200 Subject: [PATCH] #453 --- .../actions/CheckStructureErrorsAction.java | 3 ++- .../comafunctions/StructureErrorsChecker.java | 22 +++++++++++++++++- .../partitureditor/jexmaralda/BasicBody.java | 11 +++++++++ .../ChooseStructureChecksDialog.form | 23 +++++++++++++------ .../ChooseStructureChecksDialog.java | 19 +++++++++------ 5 files changed, 62 insertions(+), 16 deletions(-) diff --git a/src/org/exmaralda/coma/actions/CheckStructureErrorsAction.java b/src/org/exmaralda/coma/actions/CheckStructureErrorsAction.java index bf2c5f30..1322967d 100644 --- a/src/org/exmaralda/coma/actions/CheckStructureErrorsAction.java +++ b/src/org/exmaralda/coma/actions/CheckStructureErrorsAction.java @@ -54,7 +54,8 @@ public void actionPerformed(ActionEvent e) { dialog.duplicateTranscriptionTiersCheckBox.isSelected(), dialog.orphanedAnnotationTiersCheckBox.isSelected(), dialog.annotationMismatchesCheckBox.isSelected(), - dialog.temporalAnomaliesCheckBox.isSelected() + dialog.temporalAnomaliesCheckBox.isSelected(), + dialog.stratificationCheckBox.isSelected() ); pbd = new ProgressBarDialog(coma, false); diff --git a/src/org/exmaralda/common/corpusbuild/comafunctions/StructureErrorsChecker.java b/src/org/exmaralda/common/corpusbuild/comafunctions/StructureErrorsChecker.java index 1583e12e..68169c8e 100644 --- a/src/org/exmaralda/common/corpusbuild/comafunctions/StructureErrorsChecker.java +++ b/src/org/exmaralda/common/corpusbuild/comafunctions/StructureErrorsChecker.java @@ -7,6 +7,7 @@ import java.net.URISyntaxException; import java.util.Hashtable; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.exmaralda.common.corpusbuild.AbstractCorpusChecker; @@ -27,16 +28,26 @@ public class StructureErrorsChecker extends AbstractCorpusChecker { boolean checkOrphanedAnnotationTiers = true; boolean checkAnnotationMismatches = true; boolean checkTemporalAnomalies = true; + boolean checkStratification = true; - public StructureErrorsChecker(boolean orphanedT, boolean duplicateT, boolean orphanedA, boolean aMismatch, boolean tAnomalie) { + public StructureErrorsChecker(boolean orphanedT, boolean duplicateT, boolean orphanedA, boolean aMismatch, boolean tAnomalie, boolean strat) { checkOrphanedTranscriptionTiers = orphanedT; checkDuplicateTranscriptionTiers = duplicateT; checkOrphanedAnnotationTiers = orphanedA; checkAnnotationMismatches = aMismatch; checkTemporalAnomalies = tAnomalie; + checkStratification = strat; } + public StructureErrorsChecker(boolean orphanedT, boolean duplicateT, boolean orphanedA, boolean aMismatch, boolean tAnomalie) { + checkOrphanedTranscriptionTiers = orphanedT; + checkDuplicateTranscriptionTiers = duplicateT; + checkOrphanedAnnotationTiers = orphanedA; + checkAnnotationMismatches = aMismatch; + checkTemporalAnomalies = tAnomalie; + checkStratification = false; + } @Override @@ -92,6 +103,15 @@ public void processTranscription(BasicTranscription bt, String currentFilename) addError(currentFilename, "", tliID, text); } } + + if (checkStratification){ + List nonStratifiedTiers = bt.getBody().getNonStratifiedTiers(); + String text = "Tier is not stratified"; + for (String tierID : nonStratifiedTiers){ + addError(currentFilename, tierID, "", text); + } + + } } diff --git a/src/org/exmaralda/partitureditor/jexmaralda/BasicBody.java b/src/org/exmaralda/partitureditor/jexmaralda/BasicBody.java index d8884c2f..65a153de 100644 --- a/src/org/exmaralda/partitureditor/jexmaralda/BasicBody.java +++ b/src/org/exmaralda/partitureditor/jexmaralda/BasicBody.java @@ -646,7 +646,18 @@ public void stratify(short method){ } } } + } + } + + public List getNonStratifiedTiers(){ + List result = new ArrayList<>(); + for (int pos=0; pos + @@ -32,13 +33,13 @@ - + - + @@ -47,8 +48,7 @@ - - + @@ -57,7 +57,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -75,7 +75,16 @@ - + + + + + + + + + + diff --git a/src/org/exmaralda/partitureditor/jexmaraldaswing/ChooseStructureChecksDialog.java b/src/org/exmaralda/partitureditor/jexmaraldaswing/ChooseStructureChecksDialog.java index c372b4b4..ea8fde60 100644 --- a/src/org/exmaralda/partitureditor/jexmaraldaswing/ChooseStructureChecksDialog.java +++ b/src/org/exmaralda/partitureditor/jexmaraldaswing/ChooseStructureChecksDialog.java @@ -38,35 +38,39 @@ private void initComponents() { orphanedAnnotationTiersCheckBox = new javax.swing.JCheckBox(); annotationMismatchesCheckBox = new javax.swing.JCheckBox(); temporalAnomaliesCheckBox = new javax.swing.JCheckBox(); + stratificationCheckBox = new javax.swing.JCheckBox(); jPanel1 = new javax.swing.JPanel(); okButton = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Structure checks"); - mainPanel.setLayout(new java.awt.GridLayout(5, 1)); + mainPanel.setLayout(new java.awt.GridLayout(6, 1)); orphanedTranscriptionTiersCheckBox.setSelected(true); - orphanedTranscriptionTiersCheckBox.setText("Orphaned transcription tiers"); + orphanedTranscriptionTiersCheckBox.setText("Orphaned transcription tiers - Transcription tiers without a speaker"); mainPanel.add(orphanedTranscriptionTiersCheckBox); duplicateTranscriptionTiersCheckBox.setSelected(true); - duplicateTranscriptionTiersCheckBox.setText("Duplicate transcription tiers"); - duplicateTranscriptionTiersCheckBox.setActionCommand("Duplicate transcription tiers"); + duplicateTranscriptionTiersCheckBox.setText("Duplicate transcription tiers - Two or more transcription tiers with the same speaker"); mainPanel.add(duplicateTranscriptionTiersCheckBox); orphanedAnnotationTiersCheckBox.setSelected(true); - orphanedAnnotationTiersCheckBox.setText("Orphaned annotation tiers"); + orphanedAnnotationTiersCheckBox.setText("Orphaned annotation tiers - Annotation tiers without a transcription tier with the same speaker"); mainPanel.add(orphanedAnnotationTiersCheckBox); annotationMismatchesCheckBox.setSelected(true); - annotationMismatchesCheckBox.setText("Annotation mismatches"); + annotationMismatchesCheckBox.setText("Annotation mismatches - Annotations without a matching sequence of events in the corresponding transcription tier"); mainPanel.add(annotationMismatchesCheckBox); temporalAnomaliesCheckBox.setSelected(true); - temporalAnomaliesCheckBox.setText("Temporal anomalies"); + temporalAnomaliesCheckBox.setText("Temporal anomalies - Absolute time values in the timeline not making sense"); mainPanel.add(temporalAnomaliesCheckBox); + stratificationCheckBox.setSelected(true); + stratificationCheckBox.setText("Stratification - Overlapping events within a tier"); + mainPanel.add(stratificationCheckBox); + getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); okButton.setText("OK"); @@ -111,6 +115,7 @@ public void windowClosing(java.awt.event.WindowEvent e) { private javax.swing.JButton okButton; public javax.swing.JCheckBox orphanedAnnotationTiersCheckBox; public javax.swing.JCheckBox orphanedTranscriptionTiersCheckBox; + public javax.swing.JCheckBox stratificationCheckBox; public javax.swing.JCheckBox temporalAnomaliesCheckBox; // End of variables declaration//GEN-END:variables