@ -37,6 +37,10 @@ public class OneWordAnalysisTab {
private ArrayList < Pattern > msd ;
private ArrayList < String > msdStrings ;
@FXML
private CheckComboBox < String > alsoVisualizeCCB ;
private ArrayList < String > alsoVisualize ;
@FXML
private CheckComboBox < String > taxonomyCCB ;
private ArrayList < String > taxonomy ;
@ -49,6 +53,9 @@ public class OneWordAnalysisTab {
@FXML
private Button computeNgramsB ;
@FXML
private Button cancel ;
@FXML
public ProgressBar ngramProgressBar ;
@FXML
@ -73,7 +80,8 @@ public class OneWordAnalysisTab {
private static final ObservableList < String > N_GRAM_COMPUTE_FOR_WORDS = FXCollections . observableArrayList ( "lema" , "različnica" , "oblikoskladenjska oznaka" ) ;
private static final ObservableList < String > N_GRAM_COMPUTE_FOR_LETTERS = FXCollections . observableArrayList ( "lema" , "različnica" ) ;
private static final ObservableList < String > N_GRAM_COMPUTE_FOR_WORDS_ORTH = FXCollections . observableArrayList ( "različnica" ) ;
private static final ObservableList < String > alsoVisualizeItemsLemma = FXCollections . observableArrayList ( "besedna vrsta" , "oblikoskladenjska oznaka" ) ;
private static final ObservableList < String > alsoVisualizeItemsDifferential = FXCollections . observableArrayList ( "lema" , "besedna vrsta" , "oblikoskladenjska oznaka" ) ;
// TODO: pass observables for taxonomy based on header scan
// after header scan
@ -126,6 +134,16 @@ public class OneWordAnalysisTab {
msdTF . setText ( "" ) ;
msd = new ArrayList < > ( ) ;
alsoVisualizeCCB . getItems ( ) . removeAll ( ) ;
alsoVisualizeCCB . getItems ( ) . setAll ( alsoVisualizeItemsLemma ) ;
alsoVisualizeCCB . getCheckModel ( ) . getCheckedItems ( ) . addListener ( ( ListChangeListener < String > ) c - > {
alsoVisualize = new ArrayList < > ( ) ;
ObservableList < String > checkedItems = alsoVisualizeCCB . getCheckModel ( ) . getCheckedItems ( ) ;
alsoVisualize . addAll ( checkedItems ) ;
logger . info ( String . format ( "Selected also visualize items: %s" , StringUtils . join ( checkedItems , "," ) ) ) ;
} ) ;
alsoVisualizeCCB . getCheckModel ( ) . clearChecks ( ) ;
// taxonomy
if ( Tax . getCorpusTypesWithTaxonomy ( ) . contains ( corpus . getCorpusType ( ) ) ) {
taxonomyCCB . getItems ( ) . removeAll ( ) ;
@ -334,6 +352,10 @@ public class OneWordAnalysisTab {
for ( File f : corpusFiles ) {
readXML ( f . toString ( ) , statistic ) ;
i + + ;
if ( isCancelled ( ) ) {
updateMessage ( CANCELING_NOTIFICATION ) ;
break ;
}
this . updateProgress ( i , corpusFiles . size ( ) ) ;
this . updateMessage ( String . format ( ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y , i , corpusFiles . size ( ) , f . getName ( ) ) ) ;
}
@ -374,6 +396,21 @@ public class OneWordAnalysisTab {
progressLabel . setText ( "" ) ;
} ) ;
task . setOnCancelled ( e - > {
showAlert ( Alert . AlertType . INFORMATION , Messages . NOTIFICATION_ANALYSIS_CANCLED ) ;
ngramProgressBar . progressProperty ( ) . unbind ( ) ;
ngramProgressBar . setProgress ( 0.0 ) ;
ngramProgressBar . setStyle ( Settings . FX_ACCENT_OK ) ;
progressLabel . textProperty ( ) . unbind ( ) ;
progressLabel . setText ( "" ) ;
} ) ;
// When cancel button is pressed cancel analysis
cancel . setOnAction ( e - > {
task . cancel ( ) ;
logger . info ( "cancel button" ) ;
} ) ;
final Thread thread = new Thread ( task , "task" ) ;
thread . setDaemon ( true ) ;
thread . start ( ) ;