master 1ca516f33e38 cached
85 files
47.4 KB
16.0k tokens
81 symbols
1 requests
Download .txt
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>
Download .txt
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
Download .txt
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.

Copied to clipboard!