/** * */ package application.windows; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import org.fxmisc.flowless.VirtualizedScrollPane; import org.fxmisc.richtext.InlineCssTextArea; import application.Main; import application.tools.ActionTool; import application.tools.InfoTool; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; import javafx.stage.StageStyle; /** * @author GOXR3PLUS * */ public class AboutWindowController extends BorderPane { @FXML private Label topLabel; @FXML private VBox centerVBox; @FXML private InlineCssTextArea cssTextArea; @FXML private Button close; @FXML private Button visitWebsite; @FXML private Button reportBug; // ------------------------------------------------------------- /** The logger. */ private Logger logger = Logger.getLogger(getClass().getName()); /** Window **/ private Stage window = new Stage(); /** * Constructor */ public AboutWindowController() { // ------------------------------------FXMLLOADER FXMLLoader loader = new FXMLLoader(getClass().getResource(InfoTool.FXMLS + "AboutWindow.fxml")); loader.setController(this); loader.setRoot(this); try { loader.load(); } catch (IOException ex) { logger.log(Level.SEVERE, "", ex); } // --window window.setTitle("About-Report Bug"); window.initStyle(StageStyle.UTILITY); //window.setMaxWidth(600); //window.setMaxHeight(520); } @FXML private void initialize() { // Scene window.setScene(new Scene(this)); window.getScene().getStylesheets().add(getClass().getResource(InfoTool.STYLES + InfoTool.APPLICATIONCSS).toExternalForm()); // InlineCssTextArea VirtualizedScrollPane<InlineCssTextArea> vsPane = new VirtualizedScrollPane<>(cssTextArea); vsPane.setMinSize(300, 400); vsPane.setMaxWidth(Double.MAX_VALUE); vsPane.setMaxHeight(Double.MAX_VALUE); centerVBox.getChildren().remove(cssTextArea); centerVBox.getChildren().add(0, vsPane); // Information - Copyright String text = "A cross platform Java/JavaFX Media Player\n"; cssTextArea.appendText(text); text = "Copyright (C) <2015-2350> (www.goxr3plus.co.nf) . All rights reserved.\n\n"; cssTextArea.appendText(text); // --Style String style = "-fx-font-weight:bold; -fx-font-size:14; -fx-fill:black;"; // Author-Version-Release Date-Home Page text = "Author :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style); cssTextArea.appendText("GOXR3Plus Studio\n"); text = "Version :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style); cssTextArea.appendText(Main.applicationProperties.get("Version") + "\n"); text = "Release Date :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style); cssTextArea.appendText(Main.applicationProperties.get("ReleasedDate") + "\n"); text = "Home Page :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style); cssTextArea.appendText("https://sourceforge.net/projects/xr3player\n\n"); // Java Version - Java Vendor - Java Home text = "Java Version :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "green")); cssTextArea.appendText(System.getProperty("java.version") + "\n"); text = "Java Vendor :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "green")); cssTextArea.appendText(System.getProperty("java.vendor") + "\n"); text = "Java Home :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "green")); cssTextArea.appendText(System.getProperty("java.home") + "\n\n"); // OS Name - Os Architecture - Os Version text = "Os Name :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "orange")); cssTextArea.appendText(System.getProperty("os.name") + "\n"); text = "Os Arch :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "orange")); cssTextArea.appendText(System.getProperty("os.arch") + "\n"); text = "Os Version :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "orange")); cssTextArea.appendText(System.getProperty("os.version") + "\n\n"); // User Name - User Home - User directory text = "User Name :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "firebrick")); cssTextArea.appendText(System.getProperty("user.name") + "\n"); text = "User Home :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "firebrick")); cssTextArea.appendText(System.getProperty("user.home") + "\n"); text = "User Dir :\t"; cssTextArea.appendText(text); cssTextArea.setStyle(cssTextArea.getLength() - text.length(), cssTextArea.getLength() - 1, style.replace("black", "firebrick")); cssTextArea.appendText(InfoTool.getBasePathForClass(Main.class) + "\n"); // --close close.setOnAction(a -> window.close()); // --visitWebsite visitWebsite.setOnAction(a -> ActionTool.openWebSite(InfoTool.WEBSITE)); // --reportBug reportBug.setOnAction(a -> ActionTool.openWebSite("https://github.com/goxr3plus/XR3Player/issues")); } /** * Shows the Window */ public void showWindow() { window.sizeToScene(); window.show(); } /** * @return the window */ public Stage getWindow() { return window; } }