Fixed multiple notifications for one Error bug

master
Luka 5 years ago
parent 82d111eade
commit 39624fa4f2

@ -175,6 +175,9 @@ public class CharacterAnalysisTab {
private boolean useDb; private boolean useDb;
private HostServices hostService; private HostServices hostService;
private ListChangeListener<String> taxonomyListener; private ListChangeListener<String> taxonomyListener;
private ChangeListener<Boolean> msdListener;
private ChangeListener<Boolean> minimalOccurrencesListener;
private ChangeListener<Boolean> minimalTaxonomyListener;
private static final String [] N_GRAM_COMPUTE_FOR_LETTERS_ARRAY = {"calculateFor.WORD", "calculateFor.LEMMA"}; private static final String [] N_GRAM_COMPUTE_FOR_LETTERS_ARRAY = {"calculateFor.WORD", "calculateFor.LEMMA"};
private static final ArrayList<String> N_GRAM_COMPUTE_FOR_LETTERS = new ArrayList<>(Arrays.asList(N_GRAM_COMPUTE_FOR_LETTERS_ARRAY)); private static final ArrayList<String> N_GRAM_COMPUTE_FOR_LETTERS = new ArrayList<>(Arrays.asList(N_GRAM_COMPUTE_FOR_LETTERS_ARRAY));
@ -236,36 +239,44 @@ public class CharacterAnalysisTab {
taxonomySetOperationCB.getSelectionModel().select(0); taxonomySetOperationCB.getSelectionModel().select(0);
// msd if (msdListener != null){
msdTF.focusedProperty().addListener((observable, oldValue, newValue) -> { msdTF.focusedProperty().removeListener(msdListener);
if (!newValue) { }
// focus lost
String value = msdTF.getText();
logger.info("msdTf: ", value);
if (!ValidationUtil.isEmpty(value)) { // msd
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" "))); msdListener = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = msdTF.getText();
logger.info("msdTf: ", value);
if (!ValidationUtil.isEmpty(value)) {
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
int nOfRequiredMsdTokens = 1;
if (msdTmp.size() != nOfRequiredMsdTokens) {
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size());
logAlert(msg);
showAlert(Alert.AlertType.ERROR, msg);
}
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
int nOfRequiredMsdTokens = 1; } else if (!ValidationUtil.isEmpty(newValue)) {
if (msdTmp.size() != nOfRequiredMsdTokens) { msd = new ArrayList<>();
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size()); msdStrings = new ArrayList<>();
logAlert(msg);
showAlert(Alert.AlertType.ERROR, msg);
} }
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
} }
} }
}); };
msdTF.focusedProperty().addListener(msdListener);
msdTF.setText(""); msdTF.setText("");
msd = new ArrayList<>(); msd = new ArrayList<>();
@ -381,41 +392,59 @@ public class CharacterAnalysisTab {
minimalTaxonomyTF.setDisable(true); minimalTaxonomyTF.setDisable(true);
minimalOccurrencesTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalOccurrencesListener != null){
if (!newValue) { minimalOccurrencesTF.focusedProperty().removeListener(minimalOccurrencesListener);
// focus lost }
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) { // msd
if (!ValidationUtil.isNumber(value)) { minimalOccurrencesListener = new ChangeListener<Boolean>() {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalOccurrences = Integer.parseInt(value);
}
} else { } else {
minimalOccurrences = Integer.parseInt(value); minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} else {
minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} }
}); };
minimalOccurrencesTF.focusedProperty().addListener(minimalOccurrencesListener);
minimalTaxonomyTF.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue) { if (minimalTaxonomyListener != null){
// focus lost minimalTaxonomyTF.focusedProperty().removeListener(minimalTaxonomyListener);
String value = minimalTaxonomyTF.getText(); }
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) { minimalTaxonomyListener = new ChangeListener<Boolean>() {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalTaxonomyTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalTaxonomy = Integer.parseInt(value);
}
} else { } else {
minimalTaxonomy = Integer.parseInt(value); minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} else {
minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} }
}); };
minimalTaxonomyTF.focusedProperty().addListener(minimalTaxonomyListener);
computeNgramsB.setOnAction(e -> { computeNgramsB.setOnAction(e -> {
compute(); compute();

@ -192,6 +192,10 @@ public class OneWordAnalysisTab {
private ListChangeListener<String> taxonomyListener; private ListChangeListener<String> taxonomyListener;
private ListChangeListener<String> alsoVisualizeListener; private ListChangeListener<String> alsoVisualizeListener;
private ChangeListener<String> calculateForListener; private ChangeListener<String> calculateForListener;
private ChangeListener<Boolean> msdListener;
private ChangeListener<Boolean> minimalOccurrencesListener;
private ChangeListener<Boolean> minimalTaxonomyListener;
private ChangeListener<Boolean> minimalRelFreListener;
// 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_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_LETTERS = FXCollections.observableArrayList("lema", "različnica");
@ -367,36 +371,45 @@ public class OneWordAnalysisTab {
taxonomySetOperationCB.getSelectionModel().select(0); taxonomySetOperationCB.getSelectionModel().select(0);
if (msdListener != null){
msdTF.focusedProperty().removeListener(msdListener);
}
// msd // msd
msdTF.focusedProperty().addListener((observable, oldValue, newValue) -> { msdListener = new ChangeListener<Boolean>() {
if (!newValue) { @Override
// focus lost public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
String value = msdTF.getText(); if (!newValue) {
logger.info("msdTf: ", value); // focus lost
String value = msdTF.getText();
if (!ValidationUtil.isEmpty(value)) { logger.info("msdTf: ", value);
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
if (!ValidationUtil.isEmpty(value)) {
int nOfRequiredMsdTokens = 1; ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
if (msdTmp.size() != nOfRequiredMsdTokens) {
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size()); int nOfRequiredMsdTokens = 1;
logAlert(msg); if (msdTmp.size() != nOfRequiredMsdTokens) {
showAlert(Alert.AlertType.ERROR, msg); String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size());
} logAlert(msg);
msd = new ArrayList<>(); showAlert(Alert.AlertType.ERROR, msg);
msdStrings = new ArrayList<>(); }
for (String msdToken : msdTmp) { msd = new ArrayList<>();
msd.add(Pattern.compile(msdToken)); msdStrings = new ArrayList<>();
msdStrings.add(msdToken); for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
} }
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
} }
} }
}); };
msdTF.focusedProperty().addListener(msdListener);
msdTF.setText(""); msdTF.setText("");
msd = new ArrayList<>(); msd = new ArrayList<>();
@ -535,63 +548,89 @@ public class OneWordAnalysisTab {
minimalTaxonomyTF.setDisable(true); minimalTaxonomyTF.setDisable(true);
minimalOccurrencesTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalOccurrencesListener != null){
if (!newValue) { minimalOccurrencesTF.focusedProperty().removeListener(minimalOccurrencesListener);
// focus lost }
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) { // msd
if (!ValidationUtil.isNumber(value)) { minimalOccurrencesListener = new ChangeListener<Boolean>() {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalOccurrences = Integer.parseInt(value);
}
} else { } else {
minimalOccurrences = Integer.parseInt(value); minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} else {
minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} }
}); };
minimalOccurrencesTF.focusedProperty().addListener(minimalOccurrencesListener);
minimalTaxonomyTF.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue) { if (minimalTaxonomyListener != null){
// focus lost minimalTaxonomyTF.focusedProperty().removeListener(minimalTaxonomyListener);
String value = minimalTaxonomyTF.getText(); }
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) { minimalTaxonomyListener = new ChangeListener<Boolean>() {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalTaxonomyTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalTaxonomy = Integer.parseInt(value);
}
} else { } else {
minimalTaxonomy = Integer.parseInt(value); minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} else {
minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} }
}); };
minimalTaxonomyTF.focusedProperty().addListener(minimalTaxonomyListener);
// set default values // set default values
minimalRelFreTF.setText("1"); minimalRelFreTF.setText("1");
minimalRelFre = 1; minimalRelFre = 1;
minimalRelFreTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalRelFreListener != null){
if (!newValue) { minimalRelFreTF.focusedProperty().removeListener(minimalRelFreListener);
// focus lost }
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) { minimalRelFreListener = new ChangeListener<Boolean>() {
if (!ValidationUtil.isNumber(value)) { @Override
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); if (!newValue) {
// focus lost
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalRelFre = Integer.parseInt(value);
}
} else { } else {
minimalRelFre = Integer.parseInt(value); minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} else {
minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} }
}); };
minimalRelFreTF.focusedProperty().addListener(minimalRelFreListener);
changeLanguageB.setOnAction(e -> { changeLanguageB.setOnAction(e -> {

@ -232,6 +232,10 @@ public class StringAnalysisTabNew2 {
private ListChangeListener<String> alsoVisualizeListener; private ListChangeListener<String> alsoVisualizeListener;
private ListChangeListener<String> collocabilityListener; private ListChangeListener<String> collocabilityListener;
private ChangeListener<String> calculateForListener; private ChangeListener<String> calculateForListener;
private ChangeListener<Boolean> msdListener;
private ChangeListener<Boolean> minimalOccurrencesListener;
private ChangeListener<Boolean> minimalTaxonomyListener;
private ChangeListener<Boolean> minimalRelFreListener;
// 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_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_LETTERS = FXCollections.observableArrayList("lema", "različnica");
@ -318,9 +322,6 @@ public class StringAnalysisTabNew2 {
ngramValue = 2; // actual value at that index ngramValue = 2; // actual value at that index
// set default values // set default values
minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
minimalTaxonomyTF.setText("1"); minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1; minimalTaxonomy = 1;
@ -511,35 +512,44 @@ public class StringAnalysisTabNew2 {
// msd // msd
msdTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (msdListener != null){
if (!newValue) { msdTF.focusedProperty().removeListener(msdListener);
// focus lost }
String value = msdTF.getText();
logger.info("msdTf: ", value);
if (!ValidationUtil.isEmpty(value)) {
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
int nOfRequiredMsdTokens = ngramValue == 0 ? 1 : ngramValue;
if (msdTmp.size() != nOfRequiredMsdTokens) {
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size());
logAlert(msg);
showAlert(Alert.AlertType.ERROR, msg);
}
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) { // msd
msd = new ArrayList<>(); msdListener = new ChangeListener<Boolean>() {
msdStrings = new ArrayList<>(); @Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = msdTF.getText();
logger.info("msdTf: ", value);
if (!ValidationUtil.isEmpty(value)) {
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
int nOfRequiredMsdTokens = ngramValue == 0 ? 1 : ngramValue;
if (msdTmp.size() != nOfRequiredMsdTokens) {
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size());
logAlert(msg);
showAlert(Alert.AlertType.ERROR, msg);
}
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
}
} }
} }
}); };
msdTF.focusedProperty().addListener(msdListener);
msdTF.setText(""); msdTF.setText("");
msd = new ArrayList<>(); msd = new ArrayList<>();
@ -662,63 +672,92 @@ public class StringAnalysisTabNew2 {
// } // }
// }); // });
minimalOccurrencesTF.focusedProperty().addListener((observable, oldValue, newValue) -> { minimalOccurrencesTF.setText("1");
if (!newValue) { minimalOccurrences = 1;
// focus lost
String value = minimalOccurrencesTF.getText(); if (minimalOccurrencesListener != null){
if (!ValidationUtil.isEmpty(value)) { minimalOccurrencesTF.focusedProperty().removeListener(minimalOccurrencesListener);
if (!ValidationUtil.isNumber(value)) { }
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); // msd
minimalOccurrencesListener = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalOccurrences = Integer.parseInt(value);
}
} else { } else {
minimalOccurrences = Integer.parseInt(value); minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} else {
minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} }
}); };
minimalOccurrencesTF.focusedProperty().addListener(minimalOccurrencesListener);
minimalTaxonomyTF.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue) { if (minimalTaxonomyListener != null){
// focus lost minimalTaxonomyTF.focusedProperty().removeListener(minimalTaxonomyListener);
String value = minimalTaxonomyTF.getText(); }
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) { minimalTaxonomyListener = new ChangeListener<Boolean>() {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalTaxonomyTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalTaxonomy = Integer.parseInt(value);
}
} else { } else {
minimalTaxonomy = Integer.parseInt(value); minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} else {
minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} }
}); };
minimalTaxonomyTF.focusedProperty().addListener(minimalTaxonomyListener);
// set default values // set default values
minimalRelFreTF.setText("1"); minimalRelFreTF.setText("1");
minimalRelFre = 1; minimalRelFre = 1;
minimalRelFreTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalRelFreListener != null){
if (!newValue) { minimalRelFreTF.focusedProperty().removeListener(minimalRelFreListener);
// focus lost }
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) { minimalRelFreListener = new ChangeListener<Boolean>() {
if (!ValidationUtil.isNumber(value)) { @Override
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); if (!newValue) {
// focus lost
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalRelFre = Integer.parseInt(value);
}
} else { } else {
minimalRelFre = Integer.parseInt(value); minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} else {
minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} }
}); };
minimalRelFreTF.focusedProperty().addListener(minimalRelFreListener);
changeLanguageB.setOnAction(e -> { changeLanguageB.setOnAction(e -> {

@ -221,6 +221,10 @@ public class WordLevelTab {
private ListChangeListener<String> taxonomyListener; private ListChangeListener<String> taxonomyListener;
private ListChangeListener<String> alsoVisualizeListener; private ListChangeListener<String> alsoVisualizeListener;
private ChangeListener<String> calculateForListener; private ChangeListener<String> calculateForListener;
private ChangeListener<Boolean> msdListener;
private ChangeListener<Boolean> minimalOccurrencesListener;
private ChangeListener<Boolean> minimalTaxonomyListener;
private ChangeListener<Boolean> minimalRelFreListener;
// private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS = FXCollections.observableArrayList("lema", "različnica"); // private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS = FXCollections.observableArrayList("lema", "različnica");
// private static final ObservableList<String> N_GRAM_COMPUTE_FOR_LETTERS = FXCollections.observableArrayList("lema", "različnica"); // private static final ObservableList<String> N_GRAM_COMPUTE_FOR_LETTERS = FXCollections.observableArrayList("lema", "različnica");
@ -491,36 +495,45 @@ public class WordLevelTab {
// prefixLengthCB.setDisable(true); // prefixLengthCB.setDisable(true);
if (msdListener != null){
msdTF.focusedProperty().removeListener(msdListener);
}
// msd // msd
msdTF.focusedProperty().addListener((observable, oldValue, newValue) -> { msdListener = new ChangeListener<Boolean>() {
if (!newValue) { @Override
// focus lost public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
String value = msdTF.getText(); if (!newValue) {
logger.info("msdTf: ", value); // focus lost
String value = msdTF.getText();
if (!ValidationUtil.isEmpty(value)) { logger.info("msdTf: ", value);
ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
if (!ValidationUtil.isEmpty(value)) {
int nOfRequiredMsdTokens = 1; ArrayList<String> msdTmp = new ArrayList<>(Arrays.asList(value.split(" ")));
if (msdTmp.size() != nOfRequiredMsdTokens) {
String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size()); int nOfRequiredMsdTokens = 1;
logAlert(msg); if (msdTmp.size() != nOfRequiredMsdTokens) {
showAlert(Alert.AlertType.ERROR, msg); String msg = String.format(I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"), nOfRequiredMsdTokens, msdTmp.size());
} logAlert(msg);
msd = new ArrayList<>(); showAlert(Alert.AlertType.ERROR, msg);
msdStrings = new ArrayList<>(); }
for (String msdToken : msdTmp) { msd = new ArrayList<>();
msd.add(Pattern.compile(msdToken)); msdStrings = new ArrayList<>();
msdStrings.add(msdToken); for (String msdToken : msdTmp) {
msd.add(Pattern.compile(msdToken));
msdStrings.add(msdToken);
}
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
} }
logger.info(String.format("msd accepted (%d)", msd.size()));
} else if (!ValidationUtil.isEmpty(newValue)) {
msd = new ArrayList<>();
msdStrings = new ArrayList<>();
} }
} }
}); };
msdTF.focusedProperty().addListener(msdListener);
msdTF.setText(""); msdTF.setText("");
msd = new ArrayList<>(); msd = new ArrayList<>();
@ -644,63 +657,89 @@ public class WordLevelTab {
minimalTaxonomyTF.setDisable(true); minimalTaxonomyTF.setDisable(true);
minimalOccurrencesTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalOccurrencesListener != null){
if (!newValue) { minimalOccurrencesTF.focusedProperty().removeListener(minimalOccurrencesListener);
// focus lost }
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) { // msd
if (!ValidationUtil.isNumber(value)) { minimalOccurrencesListener = new ChangeListener<Boolean>() {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalOccurrencesTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalOccurrencesTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalOccurrences = Integer.parseInt(value);
}
} else { } else {
minimalOccurrences = Integer.parseInt(value); minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} else {
minimalOccurrencesTF.setText("1");
minimalOccurrences = 1;
} }
} }
}); };
minimalOccurrencesTF.focusedProperty().addListener(minimalOccurrencesListener);
minimalTaxonomyTF.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue) { if (minimalTaxonomyListener != null){
// focus lost minimalTaxonomyTF.focusedProperty().removeListener(minimalTaxonomyListener);
String value = minimalTaxonomyTF.getText(); }
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) { minimalTaxonomyListener = new ChangeListener<Boolean>() {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); @Override
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (!newValue) {
// focus lost
String value = minimalTaxonomyTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalTaxonomyTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalTaxonomy = Integer.parseInt(value);
}
} else { } else {
minimalTaxonomy = Integer.parseInt(value); minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} else {
minimalTaxonomyTF.setText("1");
minimalTaxonomy = 1;
} }
} }
}); };
minimalTaxonomyTF.focusedProperty().addListener(minimalTaxonomyListener);
// set default values // set default values
minimalRelFreTF.setText("1"); minimalRelFreTF.setText("1");
minimalRelFre = 1; minimalRelFre = 1;
minimalRelFreTF.focusedProperty().addListener((observable, oldValue, newValue) -> { if (minimalRelFreListener != null){
if (!newValue) { minimalRelFreTF.focusedProperty().removeListener(minimalRelFreListener);
// focus lost }
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) { minimalRelFreListener = new ChangeListener<Boolean>() {
if (!ValidationUtil.isNumber(value)) { @Override
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED")); if (!newValue) {
// focus lost
String value = minimalRelFreTF.getText();
if (!ValidationUtil.isEmpty(value)) {
if (!ValidationUtil.isNumber(value)) {
logAlert("minimalRelFreTF: " + I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
GUIController.showAlert(Alert.AlertType.ERROR, I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"));
} else {
minimalRelFre = Integer.parseInt(value);
}
} else { } else {
minimalRelFre = Integer.parseInt(value); minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} else {
minimalRelFreTF.setText("1");
minimalRelFre = 1;
} }
} }
}); };
minimalRelFreTF.focusedProperty().addListener(minimalRelFreListener);
changeLanguageB.setOnAction(e -> { changeLanguageB.setOnAction(e -> {

Loading…
Cancel
Save