You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.3 KiB

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 headerL;
@FXML
public Label descriptionL;
@FXML
public Label signatureL;
@FXML
public Label footerL;
@FXML
public Label linksL;
@FXML
private Hyperlink cjvtH;
@FXML
private Hyperlink githubH;
@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");
});
cjvtH.setOnAction(e -> openCjvtWebsite());
githubH.setOnAction(e -> openGithubWebsite());
}
private void manageTranslations(){
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
headerL.textProperty().bind(I18N.createStringBinding("about.header"));
descriptionL.textProperty().bind(I18N.createStringBinding("about.description"));
signatureL.textProperty().bind(I18N.createStringBinding("about.signature"));
footerL.textProperty().bind(I18N.createStringBinding("about.footer"));
linksL.textProperty().bind(I18N.createStringBinding("about.links"));
// 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;
}
}