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
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-1</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
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
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="99.0" layoutY="109.0" prefHeight="34.0" prefWidth="394.0" text="Hello World!">
<font>
<Font size="26.0" />
</font>
</Label>
</children>
</Pane>
================================================
FILE: part_2/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-2</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
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
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.HelloworldController">
<children>
<Label fx:id="helloLabel" layoutX="99.0" layoutY="109.0" prefHeight="34.0" prefWidth="394.0" text="Hello World!">
<font>
<Font size="26.0" />
</font>
</Label>
<TextField fx:id="nameField" layoutX="99.0" layoutY="162.0" prefHeight="26.0" prefWidth="234.0" />
<Button fx:id="helloButton" layoutX="347.0" layoutY="162.0" mnemonicParsing="false" onAction="#setHelloText" text="Button" />
</children>
</Pane>
================================================
FILE: part_3/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-3</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_3/src/main/java/example/AwesomeActionService.java
================================================
package example;
public interface AwesomeActionService {
String processName(String name);
}
================================================
FILE: part_3/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_3/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_3/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_3/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_3/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
================================================
FILE: part_3/src/main/resources/example/global.css
================================================
.root {
-fx-background-color: #FFFFFF;
}
================================================
FILE: part_3/src/main/resources/example/helloworld.css
================================================
.button {
-fx-background-color: #009688;
-fx-background-radius: 0;
-fx-text-fill: #FFFFFF;
-fx-margin: 0;
}
.text-field {
-fx-background-color: #000000, white , white;
-fx-background-insets: 0 0 -1 0, 0 0 0 0, 0 -1 3 -1;
-fx-background-radius: 0;
-fx-margin: 0;
}
.text-field:focused {
-fx-background-color: #009688 , white , white;
-fx-background-insets: 0 0 -2 0, 0 0 0 0, 0 -1 3 -1;
}
================================================
FILE: part_3/src/main/resources/example/helloworld.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" stylesheets="@global.css" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.HelloworldController">
<children>
<Label fx:id="helloLabel" layoutX="99.0" layoutY="109.0" prefHeight="34.0" prefWidth="394.0" text="Hello World!">
<font>
<Font size="26.0" />
</font>
</Label>
<TextField fx:id="nameField" layoutX="99.0" layoutY="162.0" prefHeight="26.0" prefWidth="234.0" />
<Button fx:id="helloButton" layoutX="347.0" layoutY="162.0" mnemonicParsing="false" onAction="#setHelloText" text="Button" />
</children>
</Pane>
================================================
FILE: part_4/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-4</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_4/src/main/java/example/AwesomeActionService.java
================================================
package example;
public interface AwesomeActionService {
String processName(String name);
}
================================================
FILE: part_4/src/main/java/example/DefaultAwesomeActionService.java
================================================
package example;
import java.text.MessageFormat;
import java.util.ResourceBundle;
import org.springframework.stereotype.Component;
@Component
public class DefaultAwesomeActionService implements AwesomeActionService {
private ResourceBundle bundle = ResourceBundle.getBundle("example.helloworld");
@Override
public String processName(final String name) {
return MessageFormat.format(bundle.getString("greeting"), name);
}
}
================================================
FILE: part_4/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_4/src/main/java/example/HelloworldView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView(bundle="example.helloworld")
public class HelloworldView extends AbstractFxmlView {
}
================================================
FILE: part_4/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_4/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
================================================
FILE: part_4/src/main/resources/example/global.css
================================================
.root {
-fx-background-color: #FFFFFF;
}
================================================
FILE: part_4/src/main/resources/example/helloworld.css
================================================
.button {
-fx-background-color: #009688;
-fx-background-radius: 0;
-fx-text-fill: #FFFFFF;
-fx-margin: 0;
}
.text-field {
-fx-background-color: #000000, white , white;
-fx-background-insets: 0 0 -1 0, 0 0 0 0, 0 -1 3 -1;
-fx-background-radius: 0;
-fx-margin: 0;
}
.text-field:focused {
-fx-background-color: #009688 , white , white;
-fx-background-insets: 0 0 -2 0, 0 0 0 0, 0 -1 3 -1;
}
================================================
FILE: part_4/src/main/resources/example/helloworld.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" stylesheets="@global.css" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.HelloworldController">
<children>
<Label fx:id="helloLabel" layoutX="99.0" layoutY="109.0" prefHeight="34.0" prefWidth="394.0" text="%hello">
<font>
<Font size="26.0" />
</font>
</Label>
<TextField fx:id="nameField" layoutX="99.0" layoutY="162.0" prefHeight="26.0" prefWidth="234.0" />
<Button fx:id="helloButton" layoutX="347.0" layoutY="162.0" mnemonicParsing="false" onAction="#setHelloText" text="%go" />
</children>
</Pane>
================================================
FILE: part_4/src/main/resources/example/helloworld.properties
================================================
hello=Hello
greeting=Hello {0}!
go=Go!
================================================
FILE: part_4/src/main/resources/example/helloworld_de.properties
================================================
hello=Hallo
greeting=Hallo {0}!
go=Los!
================================================
FILE: part_4/src/main/resources/example/helloworld_fr.properties
================================================
hello=Salut
greeting=Salut {0} !
go=Vas-y !
================================================
FILE: part_5/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-5</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
<springboot-javafx-test.version>0.0.4</springboot-javafx-test.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-test</artifactId>
<version>${springboot-javafx-test.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
================================================
FILE: part_5/src/main/java/example/AwesomeActionService.java
================================================
package example;
public interface AwesomeActionService {
String processName(String name);
}
================================================
FILE: part_5/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_5/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_5/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_5/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_5/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
================================================
FILE: part_5/src/main/resources/example/helloworld.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.HelloworldController">
<children>
<Label fx:id="helloLabel" layoutX="99.0" layoutY="109.0" prefHeight="34.0" prefWidth="394.0" text="Hello World!">
<font>
<Font size="26.0" />
</font>
</Label>
<TextField fx:id="nameField" layoutX="99.0" layoutY="162.0" prefHeight="26.0" prefWidth="234.0" />
<Button fx:id="helloButton" layoutX="347.0" layoutY="162.0" mnemonicParsing="false" onAction="#setHelloText" text="Button" />
</children>
</Pane>
================================================
FILE: part_5/src/test/java/example/HelloworldView2Test.java
================================================
package example;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import javax.annotation.PostConstruct;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import de.roskenet.jfxsupport.test.GuiTest;
import javafx.application.Platform;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloworldView2Test extends GuiTest {
@Autowired
private HelloworldView helloworldView;
@PostConstruct
public void init() throws Exception {
init(helloworldView);
}
@Test
public void testClickButton_Anton() {
clickOn("#nameField")
.write("Anton")
.clickOn("#helloButton");
assertThat(labelText(), is("Hello Anton!"));
}
@Test
public void testClickButton_Berta() {
clickOn("#nameField")
.write("Berta")
.clickOn("#helloButton");
assertThat(labelText(), is("Hello Unknown Stranger!"));
}
private String labelText() {
return ((Label) find("#helloLabel")).getText();
}
@After
public void resetValues() {
// You are responsible for cleaning up your Beans!
Platform.runLater(() -> {
TextField helloLabel = (TextField) find("#nameField");
helloLabel.setText("");
});
}
}
================================================
FILE: part_5/src/test/java/example/HelloworldViewTest.java
================================================
package example;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import javax.annotation.PostConstruct;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import de.roskenet.jfxsupport.test.GuiTest;
import javafx.application.Platform;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloworldViewTest extends GuiTest {
@PostConstruct
public void init() throws Exception {
init(HelloworldView.class);
}
@Test
public void testClickButton_Anton() {
clickOn("#nameField")
.write("Anton")
.clickOn("#helloButton");
assertThat(labelText(), is("Hello Anton!"));
}
@Test
public void testClickButton_Berta() {
clickOn("#nameField")
.write("Berta")
.clickOn("#helloButton");
assertThat(labelText(), is("Hello Unknown Stranger!"));
}
private String labelText() {
return ((Label) find("#helloLabel")).getText();
}
@After
public void resetValues() {
// You are responsible for cleaning up your Beans!
Platform.runLater(() -> {
TextField helloLabel = (TextField) find("#nameField");
helloLabel.setText("");
});
}
}
================================================
FILE: part_6_1/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-6-1</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_6_1/src/main/java/example/HelloworldJavaView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
import javafx.scene.Parent;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
@FXMLView
public class HelloworldJavaView extends AbstractFxmlView {
private Pane myJavaCodedPane;
public HelloworldJavaView() {
Pane pane = new Pane();
Button button = new Button("A Button");
pane.getChildren().add(button);
myJavaCodedPane = pane;
}
@Override
public Parent getView() {
return myJavaCodedPane;
}
}
================================================
FILE: part_6_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, HelloworldJavaView.class, args);
}
}
================================================
FILE: part_6_1/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
================================================
FILE: part_6_2/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-6-2</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_6_2/src/main/java/example/FirstView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView
public class FirstView extends AbstractFxmlView {
}
================================================
FILE: part_6_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, FirstView.class, args);
}
}
================================================
FILE: part_6_2/src/main/java/example/SecondView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView
public class SecondView extends AbstractFxmlView{
}
================================================
FILE: part_6_2/src/main/java/example/ViewController.java
================================================
package example;
import de.felixroske.jfxsupport.FXMLController;
import javafx.event.Event;
@FXMLController
public class ViewController {
public void showFirstView(Event event) {
Main.showView(FirstView.class);
}
public void showSecondView(Event event) {
Main.showView(SecondView.class);
}
}
================================================
FILE: part_6_2/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
javafx:
stage:
resizable: false
title: MyCoolApp
================================================
FILE: part_6_2/src/main/resources/example/first.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.ViewController">
<children>
<Label layoutX="36.0" layoutY="54.0" prefHeight="38.0" prefWidth="225.0" text="FirstView" />
<Button id="secondView" layoutX="475.0" layoutY="335.0" mnemonicParsing="false" onAction="#showSecondView" text="Second View" />
</children>
</Pane>
================================================
FILE: part_6_2/src/main/resources/example/second.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.ViewController">
<children>
<Label layoutX="36.0" layoutY="54.0" prefHeight="38.0" prefWidth="225.0" text="SecondView" />
<Button id="firstView" layoutX="475.0" layoutY="335.0" mnemonicParsing="false" onAction="#showFirstView" text="First View" />
</children>
</Pane>
================================================
FILE: part_7/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-7</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_7/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.layout.Pane;
@FXMLController
public class HelloworldController {
@FXML
Pane myDynamicPane;
@Autowired
SomeButtonsView someButtonsView;
@Autowired
SomeOtherView someOtherView;
public void showSomeButtonView(final Event e) {
myDynamicPane.getChildren().clear();
myDynamicPane.getChildren().add(someButtonsView.getView());
}
public void showSomeOtherView(final Event e) {
myDynamicPane.getChildren().clear();
myDynamicPane.getChildren().add(someOtherView.getView());
}
}
================================================
FILE: part_7/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_7/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_7/src/main/java/example/SomeButtonsController.java
================================================
package example;
import de.felixroske.jfxsupport.FXMLController;
import javafx.event.Event;
import javafx.fxml.FXML;
@FXMLController
public class SomeButtonsController {
@FXML
public void reactOnClick(final Event e) {
System.out.println("Clicked a button");
}
}
================================================
FILE: part_7/src/main/java/example/SomeButtonsView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView
public class SomeButtonsView extends AbstractFxmlView{
}
================================================
FILE: part_7/src/main/java/example/SomeOtherView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView
public class SomeOtherView extends AbstractFxmlView{
}
================================================
FILE: part_7/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
javafx:
title: MyCoolApp
================================================
FILE: part_7/src/main/resources/example/helloworld.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<SplitPane id="mySplitPane" dividerPositions="0.29797979797979796" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="502.0" prefWidth="719.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.HelloworldController">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
<children>
<Button layoutX="7.0" layoutY="14.0" mnemonicParsing="false" onAction="#showSomeButtonView" prefHeight="26.0" prefWidth="189.0" text="SomeButtonView" />
<Button layoutX="7.0" layoutY="48.0" mnemonicParsing="false" onAction="#showSomeOtherView" prefHeight="26.0" prefWidth="189.0" text="SomeOtherView" />
</children></AnchorPane>
<Pane id="rightPane" fx:id="myDynamicPane" prefHeight="200.0" prefWidth="200.0" />
</items>
</SplitPane>
================================================
FILE: part_7/src/main/resources/example/somebuttons.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.SomeButtonsController">
<children>
<Button layoutX="32.0" layoutY="60.0" mnemonicParsing="false" onAction="#reactOnClick" text="DoSomething" />
<Label layoutX="32.0" layoutY="31.0" text="Some Buttons" />
<CheckBox id="checkMe" layoutX="33.0" layoutY="106.0" mnemonicParsing="false" text="CheckMe" />
</children>
</Pane>
================================================
FILE: part_7/src/main/resources/example/someother.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="14.0" layoutY="72.0" text="This is some other view" />
</children>
</Pane>
================================================
FILE: part_8/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>part-8</artifactId>
<version>0.0.1</version>
<parent>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<version>3.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
</dependency>
</dependencies>
</project>
================================================
FILE: part_8/src/main/java/example/FirstView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView
public class FirstView extends AbstractFxmlView {
}
================================================
FILE: part_8/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, FirstView.class, args);
}
}
================================================
FILE: part_8/src/main/java/example/ToolController.java
================================================
package example;
import de.felixroske.jfxsupport.FXMLController;
import javafx.event.Event;
@FXMLController
public class ToolController {
public void doSomething(final Event e) {
System.out.println("You pressed some button!");
}
}
================================================
FILE: part_8/src/main/java/example/ToolView.java
================================================
package example;
import de.felixroske.jfxsupport.AbstractFxmlView;
import de.felixroske.jfxsupport.FXMLView;
@FXMLView(title="My second view")
public class ToolView extends AbstractFxmlView{
}
================================================
FILE: part_8/src/main/java/example/ViewController.java
================================================
package example;
import java.io.IOException;
import de.felixroske.jfxsupport.FXMLController;
import javafx.event.Event;
import javafx.stage.Modality;
@FXMLController
public class ViewController {
public void showToolWindow(Event event) throws IOException {
Main.showView(ToolView.class, Modality.NONE);
}
}
================================================
FILE: part_8/src/main/resources/application.yaml
================================================
spring:
jmx:
enabled: false
javafx:
stage:
resizable: false
title: MyCoolApp
================================================
FILE: part_8/src/main/resources/example/first.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.ViewController">
<children>
<Label layoutX="36.0" layoutY="54.0" prefHeight="38.0" prefWidth="225.0" text="FirstView" />
<Button id="toolView" layoutX="475.0" layoutY="335.0" mnemonicParsing="false" onAction="#showToolWindow" text="Open Tools" />
</children>
</Pane>
================================================
FILE: part_8/src/main/resources/example/tool.fxml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="477.0" prefWidth="280.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="example.ToolController">
<children>
<Label layoutX="36.0" layoutY="55.0" prefHeight="105.0" prefWidth="225.0" text="This is some ToolWindow" />
<Button layoutX="36.0" layoutY="147.0" mnemonicParsing="false" onAction="#doSomething" text="DoSomething" />
</children>
</Pane>
================================================
FILE: pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.roskenet.spring-fx-examples</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>3.0.0</version>
<name>Multi Chapter Parent Project</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<springboot-javafx.version>2.1.6</springboot-javafx.version>
</properties>
<modules>
<module>part_1</module>
<module>part_2</module>
<module>part_3</module>
<module>part_4</module>
<module>part_5</module>
<module>part_6_1</module>
<module>part_6_2</module>
<module>part_7</module>
<module>part_8</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
<version>${springboot-javafx.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
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
SYMBOL INDEX (81 symbols across 41 files)
FILE: part_1/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView
FILE: part_1/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: part_2/src/main/java/example/AwesomeActionService.java
type AwesomeActionService (line 3) | public interface AwesomeActionService {
method processName (line 4) | String processName(String name);
FILE: part_2/src/main/java/example/DefaultAwesomeActionService.java
class DefaultAwesomeActionService (line 5) | @Component
method processName (line 8) | @Override
FILE: part_2/src/main/java/example/HelloworldController.java
class HelloworldController (line 11) | @FXMLController
method setHelloText (line 24) | @FXML
FILE: part_2/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView
FILE: part_2/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_3/src/main/java/example/AwesomeActionService.java
type AwesomeActionService (line 3) | public interface AwesomeActionService {
method processName (line 4) | String processName(String name);
FILE: part_3/src/main/java/example/DefaultAwesomeActionService.java
class DefaultAwesomeActionService (line 5) | @Component
method processName (line 8) | @Override
FILE: part_3/src/main/java/example/HelloworldController.java
class HelloworldController (line 11) | @FXMLController
method setHelloText (line 24) | @FXML
FILE: part_3/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView
FILE: part_3/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_4/src/main/java/example/AwesomeActionService.java
type AwesomeActionService (line 3) | public interface AwesomeActionService {
method processName (line 4) | String processName(String name);
FILE: part_4/src/main/java/example/DefaultAwesomeActionService.java
class DefaultAwesomeActionService (line 8) | @Component
method processName (line 13) | @Override
FILE: part_4/src/main/java/example/HelloworldController.java
class HelloworldController (line 11) | @FXMLController
method setHelloText (line 24) | @FXML
FILE: part_4/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView(bundle="example.helloworld")
FILE: part_4/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_5/src/main/java/example/AwesomeActionService.java
type AwesomeActionService (line 3) | public interface AwesomeActionService {
method processName (line 4) | String processName(String name);
FILE: part_5/src/main/java/example/DefaultAwesomeActionService.java
class DefaultAwesomeActionService (line 5) | @Component
method processName (line 8) | @Override
FILE: part_5/src/main/java/example/HelloworldController.java
class HelloworldController (line 11) | @FXMLController
method setHelloText (line 24) | @FXML
FILE: part_5/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView
FILE: part_5/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_5/src/test/java/example/HelloworldView2Test.java
class HelloworldView2Test (line 20) | @RunWith(SpringRunner.class)
method init (line 27) | @PostConstruct
method testClickButton_Anton (line 32) | @Test
method testClickButton_Berta (line 41) | @Test
method labelText (line 50) | private String labelText() {
method resetValues (line 54) | @After
FILE: part_5/src/test/java/example/HelloworldViewTest.java
class HelloworldViewTest (line 19) | @RunWith(SpringRunner.class)
method init (line 23) | @PostConstruct
method testClickButton_Anton (line 28) | @Test
method testClickButton_Berta (line 37) | @Test
method labelText (line 46) | private String labelText() {
method resetValues (line 50) | @After
FILE: part_6_1/src/main/java/example/HelloworldJavaView.java
class HelloworldJavaView (line 9) | @FXMLView
method HelloworldJavaView (line 14) | public HelloworldJavaView() {
method getView (line 22) | @Override
FILE: part_6_1/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_6_2/src/main/java/example/FirstView.java
class FirstView (line 6) | @FXMLView
FILE: part_6_2/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_6_2/src/main/java/example/SecondView.java
class SecondView (line 6) | @FXMLView
FILE: part_6_2/src/main/java/example/ViewController.java
class ViewController (line 6) | @FXMLController
method showFirstView (line 9) | public void showFirstView(Event event) {
method showSecondView (line 13) | public void showSecondView(Event event) {
FILE: part_7/src/main/java/example/HelloworldController.java
class HelloworldController (line 10) | @FXMLController
method showSomeButtonView (line 22) | public void showSomeButtonView(final Event e) {
method showSomeOtherView (line 27) | public void showSomeOtherView(final Event e) {
FILE: part_7/src/main/java/example/HelloworldView.java
class HelloworldView (line 6) | @FXMLView
FILE: part_7/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: part_7/src/main/java/example/SomeButtonsController.java
class SomeButtonsController (line 7) | @FXMLController
method reactOnClick (line 10) | @FXML
FILE: part_7/src/main/java/example/SomeButtonsView.java
class SomeButtonsView (line 6) | @FXMLView
FILE: part_7/src/main/java/example/SomeOtherView.java
class SomeOtherView (line 6) | @FXMLView
FILE: part_8/src/main/java/example/FirstView.java
class FirstView (line 6) | @FXMLView
FILE: part_8/src/main/java/example/Main.java
class Main (line 7) | @SpringBootApplication
method main (line 10) | public static void main(String[] args) {
FILE: part_8/src/main/java/example/ToolController.java
class ToolController (line 6) | @FXMLController
method doSomething (line 9) | public void doSomething(final Event e) {
FILE: part_8/src/main/java/example/ToolView.java
class ToolView (line 6) | @FXMLView(title="My second view")
FILE: part_8/src/main/java/example/ViewController.java
class ViewController (line 9) | @FXMLController
method showToolWindow (line 12) | public void showToolWindow(Event event) throws IOException {
Condensed preview — 85 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (57K chars).
[
{
"path": ".gitignore",
"chars": 48,
"preview": "*/target/\n*/.classpath\n**/.project\n**/.settings\n"
},
{
"path": ".mvn/wrapper/maven-wrapper.properties",
"chars": 110,
"preview": "distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip\n"
},
{
"path": "README.md",
"chars": 112,
"preview": "# Examples how to use springboot-javafx-support\n\nSee: https://www.felixroske.de/page/programmierung/index.html\n\n"
},
{
"path": "mvnw",
"chars": 7058,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "mvnw.cmd",
"chars": 5006,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "part_1/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_1/src/main/java/example/HelloworldView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_1/src/main/java/example/Main.java",
"chars": 347,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_1/src/main/resources/application.yaml",
"chars": 113,
"preview": "spring:\n jmx: \n enabled: false\n \njavafx:\n title: MyCoolApp\n stage:\n resizable: true"
},
{
"path": "part_1/src/main/resources/example/helloworld.fxml",
"chars": 576,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n<?impo"
},
{
"path": "part_2/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_2/src/main/java/example/AwesomeActionService.java",
"chars": 97,
"preview": "package example;\n\npublic interface AwesomeActionService {\n String processName(String name);\n}\n"
},
{
"path": "part_2/src/main/java/example/DefaultAwesomeActionService.java",
"chars": 380,
"preview": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService "
},
{
"path": "part_2/src/main/java/example/HelloworldController.java",
"chars": 733,
"preview": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLCo"
},
{
"path": "part_2/src/main/java/example/HelloworldView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_2/src/main/java/example/Main.java",
"chars": 348,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_2/src/main/resources/application.yaml",
"chars": 77,
"preview": "spring:\n jmx: \n enabled: false\n\njavafx:\n title: MyCoolApp (Pt 2)"
},
{
"path": "part_2/src/main/resources/example/helloworld.fxml",
"chars": 957,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_3/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_3/src/main/java/example/AwesomeActionService.java",
"chars": 97,
"preview": "package example;\n\npublic interface AwesomeActionService {\n String processName(String name);\n}\n"
},
{
"path": "part_3/src/main/java/example/DefaultAwesomeActionService.java",
"chars": 380,
"preview": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService "
},
{
"path": "part_3/src/main/java/example/HelloworldController.java",
"chars": 733,
"preview": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLCo"
},
{
"path": "part_3/src/main/java/example/HelloworldView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_3/src/main/java/example/Main.java",
"chars": 348,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_3/src/main/resources/application.yaml",
"chars": 40,
"preview": "spring:\n jmx: \n enabled: false"
},
{
"path": "part_3/src/main/resources/example/global.css",
"chars": 45,
"preview": ".root {\n -fx-background-color: #FFFFFF;\n}\n\n"
},
{
"path": "part_3/src/main/resources/example/helloworld.css",
"chars": 429,
"preview": ".button {\n -fx-background-color: #009688;\n -fx-background-radius: 0;\n -fx-text-fill: #FFFFFF;\n -fx-margin: 0"
},
{
"path": "part_3/src/main/resources/example/helloworld.fxml",
"chars": 983,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_4/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_4/src/main/java/example/AwesomeActionService.java",
"chars": 97,
"preview": "package example;\n\npublic interface AwesomeActionService {\n String processName(String name);\n}\n"
},
{
"path": "part_4/src/main/java/example/DefaultAwesomeActionService.java",
"chars": 453,
"preview": "package example;\n\nimport java.text.MessageFormat;\nimport java.util.ResourceBundle;\n\nimport org.springframework.stereotyp"
},
{
"path": "part_4/src/main/java/example/HelloworldController.java",
"chars": 733,
"preview": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLCo"
},
{
"path": "part_4/src/main/java/example/HelloworldView.java",
"chars": 208,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_4/src/main/java/example/Main.java",
"chars": 348,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_4/src/main/resources/application.yaml",
"chars": 40,
"preview": "spring:\n jmx: \n enabled: false"
},
{
"path": "part_4/src/main/resources/example/global.css",
"chars": 45,
"preview": ".root {\n -fx-background-color: #FFFFFF;\n}\n\n"
},
{
"path": "part_4/src/main/resources/example/helloworld.css",
"chars": 429,
"preview": ".button {\n -fx-background-color: #009688;\n -fx-background-radius: 0;\n -fx-text-fill: #FFFFFF;\n -fx-margin: 0"
},
{
"path": "part_4/src/main/resources/example/helloworld.fxml",
"chars": 974,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_4/src/main/resources/example/helloworld.properties",
"chars": 38,
"preview": "hello=Hello\ngreeting=Hello {0}!\ngo=Go!"
},
{
"path": "part_4/src/main/resources/example/helloworld_de.properties",
"chars": 39,
"preview": "hello=Hallo\ngreeting=Hallo {0}!\ngo=Los!"
},
{
"path": "part_4/src/main/resources/example/helloworld_fr.properties",
"chars": 43,
"preview": "hello=Salut\ngreeting=Salut {0} !\ngo=Vas-y !"
},
{
"path": "part_5/pom.xml",
"chars": 1122,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_5/src/main/java/example/AwesomeActionService.java",
"chars": 97,
"preview": "package example;\n\npublic interface AwesomeActionService {\n String processName(String name);\n}\n"
},
{
"path": "part_5/src/main/java/example/DefaultAwesomeActionService.java",
"chars": 380,
"preview": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService "
},
{
"path": "part_5/src/main/java/example/HelloworldController.java",
"chars": 733,
"preview": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLCo"
},
{
"path": "part_5/src/main/java/example/HelloworldView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_5/src/main/java/example/Main.java",
"chars": 348,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_5/src/main/resources/application.yaml",
"chars": 40,
"preview": "spring:\n jmx: \n enabled: false"
},
{
"path": "part_5/src/main/resources/example/helloworld.fxml",
"chars": 957,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_5/src/test/java/example/HelloworldView2Test.java",
"chars": 1626,
"preview": "package example;\n\nimport static org.hamcrest.CoreMatchers.is;\nimport static org.junit.Assert.assertThat;\n\nimport javax.a"
},
{
"path": "part_5/src/test/java/example/HelloworldViewTest.java",
"chars": 1501,
"preview": "package example;\n\nimport static org.hamcrest.CoreMatchers.is;\nimport static org.junit.Assert.assertThat;\n\nimport javax.a"
},
{
"path": "part_6_1/pom.xml",
"chars": 807,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_6_1/src/main/java/example/HelloworldJavaView.java",
"chars": 602,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\nimport jav"
},
{
"path": "part_6_1/src/main/java/example/Main.java",
"chars": 352,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_6_1/src/main/resources/application.yaml",
"chars": 40,
"preview": "spring:\n jmx: \n enabled: false"
},
{
"path": "part_6_2/pom.xml",
"chars": 806,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_6_2/src/main/java/example/FirstView.java",
"chars": 174,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_6_2/src/main/java/example/Main.java",
"chars": 343,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_6_2/src/main/java/example/SecondView.java",
"chars": 174,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_6_2/src/main/java/example/ViewController.java",
"chars": 332,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\n\n@FXMLController\npublic cla"
},
{
"path": "part_6_2/src/main/resources/application.yaml",
"chars": 105,
"preview": "spring:\n jmx: \n enabled: false\njavafx:\n stage:\n resizable: false\n title: MyCoolApp"
},
{
"path": "part_6_2/src/main/resources/example/first.fxml",
"chars": 671,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_6_2/src/main/resources/example/second.fxml",
"chars": 670,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_7/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_7/src/main/java/example/HelloworldController.java",
"chars": 760,
"preview": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLCo"
},
{
"path": "part_7/src/main/java/example/HelloworldView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_7/src/main/java/example/Main.java",
"chars": 347,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_7/src/main/java/example/SomeButtonsController.java",
"chars": 285,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\n\n@"
},
{
"path": "part_7/src/main/java/example/SomeButtonsView.java",
"chars": 179,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_7/src/main/java/example/SomeOtherView.java",
"chars": 177,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_7/src/main/resources/application.yaml",
"chars": 84,
"preview": "spring:\n jmx: \n enabled: false\n \njavafx:\n title: MyCoolApp\n \n"
},
{
"path": "part_7/src/main/resources/example/helloworld.fxml",
"chars": 1103,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.SplitPane?>"
},
{
"path": "part_7/src/main/resources/example/somebuttons.fxml",
"chars": 768,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.CheckBox?>\n"
},
{
"path": "part_7/src/main/resources/example/someother.fxml",
"chars": 437,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n\n<Pan"
},
{
"path": "part_8/pom.xml",
"chars": 804,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "part_8/src/main/java/example/FirstView.java",
"chars": 174,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_8/src/main/java/example/Main.java",
"chars": 343,
"preview": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport."
},
{
"path": "part_8/src/main/java/example/ToolController.java",
"chars": 250,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\n\n@FXMLController\npublic cla"
},
{
"path": "part_8/src/main/java/example/ToolView.java",
"chars": 196,
"preview": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView"
},
{
"path": "part_8/src/main/java/example/ViewController.java",
"chars": 331,
"preview": "package example;\n\nimport java.io.IOException;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event"
},
{
"path": "part_8/src/main/resources/application.yaml",
"chars": 105,
"preview": "spring:\n jmx: \n enabled: false\njavafx:\n stage:\n resizable: false\n title: MyCoolApp"
},
{
"path": "part_8/src/main/resources/example/first.fxml",
"chars": 668,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "part_8/src/main/resources/example/tool.fxml",
"chars": 666,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?i"
},
{
"path": "pom.xml",
"chars": 1641,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the roskenet/spring-javafx-examples GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 85 files (47.4 KB), approximately 16.0k tokens, and a symbol index with 81 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.