package gui; import alg.XML_processing; import data.*; import javafx.application.HostServices; import javafx.beans.InvalidationListener; import javafx.beans.Observable; import javafx.beans.binding.StringBinding; import javafx.beans.property.ReadOnlyDoubleWrapper; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.concurrent.Task; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.controlsfx.control.CheckComboBox; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.*; import java.util.regex.Pattern; import static gui.GUIController.showAlert; @SuppressWarnings("Duplicates") public class AboutTab { public final static Logger logger = LogManager.getLogger(AboutTab.class); private HostServices hostService; @FXML public AnchorPane aboutTabPane; @FXML public Pane paneSlo; @FXML public Pane paneEng; @FXML public Label aboutL; @FXML private Hyperlink cjvtSH; @FXML private Hyperlink githubSH; @FXML private Hyperlink cjvtEH; @FXML private Hyperlink githubEH; @FXML private Button changeLanguageB; @FXML public ImageView stringLengthI; // TODO: pass observables for taxonomy based on header scan // after header scan public void initialize() { aboutTabPane.getStylesheets().add("style.css"); aboutTabPane.getStyleClass().add("root"); Messages.setPane(paneSlo, paneEng); manageTranslations(); changeLanguageB.setOnAction(e -> { if (I18N.getLocale() == new Locale.Builder().setLanguage("sl").setRegion("SI").build()){ I18N.setLocale(Locale.ENGLISH); } else { I18N.setLocale(new Locale.Builder().setLanguage("sl").setRegion("SI").build()); } Messages.reload(); Messages.updateChooseCorpusL(); logger.info("change language"); }); cjvtSH.setOnAction(e -> openCjvtWebsite()); githubSH.setOnAction(e -> openGithubWebsite()); cjvtEH.setOnAction(e -> openCjvtWebsite()); githubEH.setOnAction(e -> openGithubWebsite()); } private void manageTranslations(){ changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language")); aboutL.textProperty().bind(I18N.createStringBinding("about.text")); // calculateForL.textProperty().bind(I18N.createStringBinding("label.calculateFor")); // displayTaxonomyL.textProperty().bind(I18N.createStringBinding("label.displayTaxonomy")); // // addTooltipToImage(stringLengthI, I18N.createStringBinding("label.letter.stringLengthH")); } private void openCjvtWebsite(){ hostService.showDocument(Messages.CJVT_URL); } private void openGithubWebsite(){ hostService.showDocument(Messages.GITHUB_URL); } public void setHostServices(HostServices hostServices){ this.hostService = hostServices; } }