package gui; import static javafx.scene.control.Alert.AlertType.*; import java.util.HashMap; import java.util.Locale; import javafx.scene.control.Alert; import javafx.scene.control.Label; import javafx.scene.layout.Pane; public class Messages { // warnings & errors public static String WARNING_ONLY_NUMBERS_ALLOWED = I18N.get("message.WARNING_ONLY_NUMBERS_ALLOWED"); public static String WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES = I18N.get("message.WARNING_MISMATCHED_NGRAM_AND_TOKENS_VALUES"); public static String WARNING_MISSING_STRING_LENGTH = I18N.get("message.WARNING_MISSING_STRING_LENGTH"); public static String ERROR_WHILE_EXECUTING = I18N.get("message.ERROR_WHILE_EXECUTING"); public static String ERROR_WHILE_SAVING_RESULTS_TO_CSV = I18N.get("message.ERROR_WHILE_SAVING_RESULTS_TO_CSV"); public static String ERROR_NOT_ENOUGH_MEMORY= I18N.get("message.ERROR_NOT_ENOUGH_MEMORY"); // general notifications - static content/set only once public static String NOTIFICATION_ANALYSIS_COMPLETED = I18N.get("message.NOTIFICATION_ANALYSIS_COMPLETED"); public static String NOTIFICATION_ANALYSIS_COMPLETED_NO_RESULTS = I18N.get("message.NOTIFICATION_ANALYSIS_COMPLETED_NO_RESULTS"); // ongoing notifications - displayed while processing, dynamically changing public static String ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y = I18N.get("message.ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y"); public static String CANCELING_NOTIFICATION = I18N.get("message.CANCELING_NOTIFICATION"); // Labels public static String LABEL_CORPUS_LOCATION_NOT_SET = I18N.get("message.LABEL_CORPUS_LOCATION_NOT_SET"); public static String LABEL_RESULTS_LOCATION_NOT_SET = I18N.get("message.LABEL_RESULTS_LOCATION_NOT_SET"); public static String TOOLTIP_readNotePunctuationsChB = I18N.get("message.TOOLTIP_readNotePunctuationsChB"); public static String TOOLTIP_readDisplayTaxonomyChB = I18N.get("message.TOOLTIP_readDisplayTaxonomyChB"); private static Label chooseCorpusL; private static String chooseCorpusLabelContent; private static String[] chooseCorpusLabelProperties; private static Pane paneSlo; private static Pane paneEng; // Not properly to be here. TODO move somewhere else in future public static String HELP_URL = "http://slovnica.ijs.si/"; public static String CJVT_URL = "http://hdl.handle.net/11356/1227"; public static String GITHUB_URL = "https://gitea.cjvt.si/lkrsnik/list"; // helper maps /** * Typical window titles * ERROR = "Napaka" * WARNING = "Opozorilo" * CONFIRMATION = "Potrdilo" */ static HashMap windowTitles = new HashMap<>(); static { // automatically set window's title windowTitles.put(ERROR, I18N.get("windowTitles.error")); windowTitles.put(WARNING, I18N.get("windowTitles.warning")); windowTitles.put(CONFIRMATION, I18N.get("windowTitles.confirmation")); } public static void reload(){ LABEL_CORPUS_LOCATION_NOT_SET = I18N.createStringBinding("message.LABEL_CORPUS_LOCATION_NOT_SET").get(); windowTitles = new HashMap<>(); windowTitles.put(ERROR, I18N.get("windowTitles.error")); windowTitles.put(WARNING, I18N.get("windowTitles.warning")); windowTitles.put(CONFIRMATION, I18N.get("windowTitles.confirmation")); if(I18N.getLocale().equals(Locale.ENGLISH)){ paneSlo.setVisible(false); paneEng.setVisible(true); } else { paneSlo.setVisible(true); paneEng.setVisible(false); } } public static void setPane(Pane paneSl, Pane paneEn){ paneSlo = paneSl; paneEng = paneEn; } public static void setChooseCorpusL(Label chooseCorpus, String chooseCorpusLabel){ chooseCorpusL = chooseCorpus; chooseCorpusLabelContent = chooseCorpusLabel; chooseCorpusL.textProperty().unbind(); chooseCorpusL.setText(chooseCorpusLabelContent); } public static void setChooseCorpusProperties(String corpusLoc, String corpusFilesSi, String corpusName){ chooseCorpusLabelProperties = new String[3]; chooseCorpusLabelProperties[0] = corpusLoc; chooseCorpusLabelProperties[1] = corpusFilesSi; chooseCorpusLabelProperties[2] = corpusName; } public static void updateChooseCorpusL(){ if (chooseCorpusLabelProperties != null && chooseCorpusLabelProperties[0] != null && chooseCorpusLabelProperties[1] != null && chooseCorpusLabelProperties[2] != null) { StringBuilder sb = new StringBuilder(); sb.append(chooseCorpusLabelProperties[0]) .append("\n") .append(String.format(I18N.get("message.NOTIFICATION_FOUND_X_FILES"), chooseCorpusLabelProperties[1])) .append("\n") .append(String.format(I18N.get("message.NOTIFICATION_CORPUS"), chooseCorpusLabelProperties[2])); chooseCorpusLabelContent = sb.toString(); if (chooseCorpusL != null) { chooseCorpusL.textProperty().unbind(); chooseCorpusL.setText(chooseCorpusLabelContent); } } } }