package gui; import java.io.IOException; import javafx.beans.binding.StringBinding; import javafx.scene.layout.AnchorPane; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.kordamp.ikonli.fontawesome.FontAwesome; import org.kordamp.ikonli.javafx.FontIcon; import data.Corpus; import javafx.application.Application; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.stage.Stage; public class GUIController extends Application { public final static Logger logger = LogManager.getLogger(GUIController.class); @FXML public AnchorPane gui; @FXML public Tab StringLevelTabNew2; @FXML public Tab OneWordAnalysisTab; @FXML public Tab CharacterLevelTabNew; @FXML public Tab corpusTab; public TabPane tabPane; @FXML private CharacterAnalysisTab catController; @FXML private static Parent sat; @FXML private StringAnalysisTabNew2 satNew2Controller; @FXML private static Parent satNew2; @FXML private OneWordAnalysisTab oneWordTabController; @FXML private static Parent oneWordTab; @FXML private CorpusTab ctController; @FXML private Parent ct; //@FXML //private WordFormationTab wfController; @FXML private Parent wf; @FXML private WordLevelTab wlController; @FXML private Parent wl; @FXML private FiltersForSolar ffsController; @FXML private Parent ffs; @FXML private SelectedFiltersPane sfpController; @FXML private Parent sfp; @FXML public Tab stringLevelTab; @FXML public Tab wordLevelTab; /*@FXML public Tab wordFormationTab;*/ @FXML public Tab filterTab; public Stage stage; private Corpus corpus; @Override public void start(Stage primaryStage) throws IOException { // File fileDir = new File("message_sl_unicode.properties"); // // BufferedReader in = new BufferedReader( // new InputStreamReader( // new FileInputStream(fileDir), "UTF8")); // // String str; // // while ((str = in.readLine()) != null) { // System.out.println(str); // } // // in.close(); Parent root = FXMLLoader.load(getClass().getResource("/GUI.fxml")); // Parent root = FXMLLoader.load(ResourceLookup.resources.url("GUI.fxml")); // primaryStage.setTitle("Luščilnik"); // StringBinding a = I18N.createStringBinding("window.title"); primaryStage.titleProperty().bind(I18N.createStringBinding("window.title")); Scene scene = new Scene(root, 800, 600); // https://github.com/dicolar/jbootx // scene.getStylesheets().add(GUIController.class.getResource("bootstrap3.css").toExternalForm()) primaryStage.setScene(scene); stage = primaryStage; primaryStage.show(); } public static void main(String[] args) { launch(args); } public void initialize() { // add CSS style gui.getStylesheets().add("style.css"); gui.getStyleClass().add("root"); corpus = new Corpus(); manageTranslations(); ctController.setCorpus(corpus); ctController.setFilterTab(filterTab); ctController.setStringLevelTabNew2(StringLevelTabNew2); ctController.setOneWordAnalysisTab(OneWordAnalysisTab); ctController.setCharacterLevelTab(CharacterLevelTabNew); ctController.setSatNew2Controller(satNew2Controller); ctController.setOneWordTabController(oneWordTabController); ctController.setCatController(catController); //ctController.setWfController(wfController); ctController.setWlController(wlController); ctController.setTabPane(tabPane); ctController.setFfsController(ffsController); //ctController.setWordFormationTab(wordFormationTab); ctController.setWordLevelTab(wordLevelTab); //System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion()); ctController.setHostServices(getHostServices()); satNew2Controller.setCorpus(corpus); satNew2Controller.setHostServices(getHostServices()); oneWordTabController.setCorpus(corpus); oneWordTabController.setHostServices(getHostServices()); catController.setCorpus(corpus); catController.setHostServices(getHostServices()); //wfController.setCorpus(corpus); //wfController.setHostServices(getHostServices()); wlController.setCorpus(corpus); wlController.setHostServices(getHostServices()); ffsController.setSatNew2Controller(satNew2Controller); ffsController.setOneWordTabController(oneWordTabController); ffsController.setCatController(catController); //ffsController.setWfController(wfController); ffsController.setWlController(wlController); ffsController.setHostServices(getHostServices()); // set tab icons corpusTab.setGraphic(new FontIcon(FontAwesome.COG)); filterTab.setGraphic(new FontIcon(FontAwesome.FILTER)); // hide filter tab tabPane.getTabs().removeAll(filterTab); } private void manageTranslations(){ corpusTab.textProperty().bind(I18N.createStringBinding("tab.corpusTab")); filterTab.textProperty().bind(I18N.createStringBinding("tab.filterTab")); CharacterLevelTabNew.textProperty().bind(I18N.createStringBinding("tab.characterLevelTabNew")); wordLevelTab.textProperty().bind(I18N.createStringBinding("tab.wordLevelTab")); OneWordAnalysisTab.textProperty().bind(I18N.createStringBinding("tab.oneWordAnalysisTab")); StringLevelTabNew2.textProperty().bind(I18N.createStringBinding("tab.stringLevelTabNew2")); } static void showAlert(Alert.AlertType alertType, String headerText, String contentText) { Alert alert = new Alert(alertType); alert.setTitle(Messages.windowTitles.get(alertType)); alert.setHeaderText(headerText != null ? headerText : ""); alert.setContentText(contentText != null ? contentText : ""); alert.showAndWait(); } public static void showAlert(Alert.AlertType alertType, String headerText) { showAlert(alertType, headerText, null); } }