diff --git a/src/main/java/gui/AboutTab.java b/src/main/java/gui/AboutTab.java
new file mode 100755
index 0000000..0a05c0f
--- /dev/null
+++ b/src/main/java/gui/AboutTab.java
@@ -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;
+ }
+}
diff --git a/src/main/java/gui/CharacterAnalysisTab.java b/src/main/java/gui/CharacterAnalysisTab.java
index cef396e..378f8cf 100755
--- a/src/main/java/gui/CharacterAnalysisTab.java
+++ b/src/main/java/gui/CharacterAnalysisTab.java
@@ -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"));
diff --git a/src/main/java/gui/CorpusTab.java b/src/main/java/gui/CorpusTab.java
index 08535b9..c8b85cb 100755
--- a/src/main/java/gui/CorpusTab.java
+++ b/src/main/java/gui/CorpusTab.java
@@ -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;
+ }
}
diff --git a/src/main/java/gui/FiltersForSolar.java b/src/main/java/gui/FiltersForSolar.java
index 217d108..d18af6f 100755
--- a/src/main/java/gui/FiltersForSolar.java
+++ b/src/main/java/gui/FiltersForSolar.java
@@ -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"));
diff --git a/src/main/java/gui/GUIController.java b/src/main/java/gui/GUIController.java
index 7522004..17fb0fa 100755
--- a/src/main/java/gui/GUIController.java
+++ b/src/main/java/gui/GUIController.java
@@ -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) {
diff --git a/src/main/java/gui/Messages.java b/src/main/java/gui/Messages.java
index 06b0254..c75a949 100755
--- a/src/main/java/gui/Messages.java
+++ b/src/main/java/gui/Messages.java
@@ -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){
diff --git a/src/main/java/gui/OneWordAnalysisTab.java b/src/main/java/gui/OneWordAnalysisTab.java
index b69af79..c207790 100755
--- a/src/main/java/gui/OneWordAnalysisTab.java
+++ b/src/main/java/gui/OneWordAnalysisTab.java
@@ -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"));
diff --git a/src/main/java/gui/StringAnalysisTabNew2.java b/src/main/java/gui/StringAnalysisTabNew2.java
index fafec53..723c5df 100755
--- a/src/main/java/gui/StringAnalysisTabNew2.java
+++ b/src/main/java/gui/StringAnalysisTabNew2.java
@@ -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"));
diff --git a/src/main/java/gui/WordLevelTab.java b/src/main/java/gui/WordLevelTab.java
index d4a5df2..b81cb54 100755
--- a/src/main/java/gui/WordLevelTab.java
+++ b/src/main/java/gui/WordLevelTab.java
@@ -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"));
diff --git a/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png b/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png
new file mode 100644
index 0000000..36f0431
Binary files /dev/null and b/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png differ
diff --git a/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png b/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png
new file mode 100644
index 0000000..c331b7a
Binary files /dev/null and b/src/main/resources/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png differ
diff --git a/src/main/resources/GUI.fxml b/src/main/resources/GUI.fxml
index a3dc6bb..65b861f 100755
--- a/src/main/resources/GUI.fxml
+++ b/src/main/resources/GUI.fxml
@@ -31,6 +31,9 @@
+
+
+
diff --git a/src/main/resources/gui/AboutTab.fxml b/src/main/resources/gui/AboutTab.fxml
new file mode 100755
index 0000000..bdef736
--- /dev/null
+++ b/src/main/resources/gui/AboutTab.fxml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png b/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png
new file mode 100644
index 0000000..36f0431
Binary files /dev/null and b/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_ENG.png differ
diff --git a/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png b/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png
new file mode 100644
index 0000000..c331b7a
Binary files /dev/null and b/src/main/resources/gui/CJVT_CGP_Osnovni_znak+Pripis_naziva_SLO.png differ
diff --git a/src/main/resources/gui/CharacterAnalysisTab.fxml b/src/main/resources/gui/CharacterAnalysisTab.fxml
index ce92af0..532fd35 100755
--- a/src/main/resources/gui/CharacterAnalysisTab.fxml
+++ b/src/main/resources/gui/CharacterAnalysisTab.fxml
@@ -84,7 +84,7 @@
-
+
-
+
diff --git a/src/main/resources/gui/OneWordAnalysisTab.fxml b/src/main/resources/gui/OneWordAnalysisTab.fxml
index ef5d33a..ab8e007 100755
--- a/src/main/resources/gui/OneWordAnalysisTab.fxml
+++ b/src/main/resources/gui/OneWordAnalysisTab.fxml
@@ -110,7 +110,7 @@
-
+