[
  {
    "path": ".gitignore",
    "content": "*/target/\n*/.classpath\n**/.project\n**/.settings\n"
  },
  {
    "path": ".mvn/wrapper/maven-wrapper.properties",
    "content": "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",
    "content": "# Examples how to use springboot-javafx-support\n\nSee: https://www.felixroske.de/page/programmierung/index.html\n\n"
  },
  {
    "path": "mvnw",
    "content": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#    http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n# ----------------------------------------------------------------------------\n\n# ----------------------------------------------------------------------------\n# Maven2 Start Up Batch script\n#\n# Required ENV vars:\n# ------------------\n#   JAVA_HOME - location of a JDK home dir\n#\n# Optional ENV vars\n# -----------------\n#   M2_HOME - location of maven2's installed home dir\n#   MAVEN_OPTS - parameters passed to the Java VM when running Maven\n#     e.g. to debug Maven itself, use\n#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000\n#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files\n# ----------------------------------------------------------------------------\n\nif [ -z \"$MAVEN_SKIP_RC\" ] ; then\n\n  if [ -f /etc/mavenrc ] ; then\n    . /etc/mavenrc\n  fi\n\n  if [ -f \"$HOME/.mavenrc\" ] ; then\n    . \"$HOME/.mavenrc\"\n  fi\n\nfi\n\n# OS specific support.  $var _must_ be set to either true or false.\ncygwin=false;\ndarwin=false;\nmingw=false\ncase \"`uname`\" in\n  CYGWIN*) cygwin=true ;;\n  MINGW*) mingw=true;;\n  Darwin*) darwin=true\n           #\n           # Look for the Apple JDKs first to preserve the existing behaviour, and then look\n           # for the new JDKs provided by Oracle.\n           #\n           if [ -z \"$JAVA_HOME\" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then\n             #\n             # Apple JDKs\n             #\n             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home\n           fi\n\n           if [ -z \"$JAVA_HOME\" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then\n             #\n             # Apple JDKs\n             #\n             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home\n           fi\n\n           if [ -z \"$JAVA_HOME\" ] && [ -L \"/Library/Java/JavaVirtualMachines/CurrentJDK\" ] ; then\n             #\n             # Oracle JDKs\n             #\n             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home\n           fi\n\n           if [ -z \"$JAVA_HOME\" ] && [ -x \"/usr/libexec/java_home\" ]; then\n             #\n             # Apple JDKs\n             #\n             export JAVA_HOME=`/usr/libexec/java_home`\n           fi\n           ;;\nesac\n\nif [ -z \"$JAVA_HOME\" ] ; then\n  if [ -r /etc/gentoo-release ] ; then\n    JAVA_HOME=`java-config --jre-home`\n  fi\nfi\n\nif [ -z \"$M2_HOME\" ] ; then\n  ## resolve links - $0 may be a link to maven's home\n  PRG=\"$0\"\n\n  # need this for relative symlinks\n  while [ -h \"$PRG\" ] ; do\n    ls=`ls -ld \"$PRG\"`\n    link=`expr \"$ls\" : '.*-> \\(.*\\)$'`\n    if expr \"$link\" : '/.*' > /dev/null; then\n      PRG=\"$link\"\n    else\n      PRG=\"`dirname \"$PRG\"`/$link\"\n    fi\n  done\n\n  saveddir=`pwd`\n\n  M2_HOME=`dirname \"$PRG\"`/..\n\n  # make it fully qualified\n  M2_HOME=`cd \"$M2_HOME\" && pwd`\n\n  cd \"$saveddir\"\n  # echo Using m2 at $M2_HOME\nfi\n\n# For Cygwin, ensure paths are in UNIX format before anything is touched\nif $cygwin ; then\n  [ -n \"$M2_HOME\" ] &&\n    M2_HOME=`cygpath --unix \"$M2_HOME\"`\n  [ -n \"$JAVA_HOME\" ] &&\n    JAVA_HOME=`cygpath --unix \"$JAVA_HOME\"`\n  [ -n \"$CLASSPATH\" ] &&\n    CLASSPATH=`cygpath --path --unix \"$CLASSPATH\"`\nfi\n\n# For Migwn, ensure paths are in UNIX format before anything is touched\nif $mingw ; then\n  [ -n \"$M2_HOME\" ] &&\n    M2_HOME=\"`(cd \"$M2_HOME\"; pwd)`\"\n  [ -n \"$JAVA_HOME\" ] &&\n    JAVA_HOME=\"`(cd \"$JAVA_HOME\"; pwd)`\"\n  # TODO classpath?\nfi\n\nif [ -z \"$JAVA_HOME\" ]; then\n  javaExecutable=\"`which javac`\"\n  if [ -n \"$javaExecutable\" ] && ! [ \"`expr \\\"$javaExecutable\\\" : '\\([^ ]*\\)'`\" = \"no\" ]; then\n    # readlink(1) is not available as standard on Solaris 10.\n    readLink=`which readlink`\n    if [ ! `expr \"$readLink\" : '\\([^ ]*\\)'` = \"no\" ]; then\n      if $darwin ; then\n        javaHome=\"`dirname \\\"$javaExecutable\\\"`\"\n        javaExecutable=\"`cd \\\"$javaHome\\\" && pwd -P`/javac\"\n      else\n        javaExecutable=\"`readlink -f \\\"$javaExecutable\\\"`\"\n      fi\n      javaHome=\"`dirname \\\"$javaExecutable\\\"`\"\n      javaHome=`expr \"$javaHome\" : '\\(.*\\)/bin'`\n      JAVA_HOME=\"$javaHome\"\n      export JAVA_HOME\n    fi\n  fi\nfi\n\nif [ -z \"$JAVACMD\" ] ; then\n  if [ -n \"$JAVA_HOME\"  ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n      # IBM's JDK on AIX uses strange locations for the executables\n      JAVACMD=\"$JAVA_HOME/jre/sh/java\"\n    else\n      JAVACMD=\"$JAVA_HOME/bin/java\"\n    fi\n  else\n    JAVACMD=\"`which java`\"\n  fi\nfi\n\nif [ ! -x \"$JAVACMD\" ] ; then\n  echo \"Error: JAVA_HOME is not defined correctly.\" >&2\n  echo \"  We cannot execute $JAVACMD\" >&2\n  exit 1\nfi\n\nif [ -z \"$JAVA_HOME\" ] ; then\n  echo \"Warning: JAVA_HOME environment variable is not set.\"\nfi\n\nCLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher\n\n# For Cygwin, switch paths to Windows format before running java\nif $cygwin; then\n  [ -n \"$M2_HOME\" ] &&\n    M2_HOME=`cygpath --path --windows \"$M2_HOME\"`\n  [ -n \"$JAVA_HOME\" ] &&\n    JAVA_HOME=`cygpath --path --windows \"$JAVA_HOME\"`\n  [ -n \"$CLASSPATH\" ] &&\n    CLASSPATH=`cygpath --path --windows \"$CLASSPATH\"`\nfi\n\n# traverses directory structure from process work directory to filesystem root\n# first directory with .mvn subdirectory is considered project base directory\nfind_maven_basedir() {\n  local basedir=$(pwd)\n  local wdir=$(pwd)\n  while [ \"$wdir\" != '/' ] ; do\n    if [ -d \"$wdir\"/.mvn ] ; then\n      basedir=$wdir\n      break\n    fi\n    wdir=$(cd \"$wdir/..\"; pwd)\n  done\n  echo \"${basedir}\"\n}\n\n# concatenates all lines of a file\nconcat_lines() {\n  if [ -f \"$1\" ]; then\n    echo \"$(tr -s '\\n' ' ' < \"$1\")\"\n  fi\n}\n\nexport MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}\nMAVEN_OPTS=\"$(concat_lines \"$MAVEN_PROJECTBASEDIR/.mvn/jvm.config\") $MAVEN_OPTS\"\n\n# Provide a \"standardized\" way to retrieve the CLI args that will\n# work with both Windows and non-Windows executions.\nMAVEN_CMD_LINE_ARGS=\"$MAVEN_CONFIG $@\"\nexport MAVEN_CMD_LINE_ARGS\n\nWRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain\n\nexec \"$JAVACMD\" \\\n  $MAVEN_OPTS \\\n  -classpath \"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar\" \\\n  \"-Dmaven.home=${M2_HOME}\" \"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}\" \\\n  ${WRAPPER_LAUNCHER} \"$@\"\n"
  },
  {
    "path": "mvnw.cmd",
    "content": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software Foundation (ASF) under one\n@REM or more contributor license agreements.  See the NOTICE file\n@REM distributed with this work for additional information\n@REM regarding copyright ownership.  The ASF licenses this file\n@REM to you under the Apache License, Version 2.0 (the\n@REM \"License\"); you may not use this file except in compliance\n@REM with the License.  You may obtain a copy of the License at\n@REM\n@REM    http://www.apache.org/licenses/LICENSE-2.0\n@REM\n@REM Unless required by applicable law or agreed to in writing,\n@REM software distributed under the License is distributed on an\n@REM \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n@REM KIND, either express or implied.  See the License for the\n@REM specific language governing permissions and limitations\n@REM under the License.\n@REM ----------------------------------------------------------------------------\n\n@REM ----------------------------------------------------------------------------\n@REM Maven2 Start Up Batch script\n@REM\n@REM Required ENV vars:\n@REM JAVA_HOME - location of a JDK home dir\n@REM\n@REM Optional ENV vars\n@REM M2_HOME - location of maven2's installed home dir\n@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands\n@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending\n@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven\n@REM     e.g. to debug Maven itself, use\n@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000\n@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files\n@REM ----------------------------------------------------------------------------\n\n@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'\n@echo off\n@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'\n@if \"%MAVEN_BATCH_ECHO%\" == \"on\"  echo %MAVEN_BATCH_ECHO%\n\n@REM set %HOME% to equivalent of $HOME\nif \"%HOME%\" == \"\" (set \"HOME=%HOMEDRIVE%%HOMEPATH%\")\n\n@REM Execute a user defined script before this one\nif not \"%MAVEN_SKIP_RC%\" == \"\" goto skipRcPre\n@REM check for pre script, once with legacy .bat ending and once with .cmd ending\nif exist \"%HOME%\\mavenrc_pre.bat\" call \"%HOME%\\mavenrc_pre.bat\"\nif exist \"%HOME%\\mavenrc_pre.cmd\" call \"%HOME%\\mavenrc_pre.cmd\"\n:skipRcPre\n\n@setlocal\n\nset ERROR_CODE=0\n\n@REM To isolate internal variables from possible post scripts, we use another setlocal\n@setlocal\n\n@REM ==== START VALIDATION ====\nif not \"%JAVA_HOME%\" == \"\" goto OkJHome\n\necho.\necho Error: JAVA_HOME not found in your environment. >&2\necho Please set the JAVA_HOME variable in your environment to match the >&2\necho location of your Java installation. >&2\necho.\ngoto error\n\n:OkJHome\nif exist \"%JAVA_HOME%\\bin\\java.exe\" goto init\n\necho.\necho Error: JAVA_HOME is set to an invalid directory. >&2\necho JAVA_HOME = \"%JAVA_HOME%\" >&2\necho Please set the JAVA_HOME variable in your environment to match the >&2\necho location of your Java installation. >&2\necho.\ngoto error\n\n@REM ==== END VALIDATION ====\n\n:init\n\nset MAVEN_CMD_LINE_ARGS=%*\n\n@REM Find the project base dir, i.e. the directory that contains the folder \".mvn\".\n@REM Fallback to current working directory if not found.\n\nset MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%\nIF NOT \"%MAVEN_PROJECTBASEDIR%\"==\"\" goto endDetectBaseDir\n\nset EXEC_DIR=%CD%\nset WDIR=%EXEC_DIR%\n:findBaseDir\nIF EXIST \"%WDIR%\"\\.mvn goto baseDirFound\ncd ..\nIF \"%WDIR%\"==\"%CD%\" goto baseDirNotFound\nset WDIR=%CD%\ngoto findBaseDir\n\n:baseDirFound\nset MAVEN_PROJECTBASEDIR=%WDIR%\ncd \"%EXEC_DIR%\"\ngoto endDetectBaseDir\n\n:baseDirNotFound\nset MAVEN_PROJECTBASEDIR=%EXEC_DIR%\ncd \"%EXEC_DIR%\"\n\n:endDetectBaseDir\n\nIF NOT EXIST \"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\" goto endReadAdditionalConfig\n\n@setlocal EnableExtensions EnableDelayedExpansion\nfor /F \"usebackq delims=\" %%a in (\"%MAVEN_PROJECTBASEDIR%\\.mvn\\jvm.config\") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a\n@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%\n\n:endReadAdditionalConfig\n\nSET MAVEN_JAVA_EXE=\"%JAVA_HOME%\\bin\\java.exe\"\n\nset WRAPPER_JAR=\"\".\\.mvn\\wrapper\\maven-wrapper.jar\"\"\nset WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain\n\n%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%\nif ERRORLEVEL 1 goto error\ngoto end\n\n:error\nset ERROR_CODE=1\n\n:end\n@endlocal & set ERROR_CODE=%ERROR_CODE%\n\nif not \"%MAVEN_SKIP_RC%\" == \"\" goto skipRcPost\n@REM check for post script, once with legacy .bat ending and once with .cmd ending\nif exist \"%HOME%\\mavenrc_post.bat\" call \"%HOME%\\mavenrc_post.bat\"\nif exist \"%HOME%\\mavenrc_post.cmd\" call \"%HOME%\\mavenrc_post.cmd\"\n:skipRcPost\n\n@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'\nif \"%MAVEN_BATCH_PAUSE%\" == \"on\" pause\n\nif \"%MAVEN_TERMINATE_CMD%\" == \"on\" exit %ERROR_CODE%\n\nexit /B %ERROR_CODE%"
  },
  {
    "path": "part_1/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-1</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_1/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_1/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_1/src/main/resources/application.yaml",
    "content": "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",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n<?import javafx.scene.text.Font?>\n\n\n<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\">\n   <children>\n      <Label layoutX=\"99.0\" layoutY=\"109.0\" prefHeight=\"34.0\" prefWidth=\"394.0\" text=\"Hello World!\">\n         <font>\n            <Font size=\"26.0\" />\n         </font>\n      </Label>\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_2/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-2</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_2/src/main/java/example/AwesomeActionService.java",
    "content": "package example;\n\npublic interface AwesomeActionService {\n    String processName(String name);\n}\n"
  },
  {
    "path": "part_2/src/main/java/example/DefaultAwesomeActionService.java",
    "content": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService implements AwesomeActionService {\n\n    @Override\n    public String processName(final String name) {\n        if(name.equals(\"Anton\")) {\n            return \"Hello Anton!\";\n        }\n        else {\n            return \"Hello Unknown Stranger!\";\n        }\n    }\n\n}\n"
  },
  {
    "path": "part_2/src/main/java/example/HelloworldController.java",
    "content": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@FXMLController\npublic class HelloworldController {\n\n    @FXML\n    private Label helloLabel;\n  \n    @FXML\n    private TextField nameField;\n    \n    // Be aware: This is a Spring bean. So we can do the following:\n    @Autowired\n    private AwesomeActionService actionService;\n    \n    @FXML\n    private void setHelloText(final Event event) {\n       final String textToBeShown = actionService.processName(nameField.getText());\n       helloLabel.setText(textToBeShown); \n    }\n}\n"
  },
  {
    "path": "part_2/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_2/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_2/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false\n\njavafx:\n    title: MyCoolApp (Pt 2)"
  },
  {
    "path": "part_2/src/main/resources/example/helloworld.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.control.TextField?>\n<?import javafx.scene.layout.Pane?>\n<?import javafx.scene.text.Font?>\n\n<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\">\n   <children>\n      <Label fx:id=\"helloLabel\" layoutX=\"99.0\" layoutY=\"109.0\" prefHeight=\"34.0\" prefWidth=\"394.0\" text=\"Hello World!\">\n         <font>\n            <Font size=\"26.0\" />\n         </font>\n      </Label>\n      <TextField fx:id=\"nameField\" layoutX=\"99.0\" layoutY=\"162.0\" prefHeight=\"26.0\" prefWidth=\"234.0\" />\n      <Button fx:id=\"helloButton\" layoutX=\"347.0\" layoutY=\"162.0\" mnemonicParsing=\"false\" onAction=\"#setHelloText\" text=\"Button\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_3/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-3</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_3/src/main/java/example/AwesomeActionService.java",
    "content": "package example;\n\npublic interface AwesomeActionService {\n    String processName(String name);\n}\n"
  },
  {
    "path": "part_3/src/main/java/example/DefaultAwesomeActionService.java",
    "content": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService implements AwesomeActionService {\n\n    @Override\n    public String processName(final String name) {\n        if(name.equals(\"Anton\")) {\n            return \"Hello Anton!\";\n        }\n        else {\n            return \"Hello Unknown Stranger!\";\n        }\n    }\n\n}\n"
  },
  {
    "path": "part_3/src/main/java/example/HelloworldController.java",
    "content": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@FXMLController\npublic class HelloworldController {\n\n    @FXML\n    private Label helloLabel;\n  \n    @FXML\n    private TextField nameField;\n    \n    // Be aware: This is a Spring bean. So we can do the following:\n    @Autowired\n    private AwesomeActionService actionService;\n    \n    @FXML\n    private void setHelloText(final Event event) {\n       final String textToBeShown = actionService.processName(nameField.getText());\n       helloLabel.setText(textToBeShown); \n    }\n}\n"
  },
  {
    "path": "part_3/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_3/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_3/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false"
  },
  {
    "path": "part_3/src/main/resources/example/global.css",
    "content": ".root {\n   -fx-background-color: #FFFFFF;\n}\n\n"
  },
  {
    "path": "part_3/src/main/resources/example/helloworld.css",
    "content": ".button {\n    -fx-background-color: #009688;\n    -fx-background-radius: 0;\n    -fx-text-fill: #FFFFFF;\n    -fx-margin: 0;\n}\n\n.text-field {\n    -fx-background-color: #000000, white , white;\n    -fx-background-insets: 0 0 -1 0, 0 0 0 0, 0 -1 3 -1;\n    -fx-background-radius: 0;\n    -fx-margin: 0;\n}\n\n.text-field:focused {\n    -fx-background-color: #009688 , white , white;\n    -fx-background-insets: 0 0 -2 0, 0 0 0 0, 0 -1 3 -1;\n}"
  },
  {
    "path": "part_3/src/main/resources/example/helloworld.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.control.TextField?>\n<?import javafx.scene.layout.Pane?>\n<?import javafx.scene.text.Font?>\n\n<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\">\n   <children>\n      <Label fx:id=\"helloLabel\" layoutX=\"99.0\" layoutY=\"109.0\" prefHeight=\"34.0\" prefWidth=\"394.0\" text=\"Hello World!\">\n         <font>\n            <Font size=\"26.0\" />\n         </font>\n      </Label>\n      <TextField fx:id=\"nameField\" layoutX=\"99.0\" layoutY=\"162.0\" prefHeight=\"26.0\" prefWidth=\"234.0\" />\n      <Button fx:id=\"helloButton\" layoutX=\"347.0\" layoutY=\"162.0\" mnemonicParsing=\"false\" onAction=\"#setHelloText\" text=\"Button\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_4/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-4</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_4/src/main/java/example/AwesomeActionService.java",
    "content": "package example;\n\npublic interface AwesomeActionService {\n    String processName(String name);\n}\n"
  },
  {
    "path": "part_4/src/main/java/example/DefaultAwesomeActionService.java",
    "content": "package example;\n\nimport java.text.MessageFormat;\nimport java.util.ResourceBundle;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService implements AwesomeActionService {\n\n    private ResourceBundle bundle = ResourceBundle.getBundle(\"example.helloworld\");\n\n    @Override\n    public String processName(final String name) {\n        return MessageFormat.format(bundle.getString(\"greeting\"), name);\n    }\n\n}\n"
  },
  {
    "path": "part_4/src/main/java/example/HelloworldController.java",
    "content": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@FXMLController\npublic class HelloworldController {\n\n    @FXML\n    private Label helloLabel;\n  \n    @FXML\n    private TextField nameField;\n    \n    // Be aware: This is a Spring bean. So we can do the following:\n    @Autowired\n    private AwesomeActionService actionService;\n    \n    @FXML\n    private void setHelloText(final Event event) {\n       final String textToBeShown = actionService.processName(nameField.getText());\n       helloLabel.setText(textToBeShown); \n    }\n}\n"
  },
  {
    "path": "part_4/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView(bundle=\"example.helloworld\")\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_4/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_4/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false"
  },
  {
    "path": "part_4/src/main/resources/example/global.css",
    "content": ".root {\n   -fx-background-color: #FFFFFF;\n}\n\n"
  },
  {
    "path": "part_4/src/main/resources/example/helloworld.css",
    "content": ".button {\n    -fx-background-color: #009688;\n    -fx-background-radius: 0;\n    -fx-text-fill: #FFFFFF;\n    -fx-margin: 0;\n}\n\n.text-field {\n    -fx-background-color: #000000, white , white;\n    -fx-background-insets: 0 0 -1 0, 0 0 0 0, 0 -1 3 -1;\n    -fx-background-radius: 0;\n    -fx-margin: 0;\n}\n\n.text-field:focused {\n    -fx-background-color: #009688 , white , white;\n    -fx-background-insets: 0 0 -2 0, 0 0 0 0, 0 -1 3 -1;\n}"
  },
  {
    "path": "part_4/src/main/resources/example/helloworld.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.control.TextField?>\n<?import javafx.scene.layout.Pane?>\n<?import javafx.scene.text.Font?>\n\n<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\">\n   <children>\n      <Label fx:id=\"helloLabel\" layoutX=\"99.0\" layoutY=\"109.0\" prefHeight=\"34.0\" prefWidth=\"394.0\" text=\"%hello\">\n         <font>\n            <Font size=\"26.0\" />\n         </font>\n      </Label>\n      <TextField fx:id=\"nameField\" layoutX=\"99.0\" layoutY=\"162.0\" prefHeight=\"26.0\" prefWidth=\"234.0\" />\n      <Button fx:id=\"helloButton\" layoutX=\"347.0\" layoutY=\"162.0\" mnemonicParsing=\"false\" onAction=\"#setHelloText\" text=\"%go\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_4/src/main/resources/example/helloworld.properties",
    "content": "hello=Hello\ngreeting=Hello {0}!\ngo=Go!"
  },
  {
    "path": "part_4/src/main/resources/example/helloworld_de.properties",
    "content": "hello=Hallo\ngreeting=Hallo {0}!\ngo=Los!"
  },
  {
    "path": "part_4/src/main/resources/example/helloworld_fr.properties",
    "content": "hello=Salut\ngreeting=Salut {0} !\ngo=Vas-y !"
  },
  {
    "path": "part_5/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-5</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <properties>\n    <springboot-javafx-test.version>0.0.4</springboot-javafx-test.version>\n  </properties>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-test</artifactId>\n      <version>${springboot-javafx-test.version}</version>\n      <scope>test</scope>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_5/src/main/java/example/AwesomeActionService.java",
    "content": "package example;\n\npublic interface AwesomeActionService {\n    String processName(String name);\n}\n"
  },
  {
    "path": "part_5/src/main/java/example/DefaultAwesomeActionService.java",
    "content": "package example;\n\nimport org.springframework.stereotype.Component;\n\n@Component\npublic class DefaultAwesomeActionService implements AwesomeActionService {\n\n    @Override\n    public String processName(final String name) {\n        if(name.equals(\"Anton\")) {\n            return \"Hello Anton!\";\n        }\n        else {\n            return \"Hello Unknown Stranger!\";\n        }\n    }\n\n}\n"
  },
  {
    "path": "part_5/src/main/java/example/HelloworldController.java",
    "content": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@FXMLController\npublic class HelloworldController {\n\n    @FXML\n    private Label helloLabel;\n  \n    @FXML\n    private TextField nameField;\n    \n    // Be aware: This is a Spring bean. So we can do the following:\n    @Autowired\n    private AwesomeActionService actionService;\n    \n    @FXML\n    private void setHelloText(final Event event) {\n       final String textToBeShown = actionService.processName(nameField.getText());\n       helloLabel.setText(textToBeShown); \n    }\n}\n"
  },
  {
    "path": "part_5/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_5/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_5/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false"
  },
  {
    "path": "part_5/src/main/resources/example/helloworld.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.control.TextField?>\n<?import javafx.scene.layout.Pane?>\n<?import javafx.scene.text.Font?>\n\n<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\">\n   <children>\n      <Label fx:id=\"helloLabel\" layoutX=\"99.0\" layoutY=\"109.0\" prefHeight=\"34.0\" prefWidth=\"394.0\" text=\"Hello World!\">\n         <font>\n            <Font size=\"26.0\" />\n         </font>\n      </Label>\n      <TextField fx:id=\"nameField\" layoutX=\"99.0\" layoutY=\"162.0\" prefHeight=\"26.0\" prefWidth=\"234.0\" />\n      <Button fx:id=\"helloButton\" layoutX=\"347.0\" layoutY=\"162.0\" mnemonicParsing=\"false\" onAction=\"#setHelloText\" text=\"Button\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_5/src/test/java/example/HelloworldView2Test.java",
    "content": "package example;\n\nimport static org.hamcrest.CoreMatchers.is;\nimport static org.junit.Assert.assertThat;\n\nimport javax.annotation.PostConstruct;\n\nimport org.junit.After;\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\nimport de.roskenet.jfxsupport.test.GuiTest;\nimport javafx.application.Platform;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@RunWith(SpringRunner.class)\n@SpringBootTest\npublic class HelloworldView2Test extends GuiTest {\n    \n    @Autowired\n    private HelloworldView helloworldView;\n    \n    @PostConstruct\n    public void init() throws Exception {\n        init(helloworldView);\n    }\n    \n    @Test\n    public void testClickButton_Anton() {\n        clickOn(\"#nameField\")\n            .write(\"Anton\")\n            .clickOn(\"#helloButton\");\n\n        assertThat(labelText(), is(\"Hello Anton!\"));\n    }\n\n    @Test\n    public void testClickButton_Berta() {\n        clickOn(\"#nameField\")\n            .write(\"Berta\")\n            .clickOn(\"#helloButton\");\n\n        assertThat(labelText(), is(\"Hello Unknown Stranger!\"));\n    }\n    \n    private String labelText() {\n        return ((Label) find(\"#helloLabel\")).getText();\n    }\n    \n    @After\n    public void resetValues() {\n        // You are responsible for cleaning up your Beans!\n        Platform.runLater(() -> {\n            TextField helloLabel = (TextField) find(\"#nameField\");\n            helloLabel.setText(\"\");\n        });\n    }\n\n}\n"
  },
  {
    "path": "part_5/src/test/java/example/HelloworldViewTest.java",
    "content": "package example;\n\nimport static org.hamcrest.CoreMatchers.is;\nimport static org.junit.Assert.assertThat;\n\nimport javax.annotation.PostConstruct;\n\nimport org.junit.After;\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\nimport de.roskenet.jfxsupport.test.GuiTest;\nimport javafx.application.Platform;\nimport javafx.scene.control.Label;\nimport javafx.scene.control.TextField;\n\n@RunWith(SpringRunner.class)\n@SpringBootTest\npublic class HelloworldViewTest extends GuiTest {\n\n    @PostConstruct\n    public void init() throws Exception {\n        init(HelloworldView.class);\n    }\n    \n    @Test\n    public void testClickButton_Anton() {\n        clickOn(\"#nameField\")\n            .write(\"Anton\")\n            .clickOn(\"#helloButton\");\n\n        assertThat(labelText(), is(\"Hello Anton!\"));\n    }\n\n    @Test\n    public void testClickButton_Berta() {\n        clickOn(\"#nameField\")\n            .write(\"Berta\")\n            .clickOn(\"#helloButton\");\n\n        assertThat(labelText(), is(\"Hello Unknown Stranger!\"));\n    }\n    \n    private String labelText() {\n        return ((Label) find(\"#helloLabel\")).getText();\n    }\n    \n    @After\n    public void resetValues() {\n        // You are responsible for cleaning up your Beans!\n        Platform.runLater(() -> {\n            TextField helloLabel = (TextField) find(\"#nameField\");\n            helloLabel.setText(\"\");\n        });\n    }\n\n}\n"
  },
  {
    "path": "part_6_1/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-6-1</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_6_1/src/main/java/example/HelloworldJavaView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\nimport javafx.scene.Parent;\nimport javafx.scene.control.Button;\nimport javafx.scene.layout.Pane;\n\n@FXMLView\npublic class HelloworldJavaView extends AbstractFxmlView {\n\n    private Pane myJavaCodedPane;\n    \n    public HelloworldJavaView() {\n       Pane pane = new Pane();\n       Button button = new Button(\"A Button\");\n       \n       pane.getChildren().add(button);\n       myJavaCodedPane = pane;\n    }\n    \n    @Override\n    public Parent getView() {\n        return myJavaCodedPane;\n    }\n}\n"
  },
  {
    "path": "part_6_1/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldJavaView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_6_1/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false"
  },
  {
    "path": "part_6_2/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-6-2</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_6_2/src/main/java/example/FirstView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class FirstView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_6_2/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, FirstView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_6_2/src/main/java/example/SecondView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class SecondView extends AbstractFxmlView{\n\n}\n"
  },
  {
    "path": "part_6_2/src/main/java/example/ViewController.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\n\n@FXMLController\npublic class ViewController {\n    \n    public void showFirstView(Event event) {\n        Main.showView(FirstView.class);\n    }\n\n    public void showSecondView(Event event) {\n        Main.showView(SecondView.class);\n    }\n}\n"
  },
  {
    "path": "part_6_2/src/main/resources/application.yaml",
    "content": "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",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n<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\">\n   <children>\n      <Label layoutX=\"36.0\" layoutY=\"54.0\" prefHeight=\"38.0\" prefWidth=\"225.0\" text=\"FirstView\" />\n      <Button id=\"secondView\" layoutX=\"475.0\" layoutY=\"335.0\" mnemonicParsing=\"false\" onAction=\"#showSecondView\" text=\"Second View\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_6_2/src/main/resources/example/second.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n\n<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\">\n   <children>\n      <Label layoutX=\"36.0\" layoutY=\"54.0\" prefHeight=\"38.0\" prefWidth=\"225.0\" text=\"SecondView\" />\n      <Button id=\"firstView\" layoutX=\"475.0\" layoutY=\"335.0\" mnemonicParsing=\"false\" onAction=\"#showFirstView\" text=\"First View\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_7/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-7</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_7/src/main/java/example/HelloworldController.java",
    "content": "package example;\n\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\nimport javafx.scene.layout.Pane;\n\n@FXMLController\npublic class HelloworldController {\n\n    @FXML\n    Pane myDynamicPane;\n    \n    @Autowired\n    SomeButtonsView someButtonsView;\n    \n    @Autowired\n    SomeOtherView someOtherView;\n\n    public void showSomeButtonView(final Event e) {\n        myDynamicPane.getChildren().clear();\n        myDynamicPane.getChildren().add(someButtonsView.getView());\n    }\n    \n    public void showSomeOtherView(final Event e) {\n        myDynamicPane.getChildren().clear();\n        myDynamicPane.getChildren().add(someOtherView.getView());\n    }\n}\n"
  },
  {
    "path": "part_7/src/main/java/example/HelloworldView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class HelloworldView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_7/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n    public static void main(String[] args) {\n        launch(Main.class, HelloworldView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_7/src/main/java/example/SomeButtonsController.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.fxml.FXML;\n\n@FXMLController\npublic class SomeButtonsController {\n\n    @FXML\n    public void reactOnClick(final Event e) {\n        System.out.println(\"Clicked a button\");\n    }\n}\n"
  },
  {
    "path": "part_7/src/main/java/example/SomeButtonsView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class SomeButtonsView extends AbstractFxmlView{\n\n}\n"
  },
  {
    "path": "part_7/src/main/java/example/SomeOtherView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class SomeOtherView extends AbstractFxmlView{\n\n}\n"
  },
  {
    "path": "part_7/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false\n        \njavafx:\n    title: MyCoolApp\n    \n"
  },
  {
    "path": "part_7/src/main/resources/example/helloworld.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.SplitPane?>\n<?import javafx.scene.layout.AnchorPane?>\n<?import javafx.scene.layout.Pane?>\n\n<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\">\n  <items>\n    <AnchorPane minHeight=\"0.0\" minWidth=\"0.0\" prefHeight=\"160.0\" prefWidth=\"100.0\">\n         <children>\n            <Button layoutX=\"7.0\" layoutY=\"14.0\" mnemonicParsing=\"false\" onAction=\"#showSomeButtonView\" prefHeight=\"26.0\" prefWidth=\"189.0\" text=\"SomeButtonView\" />\n            <Button layoutX=\"7.0\" layoutY=\"48.0\" mnemonicParsing=\"false\" onAction=\"#showSomeOtherView\" prefHeight=\"26.0\" prefWidth=\"189.0\" text=\"SomeOtherView\" />\n         </children></AnchorPane>\n      <Pane id=\"rightPane\" fx:id=\"myDynamicPane\" prefHeight=\"200.0\" prefWidth=\"200.0\" />\n  </items>\n</SplitPane>\n"
  },
  {
    "path": "part_7/src/main/resources/example/somebuttons.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.CheckBox?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n<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\">\n   <children>\n      <Button layoutX=\"32.0\" layoutY=\"60.0\" mnemonicParsing=\"false\" onAction=\"#reactOnClick\" text=\"DoSomething\" />\n      <Label layoutX=\"32.0\" layoutY=\"31.0\" text=\"Some Buttons\" />\n      <CheckBox id=\"checkMe\" layoutX=\"33.0\" layoutY=\"106.0\" mnemonicParsing=\"false\" text=\"CheckMe\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_7/src/main/resources/example/someother.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n\n<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\">\n   <children>\n      <Label layoutX=\"14.0\" layoutY=\"72.0\" text=\"This is some other view\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_8/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n  <artifactId>part-8</artifactId>\n  <version>0.0.1</version>\n\n  <parent>\n    <groupId>de.roskenet.spring-fx-examples</groupId>\n    <artifactId>parent</artifactId>\n    <version>3.0.0</version>\n    <relativePath>../pom.xml</relativePath>\n  </parent>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.springframework.boot</groupId>\n      <artifactId>spring-boot-starter</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>de.roskenet</groupId>\n      <artifactId>springboot-javafx-support</artifactId>\n    </dependency>\n  </dependencies>\n</project>\n"
  },
  {
    "path": "part_8/src/main/java/example/FirstView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView\npublic class FirstView extends AbstractFxmlView {\n\n}\n"
  },
  {
    "path": "part_8/src/main/java/example/Main.java",
    "content": "package example;\n\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;\n\n@SpringBootApplication\npublic class Main extends AbstractJavaFxApplicationSupport{\n\n    public static void main(String[] args) {\n        launch(Main.class, FirstView.class, args);\n    }\n}\n"
  },
  {
    "path": "part_8/src/main/java/example/ToolController.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\n\n@FXMLController\npublic class ToolController {\n\n    public void doSomething(final Event e) {\n        System.out.println(\"You pressed some button!\");\n    }\n}\n"
  },
  {
    "path": "part_8/src/main/java/example/ToolView.java",
    "content": "package example;\n\nimport de.felixroske.jfxsupport.AbstractFxmlView;\nimport de.felixroske.jfxsupport.FXMLView;\n\n@FXMLView(title=\"My second view\")\npublic class ToolView extends AbstractFxmlView{\n\n}\n"
  },
  {
    "path": "part_8/src/main/java/example/ViewController.java",
    "content": "package example;\n\nimport java.io.IOException;\n\nimport de.felixroske.jfxsupport.FXMLController;\nimport javafx.event.Event;\nimport javafx.stage.Modality;\n\n@FXMLController\npublic class ViewController {\n    \n    public void showToolWindow(Event event) throws IOException {\n        Main.showView(ToolView.class, Modality.NONE);\n    }\n}\n"
  },
  {
    "path": "part_8/src/main/resources/application.yaml",
    "content": "spring:\n    jmx: \n        enabled: false\njavafx:\n    stage:\n        resizable: false\n    title: MyCoolApp"
  },
  {
    "path": "part_8/src/main/resources/example/first.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n<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\">\n   <children>\n      <Label layoutX=\"36.0\" layoutY=\"54.0\" prefHeight=\"38.0\" prefWidth=\"225.0\" text=\"FirstView\" />\n      <Button id=\"toolView\" layoutX=\"475.0\" layoutY=\"335.0\" mnemonicParsing=\"false\" onAction=\"#showToolWindow\" text=\"Open Tools\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "part_8/src/main/resources/example/tool.fxml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<?import javafx.scene.control.Button?>\n<?import javafx.scene.control.Label?>\n<?import javafx.scene.layout.Pane?>\n\n<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\">\n   <children>\n      <Label layoutX=\"36.0\" layoutY=\"55.0\" prefHeight=\"105.0\" prefWidth=\"225.0\" text=\"This is some ToolWindow\" />\n      <Button layoutX=\"36.0\" layoutY=\"147.0\" mnemonicParsing=\"false\" onAction=\"#doSomething\" text=\"DoSomething\" />\n   </children>\n</Pane>\n"
  },
  {
    "path": "pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0\n\t\t\t\t      http://maven.apache.org/maven-v4_0_0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n\n  <groupId>de.roskenet.spring-fx-examples</groupId>\n  <artifactId>parent</artifactId>\n  <packaging>pom</packaging>\n  <version>3.0.0</version>\n  <name>Multi Chapter Parent Project</name>\n\n  <parent>\n    <groupId>org.springframework.boot</groupId>\n    <artifactId>spring-boot-starter-parent</artifactId>\n    <version>2.0.0.RELEASE</version>\n    <relativePath /> <!-- lookup parent from repository -->\n  </parent>\n\n  <properties>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n    <java.version>1.8</java.version>\n    <springboot-javafx.version>2.1.6</springboot-javafx.version>\n  </properties>\n\n  <modules>\n    <module>part_1</module>\n    <module>part_2</module>\n    <module>part_3</module>\n    <module>part_4</module>\n    <module>part_5</module>\n    <module>part_6_1</module>\n    <module>part_6_2</module>\n    <module>part_7</module>\n    <module>part_8</module>\n  </modules>\n\n  <dependencyManagement>\n    <dependencies>\n      <dependency>\n        <groupId>de.roskenet</groupId>\n        <artifactId>springboot-javafx-support</artifactId>\n        <version>${springboot-javafx.version}</version>\n      </dependency>\n    </dependencies>\n  </dependencyManagement>\n  \n   <build>\n    <plugins>\n      <plugin>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-maven-plugin</artifactId>\n      </plugin>\n    </plugins>\n  </build> \n</project>\n"
  }
]