Browse Source

chore: initial commit

Arnaud Vergnet 10 months ago
commit
20b2ffc38d

+ 15
- 0
.gitignore View File

@@ -0,0 +1,15 @@
1
+.gradle
2
+**/build/
3
+!src/**/build/
4
+
5
+# Ignore Gradle GUI config
6
+gradle-app.setting
7
+
8
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
9
+!gradle-wrapper.jar
10
+
11
+# Cache of project
12
+.gradletasknamecache
13
+
14
+# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
15
+# gradle/wrapper/gradle-wrapper.properties

+ 8
- 0
.idea/.gitignore View File

@@ -0,0 +1,8 @@
1
+# Default ignored files
2
+/shelf/
3
+/workspace.xml
4
+# Datasource local storage ignored files
5
+/dataSources/
6
+/dataSources.local.xml
7
+# Editor-based HTTP Client requests
8
+/httpRequests/

+ 22
- 0
.idea/codeStyles/Project.xml View File

@@ -0,0 +1,22 @@
1
+<component name="ProjectCodeStyleConfiguration">
2
+  <code_scheme name="Project" version="173">
3
+    <JetCodeStyleSettings>
4
+      <option name="PACKAGES_TO_USE_STAR_IMPORTS">
5
+        <value>
6
+          <package name="java.util" alias="false" withSubpackages="false" />
7
+          <package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
8
+          <package name="io.ktor" alias="false" withSubpackages="true" />
9
+        </value>
10
+      </option>
11
+      <option name="PACKAGES_IMPORT_LAYOUT">
12
+        <value>
13
+          <package name="" alias="false" withSubpackages="true" />
14
+          <package name="java" alias="false" withSubpackages="true" />
15
+          <package name="javax" alias="false" withSubpackages="true" />
16
+          <package name="kotlin" alias="false" withSubpackages="true" />
17
+          <package name="" alias="true" withSubpackages="true" />
18
+        </value>
19
+      </option>
20
+    </JetCodeStyleSettings>
21
+  </code_scheme>
22
+</component>

+ 5
- 0
.idea/codeStyles/codeStyleConfig.xml View File

@@ -0,0 +1,5 @@
1
+<component name="ProjectCodeStyleConfiguration">
2
+  <state>
3
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
+  </state>
5
+</component>

+ 6
- 0
.idea/compiler.xml View File

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <bytecodeTargetLevel target="11" />
5
+  </component>
6
+</project>

+ 16
- 0
.idea/gradle.xml View File

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="GradleSettings">
4
+    <option name="linkedExternalProjectsSettings">
5
+      <GradleProjectSettings>
6
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
7
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
8
+        <option name="modules">
9
+          <set>
10
+            <option value="$PROJECT_DIR$" />
11
+          </set>
12
+        </option>
13
+      </GradleProjectSettings>
14
+    </option>
15
+  </component>
16
+</project>

+ 20
- 0
.idea/jarRepositories.xml View File

@@ -0,0 +1,20 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="RemoteRepositoriesConfiguration">
4
+    <remote-repository>
5
+      <option name="id" value="central" />
6
+      <option name="name" value="Maven Central repository" />
7
+      <option name="url" value="https://repo1.maven.org/maven2" />
8
+    </remote-repository>
9
+    <remote-repository>
10
+      <option name="id" value="jboss.community" />
11
+      <option name="name" value="JBoss Community repository" />
12
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
13
+    </remote-repository>
14
+    <remote-repository>
15
+      <option name="id" value="MavenRepo" />
16
+      <option name="name" value="MavenRepo" />
17
+      <option name="url" value="https://repo.maven.apache.org/maven2/" />
18
+    </remote-repository>
19
+  </component>
20
+</project>

+ 10
- 0
.idea/misc.xml View File

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
4
+  <component name="FrameworkDetectionExcludesConfiguration">
5
+    <file type="web" url="file://$PROJECT_DIR$" />
6
+  </component>
7
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
8
+    <output url="file://$PROJECT_DIR$/out" />
9
+  </component>
10
+</project>

+ 6
- 0
.idea/vcs.xml View File

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 41
- 0
README.md View File

@@ -0,0 +1,41 @@
1
+# Clavardator
2
+
3
+This project contains the source for the 4IR Java project.
4
+
5
+## Technologies
6
+
7
+* Java 11.0.9 (openjdk)
8
+* JavaFX 11.0.2 (openfx)
9
+* Gradle 6.3
10
+
11
+## Installation
12
+
13
+#### Install Java 11
14
+
15
+Run this command
16
+```shell script
17
+sudo apt install openjdk-11-jdk
18
+```
19
+
20
+#### Optional: Install JavaFX Scene Builder 11
21
+
22
+Follow [this link](https://gluonhq.com/products/scene-builder/) to download and install it, then [this link](https://www.jetbrains.com/help/idea/opening-fxml-files-in-javafx-scene-builder.html) to set up Intellij
23
+
24
+#### Build and Run
25
+
26
+Run this  command
27
+
28
+```shell script
29
+./gradlew run
30
+```
31
+
32
+Or in Intellij, open the gradle window and click on `clavardator -> Tasks -> application -> run`.
33
+
34
+## Resources
35
+
36
+* [OpenJDK](https://adoptopenjdk.net/releases.html)
37
+* [JavaFX](https://gluonhq.com/products/javafx/)
38
+* [JavaFX Scene Builder](https://gluonhq.com/products/scene-builder/)
39
+* [Setting up JavaFX](https://openjfx.io/openjfx-docs/)
40
+* [Settings up Scene builder in Intellij](https://www.jetbrains.com/help/idea/opening-fxml-files-in-javafx-scene-builder.html#open-in-scene-builder)
41
+* [Intellij IDEA](https://www.jetbrains.com/idea/)

+ 22
- 0
build.gradle View File

@@ -0,0 +1,22 @@
1
+plugins {
2
+    id 'application'
3
+    id 'org.openjfx.javafxplugin' version '0.0.9'
4
+}
5
+
6
+group 'fr.insa.clavardator'
7
+version '1.0-SNAPSHOT'
8
+
9
+repositories {
10
+    mavenCentral()
11
+}
12
+
13
+dependencies {
14
+    testCompile group: 'junit', name: 'junit', version: '4.12'
15
+}
16
+
17
+javafx {
18
+    version = "11.0.2"
19
+    modules = [ 'javafx.controls', 'javafx.fxml' ]
20
+}
21
+
22
+mainClassName = 'fr.insa.clavardator.MainApp'

BIN
gradle/wrapper/gradle-wrapper.jar View File


+ 5
- 0
gradle/wrapper/gradle-wrapper.properties View File

@@ -0,0 +1,5 @@
1
+distributionBase=GRADLE_USER_HOME
2
+distributionPath=wrapper/dists
3
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
4
+zipStoreBase=GRADLE_USER_HOME
5
+zipStorePath=wrapper/dists

+ 185
- 0
gradlew View File

@@ -0,0 +1,185 @@
1
+#!/usr/bin/env sh
2
+
3
+#
4
+# Copyright 2015 the original author or authors.
5
+#
6
+# Licensed under the Apache License, Version 2.0 (the "License");
7
+# you may not use this file except in compliance with the License.
8
+# You may obtain a copy of the License at
9
+#
10
+#      https://www.apache.org/licenses/LICENSE-2.0
11
+#
12
+# Unless required by applicable law or agreed to in writing, software
13
+# distributed under the License is distributed on an "AS IS" BASIS,
14
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+# See the License for the specific language governing permissions and
16
+# limitations under the License.
17
+#
18
+
19
+##############################################################################
20
+##
21
+##  Gradle start up script for UN*X
22
+##
23
+##############################################################################
24
+
25
+# Attempt to set APP_HOME
26
+# Resolve links: $0 may be a link
27
+PRG="$0"
28
+# Need this for relative symlinks.
29
+while [ -h "$PRG" ] ; do
30
+    ls=`ls -ld "$PRG"`
31
+    link=`expr "$ls" : '.*-> \(.*\)$'`
32
+    if expr "$link" : '/.*' > /dev/null; then
33
+        PRG="$link"
34
+    else
35
+        PRG=`dirname "$PRG"`"/$link"
36
+    fi
37
+done
38
+SAVED="`pwd`"
39
+cd "`dirname \"$PRG\"`/" >/dev/null
40
+APP_HOME="`pwd -P`"
41
+cd "$SAVED" >/dev/null
42
+
43
+APP_NAME="Gradle"
44
+APP_BASE_NAME=`basename "$0"`
45
+
46
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48
+
49
+# Use the maximum available, or set MAX_FD != -1 to use that value.
50
+MAX_FD="maximum"
51
+
52
+warn () {
53
+    echo "$*"
54
+}
55
+
56
+die () {
57
+    echo
58
+    echo "$*"
59
+    echo
60
+    exit 1
61
+}
62
+
63
+# OS specific support (must be 'true' or 'false').
64
+cygwin=false
65
+msys=false
66
+darwin=false
67
+nonstop=false
68
+case "`uname`" in
69
+  CYGWIN* )
70
+    cygwin=true
71
+    ;;
72
+  Darwin* )
73
+    darwin=true
74
+    ;;
75
+  MINGW* )
76
+    msys=true
77
+    ;;
78
+  NONSTOP* )
79
+    nonstop=true
80
+    ;;
81
+esac
82
+
83
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84
+
85
+
86
+# Determine the Java command to use to start the JVM.
87
+if [ -n "$JAVA_HOME" ] ; then
88
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89
+        # IBM's JDK on AIX uses strange locations for the executables
90
+        JAVACMD="$JAVA_HOME/jre/sh/java"
91
+    else
92
+        JAVACMD="$JAVA_HOME/bin/java"
93
+    fi
94
+    if [ ! -x "$JAVACMD" ] ; then
95
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96
+
97
+Please set the JAVA_HOME variable in your environment to match the
98
+location of your Java installation."
99
+    fi
100
+else
101
+    JAVACMD="java"
102
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103
+
104
+Please set the JAVA_HOME variable in your environment to match the
105
+location of your Java installation."
106
+fi
107
+
108
+# Increase the maximum file descriptors if we can.
109
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110
+    MAX_FD_LIMIT=`ulimit -H -n`
111
+    if [ $? -eq 0 ] ; then
112
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113
+            MAX_FD="$MAX_FD_LIMIT"
114
+        fi
115
+        ulimit -n $MAX_FD
116
+        if [ $? -ne 0 ] ; then
117
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
118
+        fi
119
+    else
120
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121
+    fi
122
+fi
123
+
124
+# For Darwin, add options to specify how the application appears in the dock
125
+if $darwin; then
126
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127
+fi
128
+
129
+# For Cygwin or MSYS, switch paths to Windows format before running java
130
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133
+    
134
+    JAVACMD=`cygpath --unix "$JAVACMD"`
135
+
136
+    # We build the pattern for arguments to be converted via cygpath
137
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138
+    SEP=""
139
+    for dir in $ROOTDIRSRAW ; do
140
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
141
+        SEP="|"
142
+    done
143
+    OURCYGPATTERN="(^($ROOTDIRS))"
144
+    # Add a user-defined pattern to the cygpath arguments
145
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147
+    fi
148
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
149
+    i=0
150
+    for arg in "$@" ; do
151
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
153
+
154
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
155
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156
+        else
157
+            eval `echo args$i`="\"$arg\""
158
+        fi
159
+        i=`expr $i + 1`
160
+    done
161
+    case $i in
162
+        0) set -- ;;
163
+        1) set -- "$args0" ;;
164
+        2) set -- "$args0" "$args1" ;;
165
+        3) set -- "$args0" "$args1" "$args2" ;;
166
+        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167
+        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168
+        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169
+        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170
+        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171
+        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172
+    esac
173
+fi
174
+
175
+# Escape application args
176
+save () {
177
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178
+    echo " "
179
+}
180
+APP_ARGS=`save "$@"`
181
+
182
+# Collect all arguments for the java command, following the shell quoting and substitution rules
183
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184
+
185
+exec "$JAVACMD" "$@"

+ 104
- 0
gradlew.bat View File

@@ -0,0 +1,104 @@
1
+@rem
2
+@rem Copyright 2015 the original author or authors.
3
+@rem
4
+@rem Licensed under the Apache License, Version 2.0 (the "License");
5
+@rem you may not use this file except in compliance with the License.
6
+@rem You may obtain a copy of the License at
7
+@rem
8
+@rem      https://www.apache.org/licenses/LICENSE-2.0
9
+@rem
10
+@rem Unless required by applicable law or agreed to in writing, software
11
+@rem distributed under the License is distributed on an "AS IS" BASIS,
12
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+@rem See the License for the specific language governing permissions and
14
+@rem limitations under the License.
15
+@rem
16
+
17
+@if "%DEBUG%" == "" @echo off
18
+@rem ##########################################################################
19
+@rem
20
+@rem  Gradle startup script for Windows
21
+@rem
22
+@rem ##########################################################################
23
+
24
+@rem Set local scope for the variables with windows NT shell
25
+if "%OS%"=="Windows_NT" setlocal
26
+
27
+set DIRNAME=%~dp0
28
+if "%DIRNAME%" == "" set DIRNAME=.
29
+set APP_BASE_NAME=%~n0
30
+set APP_HOME=%DIRNAME%
31
+
32
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
33
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34
+
35
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37
+
38
+@rem Find java.exe
39
+if defined JAVA_HOME goto findJavaFromJavaHome
40
+
41
+set JAVA_EXE=java.exe
42
+%JAVA_EXE% -version >NUL 2>&1
43
+if "%ERRORLEVEL%" == "0" goto init
44
+
45
+echo.
46
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47
+echo.
48
+echo Please set the JAVA_HOME variable in your environment to match the
49
+echo location of your Java installation.
50
+
51
+goto fail
52
+
53
+:findJavaFromJavaHome
54
+set JAVA_HOME=%JAVA_HOME:"=%
55
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56
+
57
+if exist "%JAVA_EXE%" goto init
58
+
59
+echo.
60
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61
+echo.
62
+echo Please set the JAVA_HOME variable in your environment to match the
63
+echo location of your Java installation.
64
+
65
+goto fail
66
+
67
+:init
68
+@rem Get command-line arguments, handling Windows variants
69
+
70
+if not "%OS%" == "Windows_NT" goto win9xME_args
71
+
72
+:win9xME_args
73
+@rem Slurp the command line arguments.
74
+set CMD_LINE_ARGS=
75
+set _SKIP=2
76
+
77
+:win9xME_args_slurp
78
+if "x%~1" == "x" goto execute
79
+
80
+set CMD_LINE_ARGS=%*
81
+
82
+:execute
83
+@rem Setup the command line
84
+
85
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
86
+
87
+
88
+@rem Execute Gradle
89
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
90
+
91
+:end
92
+@rem End local scope for the variables with windows NT shell
93
+if "%ERRORLEVEL%"=="0" goto mainEnd
94
+
95
+:fail
96
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
97
+rem the _cmd.exe /c_ return code!
98
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
99
+exit /b 1
100
+
101
+:mainEnd
102
+if "%OS%"=="Windows_NT" endlocal
103
+
104
+:omega

+ 2
- 0
settings.gradle View File

@@ -0,0 +1,2 @@
1
+rootProject.name = 'clavardator'
2
+

+ 21
- 0
src/main/java/fr/insa/clavardator/FXMLController.java View File

@@ -0,0 +1,21 @@
1
+package fr.insa.clavardator;
2
+
3
+import javafx.fxml.FXML;
4
+import javafx.fxml.Initializable;
5
+import javafx.scene.control.Label;
6
+
7
+import java.net.URL;
8
+import java.util.ResourceBundle;
9
+
10
+public class FXMLController implements Initializable {
11
+
12
+  @FXML
13
+  private Label label;
14
+
15
+  @Override
16
+  public void initialize(URL url, ResourceBundle rb) {
17
+    String javaVersion = System.getProperty("java.version");
18
+    String javafxVersion = System.getProperty("javafx.version");
19
+    label.setText("-= CLAVARDATOR =-\nusing JavaFX " + javafxVersion + "\nRunning on Java " + javaVersion + ".");
20
+  }
21
+}

+ 28
- 0
src/main/java/fr/insa/clavardator/MainApp.java View File

@@ -0,0 +1,28 @@
1
+package fr.insa.clavardator;
2
+
3
+import javafx.application.Application;
4
+import javafx.fxml.FXMLLoader;
5
+import javafx.scene.Parent;
6
+import javafx.scene.Scene;
7
+import javafx.stage.Stage;
8
+
9
+
10
+public class MainApp extends Application {
11
+
12
+  public static void main(String[] args) {
13
+    launch(args);
14
+  }
15
+
16
+  @Override
17
+  public void start(Stage stage) throws Exception {
18
+    Parent root = FXMLLoader.load(getClass().getResource("scene.fxml"));
19
+
20
+    Scene scene = new Scene(root);
21
+    scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());
22
+
23
+    stage.setTitle("JavaFX and Gradle");
24
+    stage.setScene(scene);
25
+    stage.show();
26
+  }
27
+
28
+}

+ 15
- 0
src/main/resources/fr/insa/clavardator/scene.fxml View File

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+
3
+<?import javafx.scene.control.*?>
4
+<?import javafx.scene.layout.*?>
5
+
6
+<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.FXMLController">
7
+  <children>
8
+    <Label fx:id="label" text="Label" />
9
+    <BorderPane prefHeight="200.0" prefWidth="200.0">
10
+      <top>
11
+        <BorderPane prefHeight="11.0" prefWidth="368.0" BorderPane.alignment="CENTER" />
12
+      </top>
13
+    </BorderPane>
14
+  </children>
15
+</StackPane>

+ 3
- 0
src/main/resources/fr/insa/clavardator/styles.css View File

@@ -0,0 +1,3 @@
1
+.label {
2
+  -fx-text-fill: blue;
3
+}

Loading…
Cancel
Save