Added about page + help commented

This commit is contained in:
2019-03-22 11:02:46 +01:00
parent 96133965c6
commit 5abb23415c
23 changed files with 245 additions and 45 deletions

119
src/main/java/gui/AboutTab.java Executable file
View 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;
}
}

View File

@@ -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"));

View File

@@ -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;
}
}

View File

@@ -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"));

View File

@@ -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) {

View File

@@ -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){

View File

@@ -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"));

View File

@@ -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"));

View File

@@ -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"));