Added about page + help commented
This commit is contained in:
119
src/main/java/gui/AboutTab.java
Executable file
119
src/main/java/gui/AboutTab.java
Executable file
@@ -0,0 +1,119 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -148,8 +148,8 @@ public class CharacterAnalysisTab {
|
||||
@FXML
|
||||
public Label progressLabel;
|
||||
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
// @FXML
|
||||
// private Hyperlink helpH;
|
||||
|
||||
private enum MODE {
|
||||
LETTER
|
||||
@@ -429,7 +429,7 @@ public class CharacterAnalysisTab {
|
||||
});
|
||||
|
||||
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
|
||||
cancel.setVisible(false);
|
||||
}
|
||||
@@ -441,7 +441,7 @@ public class CharacterAnalysisTab {
|
||||
}
|
||||
|
||||
private void manageTranslations(){
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
computeNgramsB.textProperty().bind(I18N.createStringBinding("button.computeNgrams"));
|
||||
cancel.textProperty().bind(I18N.createStringBinding("button.cancel"));
|
||||
|
||||
@@ -122,13 +122,14 @@ public class CorpusTab {
|
||||
private ProgressIndicator locationScanPI;
|
||||
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
// private Hyperlink helpH;
|
||||
|
||||
// *** shared ***
|
||||
private Corpus corpus;
|
||||
private CorpusType corpusType;
|
||||
|
||||
// tabs - used to enable/disable
|
||||
private Tab aboutTab;
|
||||
private Tab stringLevelTabNew2;
|
||||
private Tab oneWordAnalysisTab;
|
||||
private Tab characterLevelTab;
|
||||
@@ -138,6 +139,7 @@ public class CorpusTab {
|
||||
private TabPane tabPane;
|
||||
private StringAnalysisTabNew2 satNew2Controller;
|
||||
private OneWordAnalysisTab oneWordTabController;
|
||||
private AboutTab aboutTabController;
|
||||
private CharacterAnalysisTab catController;
|
||||
private FiltersForSolar ffsController;
|
||||
// private WordFormationTab wfController;
|
||||
@@ -239,7 +241,7 @@ public class CorpusTab {
|
||||
|
||||
// add listeners
|
||||
chooseCorpusLocationB.setOnAction(e -> chooseCorpusLocation());
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
|
||||
readHeaderInfoChB.selectedProperty().addListener((observable, oldValue, newValue) -> {
|
||||
readHeaderInfo = newValue;
|
||||
@@ -279,7 +281,7 @@ public class CorpusTab {
|
||||
readHeaderInfoChB.textProperty().bind(I18N.createStringBinding("checkBox.readHeaderInfo"));
|
||||
chooseResultsLocationB.textProperty().bind(I18N.createStringBinding("button.chooseResultsLocation"));
|
||||
chooseResultsLocationL.textProperty().bind(I18N.createStringBinding("label.chooseResultsLocation"));
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
chooseCorpusL.textProperty().bind(I18N.createStringBinding("message.LABEL_CORPUS_LOCATION_NOT_SET"));
|
||||
chooseResultsL.textProperty().bind(I18N.createStringBinding("message.LABEL_RESULTS_LOCATION_NOT_SET"));
|
||||
@@ -531,6 +533,7 @@ public class CorpusTab {
|
||||
|
||||
if (ValidationUtil.isEmpty(readTaxonomy)) {
|
||||
// if no taxonomy found alert the user and keep other tabs disabled
|
||||
// aboutTab.setDisable(true);
|
||||
stringLevelTabNew2.setDisable(true);
|
||||
oneWordAnalysisTab.setDisable(true);
|
||||
characterLevelTab.setDisable(true);
|
||||
@@ -693,6 +696,8 @@ public class CorpusTab {
|
||||
private void setCorpusForAnalysis() {
|
||||
if (corpus.validate()) {
|
||||
// new statistic, enable tabs...
|
||||
// aboutTab.setDisable(false);
|
||||
// aboutTabController.init();
|
||||
stringLevelTabNew2.setDisable(false);
|
||||
satNew2Controller.setCorpus(corpus);
|
||||
satNew2Controller.init();
|
||||
@@ -814,6 +819,8 @@ public class CorpusTab {
|
||||
this.corpus = corpus;
|
||||
}
|
||||
|
||||
public void setAboutTab(Tab aboutTab) { this.aboutTab = aboutTab; }
|
||||
|
||||
public void setStringLevelTabNew2(Tab stringLevelTabNew2) { this.stringLevelTabNew2 = stringLevelTabNew2; }
|
||||
|
||||
public void setOneWordAnalysisTab(Tab oneWordAnalysisTab) { this.oneWordAnalysisTab = oneWordAnalysisTab; }
|
||||
@@ -849,4 +856,8 @@ public class CorpusTab {
|
||||
public void setHostServices(HostServices hostServices){
|
||||
this.hostService = hostServices;
|
||||
}
|
||||
|
||||
public void setAboutTabController(AboutTab aboutTabController) {
|
||||
this.aboutTabController = aboutTabController;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,8 +55,8 @@ public class FiltersForSolar {
|
||||
public TextArea selectedFiltersTextArea;
|
||||
@FXML
|
||||
private Button changeLanguageB;
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
// @FXML
|
||||
// private Hyperlink helpH;
|
||||
|
||||
private Corpus corpus;
|
||||
|
||||
@@ -115,11 +115,11 @@ public class FiltersForSolar {
|
||||
logger.info("change language");
|
||||
});
|
||||
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
}
|
||||
|
||||
private void manageTranslations() {
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
|
||||
solarRegijaL.textProperty().bind(I18N.createStringBinding("filter.solarRegijaL"));
|
||||
|
||||
@@ -26,6 +26,8 @@ public class GUIController extends Application {
|
||||
@FXML
|
||||
public AnchorPane gui;
|
||||
@FXML
|
||||
public Tab AboutTab;
|
||||
@FXML
|
||||
public Tab StringLevelTabNew2;
|
||||
@FXML
|
||||
public Tab OneWordAnalysisTab;
|
||||
@@ -45,6 +47,8 @@ public class GUIController extends Application {
|
||||
@FXML
|
||||
private OneWordAnalysisTab oneWordTabController;
|
||||
@FXML
|
||||
private AboutTab aboutTabController;
|
||||
@FXML
|
||||
private static Parent oneWordTab;
|
||||
@FXML
|
||||
private CorpusTab ctController;
|
||||
@@ -87,11 +91,13 @@ public class GUIController extends Application {
|
||||
|
||||
ctController.setCorpus(corpus);
|
||||
ctController.setFilterTab(filterTab);
|
||||
ctController.setAboutTab(AboutTab);
|
||||
ctController.setStringLevelTabNew2(StringLevelTabNew2);
|
||||
ctController.setOneWordAnalysisTab(OneWordAnalysisTab);
|
||||
ctController.setCharacterLevelTab(CharacterLevelTabNew);
|
||||
ctController.setSatNew2Controller(satNew2Controller);
|
||||
ctController.setOneWordTabController(oneWordTabController);
|
||||
ctController.setAboutTabController(aboutTabController);
|
||||
ctController.setCatController(catController);
|
||||
ctController.setWlController(wlController);
|
||||
ctController.setTabPane(tabPane);
|
||||
@@ -104,6 +110,7 @@ public class GUIController extends Application {
|
||||
satNew2Controller.setHostServices(getHostServices());
|
||||
oneWordTabController.setCorpus(corpus);
|
||||
oneWordTabController.setHostServices(getHostServices());
|
||||
aboutTabController.setHostServices(getHostServices());
|
||||
catController.setCorpus(corpus);
|
||||
catController.setHostServices(getHostServices());
|
||||
wlController.setCorpus(corpus);
|
||||
@@ -129,6 +136,7 @@ public class GUIController extends Application {
|
||||
wordLevelTab.textProperty().bind(I18N.createStringBinding("tab.wordLevelTab"));
|
||||
OneWordAnalysisTab.textProperty().bind(I18N.createStringBinding("tab.oneWordAnalysisTab"));
|
||||
StringLevelTabNew2.textProperty().bind(I18N.createStringBinding("tab.stringLevelTabNew2"));
|
||||
AboutTab.textProperty().bind(I18N.createStringBinding("tab.aboutTab"));
|
||||
}
|
||||
|
||||
static void showAlert(Alert.AlertType alertType, String headerText, String contentText) {
|
||||
|
||||
@@ -3,9 +3,11 @@ 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 {
|
||||
|
||||
@@ -37,8 +39,13 @@ public class Messages {
|
||||
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/korpeks";
|
||||
|
||||
// helper maps
|
||||
/**
|
||||
@@ -62,6 +69,19 @@ public class Messages {
|
||||
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){
|
||||
|
||||
@@ -166,9 +166,9 @@ public class OneWordAnalysisTab {
|
||||
public ProgressBar ngramProgressBar;
|
||||
@FXML
|
||||
public Label progressLabel;
|
||||
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
//
|
||||
// @FXML
|
||||
// private Hyperlink helpH;
|
||||
|
||||
private enum MODE {
|
||||
LETTER,
|
||||
@@ -609,7 +609,7 @@ public class OneWordAnalysisTab {
|
||||
compute();
|
||||
logger.info("compute button");
|
||||
});
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
|
||||
cancel.setVisible(false);
|
||||
}
|
||||
@@ -621,7 +621,7 @@ public class OneWordAnalysisTab {
|
||||
}
|
||||
|
||||
private void manageTranslations(){
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
computeNgramsB.textProperty().bind(I18N.createStringBinding("button.computeNgrams"));
|
||||
cancel.textProperty().bind(I18N.createStringBinding("button.cancel"));
|
||||
|
||||
@@ -194,9 +194,9 @@ public class StringAnalysisTabNew2 {
|
||||
public ProgressBar ngramProgressBar;
|
||||
@FXML
|
||||
public Label progressLabel;
|
||||
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
//
|
||||
// @FXML
|
||||
// private Hyperlink helpH;
|
||||
|
||||
private enum MODE {
|
||||
LETTER,
|
||||
@@ -684,7 +684,7 @@ public class StringAnalysisTabNew2 {
|
||||
logger.info("compute button");
|
||||
});
|
||||
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
|
||||
cancel.setVisible(false);
|
||||
}
|
||||
@@ -696,7 +696,7 @@ public class StringAnalysisTabNew2 {
|
||||
}
|
||||
|
||||
private void manageTranslations(){
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
computeNgramsB.textProperty().bind(I18N.createStringBinding("button.computeNgrams"));
|
||||
cancel.textProperty().bind(I18N.createStringBinding("button.cancel"));
|
||||
|
||||
@@ -193,8 +193,8 @@ public class WordLevelTab {
|
||||
@FXML
|
||||
public Label progressLabel;
|
||||
|
||||
@FXML
|
||||
private Hyperlink helpH;
|
||||
// @FXML
|
||||
// private Hyperlink helpH;
|
||||
|
||||
private enum MODE {
|
||||
LETTER,
|
||||
@@ -706,7 +706,7 @@ public class WordLevelTab {
|
||||
compute();
|
||||
logger.info("compute button");
|
||||
});
|
||||
helpH.setOnAction(e -> openHelpWebsite());
|
||||
// helpH.setOnAction(e -> openHelpWebsite());
|
||||
|
||||
cancel.setVisible(false);
|
||||
}
|
||||
@@ -718,7 +718,7 @@ public class WordLevelTab {
|
||||
}
|
||||
|
||||
private void manageTranslations(){
|
||||
helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
// helpH.textProperty().bind(I18N.createStringBinding("hyperlink.help"));
|
||||
changeLanguageB.textProperty().bind(I18N.createStringBinding("button.language"));
|
||||
computeNgramsB.textProperty().bind(I18N.createStringBinding("button.computeNgrams"));
|
||||
cancel.textProperty().bind(I18N.createStringBinding("button.cancel"));
|
||||
|
||||
Reference in New Issue
Block a user