Repository: roskenet/spring-javafx-examples Branch: master Commit: 1ca516f33e38 Files: 85 Total size: 47.4 KB Directory structure: gitextract_u10gn6bx/ ├── .gitignore ├── .mvn/ │ └── wrapper/ │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── part_1/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── HelloworldView.java │ │ └── Main.java │ └── resources/ │ ├── application.yaml │ └── example/ │ └── helloworld.fxml ├── part_2/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── AwesomeActionService.java │ │ ├── DefaultAwesomeActionService.java │ │ ├── HelloworldController.java │ │ ├── HelloworldView.java │ │ └── Main.java │ └── resources/ │ ├── application.yaml │ └── example/ │ └── helloworld.fxml ├── part_3/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── AwesomeActionService.java │ │ ├── DefaultAwesomeActionService.java │ │ ├── HelloworldController.java │ │ ├── HelloworldView.java │ │ └── Main.java │ └── resources/ │ ├── application.yaml │ └── example/ │ ├── global.css │ ├── helloworld.css │ └── helloworld.fxml ├── part_4/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── AwesomeActionService.java │ │ ├── DefaultAwesomeActionService.java │ │ ├── HelloworldController.java │ │ ├── HelloworldView.java │ │ └── Main.java │ └── resources/ │ ├── application.yaml │ └── example/ │ ├── global.css │ ├── helloworld.css │ ├── helloworld.fxml │ ├── helloworld.properties │ ├── helloworld_de.properties │ └── helloworld_fr.properties ├── part_5/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── example/ │ │ │ ├── AwesomeActionService.java │ │ │ ├── DefaultAwesomeActionService.java │ │ │ ├── HelloworldController.java │ │ │ ├── HelloworldView.java │ │ │ └── Main.java │ │ └── resources/ │ │ ├── application.yaml │ │ └── example/ │ │ └── helloworld.fxml │ └── test/ │ └── java/ │ └── example/ │ ├── HelloworldView2Test.java │ └── HelloworldViewTest.java ├── part_6_1/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── HelloworldJavaView.java │ │ └── Main.java │ └── resources/ │ └── application.yaml ├── part_6_2/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── FirstView.java │ │ ├── Main.java │ │ ├── SecondView.java │ │ └── ViewController.java │ └── resources/ │ ├── application.yaml │ └── example/ │ ├── first.fxml │ └── second.fxml ├── part_7/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── HelloworldController.java │ │ ├── HelloworldView.java │ │ ├── Main.java │ │ ├── SomeButtonsController.java │ │ ├── SomeButtonsView.java │ │ └── SomeOtherView.java │ └── resources/ │ ├── application.yaml │ └── example/ │ ├── helloworld.fxml │ ├── somebuttons.fxml │ └── someother.fxml ├── part_8/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── example/ │ │ ├── FirstView.java │ │ ├── Main.java │ │ ├── ToolController.java │ │ ├── ToolView.java │ │ └── ViewController.java │ └── resources/ │ ├── application.yaml │ └── example/ │ ├── first.fxml │ └── tool.fxml └── pom.xml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ */target/ */.classpath **/.project **/.settings ================================================ FILE: .mvn/wrapper/maven-wrapper.properties ================================================ distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip ================================================ FILE: README.md ================================================ # Examples how to use springboot-javafx-support See: https://www.felixroske.de/page/programmierung/index.html ================================================ FILE: mvnw ================================================ #!/bin/sh # ---------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- # Maven2 Start Up Batch script # # Required ENV vars: # ------------------ # JAVA_HOME - location of a JDK home dir # # Optional ENV vars # ----------------- # M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi if [ -f "$HOME/.mavenrc" ] ; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. cygwin=false; darwin=false; mingw=false case "`uname`" in CYGWIN*) cygwin=true ;; MINGW*) mingw=true;; Darwin*) darwin=true # # Look for the Apple JDKs first to preserve the existing behaviour, and then look # for the new JDKs provided by Oracle. # if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then # # Apple JDKs # export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home fi if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then # # Apple JDKs # export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home fi if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then # # Oracle JDKs # export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home fi if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then # # Apple JDKs # export JAVA_HOME=`/usr/libexec/java_home` fi ;; esac if [ -z "$JAVA_HOME" ] ; then if [ -r /etc/gentoo-release ] ; then JAVA_HOME=`java-config --jre-home` fi fi if [ -z "$M2_HOME" ] ; then ## resolve links - $0 may be a link to maven's home PRG="$0" # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG="`dirname "$PRG"`/$link" fi done saveddir=`pwd` M2_HOME=`dirname "$PRG"`/.. # make it fully qualified M2_HOME=`cd "$M2_HOME" && pwd` cd "$saveddir" # echo Using m2 at $M2_HOME fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi # For Migwn, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then javaExecutable="`which javac`" if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=`which readlink` if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then if $darwin ; then javaHome="`dirname \"$javaExecutable\"`" javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" else javaExecutable="`readlink -f \"$javaExecutable\"`" fi javaHome="`dirname \"$javaExecutable\"`" javaHome=`expr "$javaHome" : '\(.*\)/bin'` JAVA_HOME="$javaHome" export JAVA_HOME fi fi fi if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$M2_HOME" ] && M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` fi # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { local basedir=$(pwd) local wdir=$(pwd) while [ "$wdir" != '/' ] ; do if [ -d "$wdir"/.mvn ] ; then basedir=$wdir break fi wdir=$(cd "$wdir/.."; pwd) done echo "${basedir}" } # concatenates all lines of a file concat_lines() { if [ -f "$1" ]; then echo "$(tr -s '\n' ' ' < "$1")" fi } export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # Provide a "standardized" way to retrieve the CLI args that will # work with both Windows and non-Windows executions. MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" export MAVEN_CMD_LINE_ARGS WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} "$@" ================================================ FILE: mvnw.cmd ================================================ @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @REM distributed with this work for additional information @REM regarding copyright ownership. The ASF licenses this file @REM to you under the Apache License, Version 2.0 (the @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM @REM http://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @REM KIND, either express or implied. See the License for the @REM specific language governing permissions and limitations @REM under the License. @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- @REM Maven2 Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @REM @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files @REM ---------------------------------------------------------------------------- @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") @REM Execute a user defined script before this one if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre @REM check for pre script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" :skipRcPre @setlocal set ERROR_CODE=0 @REM To isolate internal variables from possible post scripts, we use another setlocal @setlocal @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init echo. echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error @REM ==== END VALIDATION ==== :init set MAVEN_CMD_LINE_ARGS=%* @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". @REM Fallback to current working directory if not found. set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir set EXEC_DIR=%CD% set WDIR=%EXEC_DIR% :findBaseDir IF EXIST "%WDIR%"\.mvn goto baseDirFound cd .. IF "%WDIR%"=="%CD%" goto baseDirNotFound set WDIR=%CD% goto findBaseDir :baseDirFound set MAVEN_PROJECTBASEDIR=%WDIR% cd "%EXEC_DIR%" goto endDetectBaseDir :baseDirNotFound set MAVEN_PROJECTBASEDIR=%EXEC_DIR% cd "%EXEC_DIR%" :endDetectBaseDir IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig @setlocal EnableExtensions EnableDelayedExpansion for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% if ERRORLEVEL 1 goto error goto end :error set ERROR_CODE=1 :end @endlocal & set ERROR_CODE=%ERROR_CODE% if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost @REM check for post script, once with legacy .bat ending and once with .cmd ending if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" :skipRcPost @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' if "%MAVEN_BATCH_PAUSE%" == "on" pause if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% exit /B %ERROR_CODE% ================================================ FILE: part_1/pom.xml ================================================ 4.0.0 part-1 0.0.1 de.roskenet.spring-fx-examples parent 3.0.0 ../pom.xml org.springframework.boot spring-boot-starter de.roskenet springboot-javafx-support ================================================ FILE: part_1/src/main/java/example/HelloworldView.java ================================================ package example; import de.felixroske.jfxsupport.AbstractFxmlView; import de.felixroske.jfxsupport.FXMLView; @FXMLView public class HelloworldView extends AbstractFxmlView { } ================================================ FILE: part_1/src/main/java/example/Main.java ================================================ package example; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport; @SpringBootApplication public class Main extends AbstractJavaFxApplicationSupport{ public static void main(String[] args) { launch(Main.class, HelloworldView.class, args); } } ================================================ FILE: part_1/src/main/resources/application.yaml ================================================ spring: jmx: enabled: false javafx: title: MyCoolApp stage: resizable: true ================================================ FILE: part_1/src/main/resources/example/helloworld.fxml ================================================ ================================================ FILE: part_2/pom.xml ================================================ 4.0.0 part-2 0.0.1 de.roskenet.spring-fx-examples parent 3.0.0 ../pom.xml org.springframework.boot spring-boot-starter de.roskenet springboot-javafx-support ================================================ FILE: part_2/src/main/java/example/AwesomeActionService.java ================================================ package example; public interface AwesomeActionService { String processName(String name); } ================================================ FILE: part_2/src/main/java/example/DefaultAwesomeActionService.java ================================================ package example; import org.springframework.stereotype.Component; @Component public class DefaultAwesomeActionService implements AwesomeActionService { @Override public String processName(final String name) { if(name.equals("Anton")) { return "Hello Anton!"; } else { return "Hello Unknown Stranger!"; } } } ================================================ FILE: part_2/src/main/java/example/HelloworldController.java ================================================ package example; import org.springframework.beans.factory.annotation.Autowired; import de.felixroske.jfxsupport.FXMLController; import javafx.event.Event; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TextField; @FXMLController public class HelloworldController { @FXML private Label helloLabel; @FXML private TextField nameField; // Be aware: This is a Spring bean. So we can do the following: @Autowired private AwesomeActionService actionService; @FXML private void setHelloText(final Event event) { final String textToBeShown = actionService.processName(nameField.getText()); helloLabel.setText(textToBeShown); } } ================================================ FILE: part_2/src/main/java/example/HelloworldView.java ================================================ package example; import de.felixroske.jfxsupport.AbstractFxmlView; import de.felixroske.jfxsupport.FXMLView; @FXMLView public class HelloworldView extends AbstractFxmlView { } ================================================ FILE: part_2/src/main/java/example/Main.java ================================================ package example; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport; @SpringBootApplication public class Main extends AbstractJavaFxApplicationSupport{ public static void main(String[] args) { launch(Main.class, HelloworldView.class, args); } } ================================================ FILE: part_2/src/main/resources/application.yaml ================================================ spring: jmx: enabled: false javafx: title: MyCoolApp (Pt 2) ================================================ FILE: part_2/src/main/resources/example/helloworld.fxml ================================================