diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index 6990cdd9..73c99485 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -1,5 +1,5 @@
name: push
-on:
+on:
push:
create:
tags:
@@ -9,67 +9,67 @@ jobs:
name: LauncherRuntime
runs-on: ubuntu-latest
steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- submodules: recursive
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
- - name: Cache Gradle
- uses: actions/cache@v1
- with:
- path: ~/.gradle/caches
- key: gravit-${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-launcher-runtime
+ - name: Cache Gradle
+ uses: actions/cache@v1
+ with:
+ path: ~/.gradle/caches
+ key: gravit-${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-launcher-runtime
- - name: Set up JDK 11
- uses: actions/setup-java@v1
- with:
- java-version: 11
+ - name: Set up JDK 11
+ uses: actions/setup-java@v1
+ with:
+ java-version: 11
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
- - name: Build with Gradle
- run: ./gradlew build
+ - name: Build with Gradle
+ run: ./gradlew build
- - name: Create artifacts
- run: |
- mkdir -p artifacts
- cd runtime
- zip -r -9 ../artifacts/runtime.zip *
- cd ../build/libs
- cp *.jar ../../artifacts
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v1
- with:
- name: LauncherRuntime
- path: artifacts
+ - name: Create artifacts
+ run: |
+ mkdir -p artifacts
+ cd runtime
+ zip -r -9 ../artifacts/runtime.zip *
+ cd ../build/libs
+ cp *.jar ../../artifacts
- - name: Create release
- id: create_release
- uses: actions/create-release@v1
- if: github.event_name == 'create'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ github.ref }}
- release_name: GravitLauncher ${{ github.ref }}
- draft: false
- prerelease: false
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: LauncherRuntime
+ path: artifacts
- - name: Pack release
- if: github.event_name == 'create'
- run: |
- cd artifacts/
- zip -r -9 ../Release.zip *
+ - name: Create release
+ id: create_release
+ uses: actions/create-release@v1
+ if: github.event_name == 'create'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ github.ref }}
+ release_name: GravitLauncher ${{ github.ref }}
+ draft: false
+ prerelease: false
- - name: Upload release
- if: github.event_name == 'create'
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./Release.zip
- asset_name: Release.zip
- asset_content_type: application/zip
+ - name: Pack release
+ if: github.event_name == 'create'
+ run: |
+ cd artifacts/
+ zip -r -9 ../Release.zip *
+
+ - name: Upload release
+ if: github.event_name == 'create'
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./Release.zip
+ asset_name: Release.zip
+ asset_content_type: application/zip
diff --git a/.gitignore b/.gitignore
index 1369af48..2fdee56b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,5 +107,6 @@ buildnumber
*.directory
cmd.bat
cmd.sh
+project/target
## PVS Studio
.PVS-Studio/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 18f54bd8..5b54d0a6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,13 +23,13 @@ build:
stage: build
script: gradle -Dorg.gradle.daemon=false --build-cache assemble
after_script:
- - apt-get -y update
- - apt-get -y install zip
- - mkdir -p artifacts
- - cd runtime
- - zip -r -9 ../artifacts/runtime.zip *
- - cd ../build/libs
- - cp *.jar ../../artifacts
+ - apt-get -y update
+ - apt-get -y install zip
+ - mkdir -p artifacts
+ - cd runtime
+ - zip -r -9 ../artifacts/runtime.zip *
+ - cd ../build/libs
+ - cp *.jar ../../artifacts
cache:
key: "$CI_COMMIT_REF_NAME"
policy: push
@@ -39,7 +39,7 @@ build:
artifacts:
expire_in: 6 week
paths:
- - artifacts
+ - artifacts
test:
stage: test
diff --git a/build.gradle b/build.gradle
index 42b75c61..f3333ada 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,12 +6,12 @@ plugins {
}
javafx {
version = "12"
- modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.swing' ]
+ modules = ['javafx.controls', 'javafx.fxml', 'javafx.swing']
}
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
group 'pro.gravit.launcher'
-version '1.0.0'
+version '1.1.0'
def mainClassName = "pro.gravit.launcher.client.JavaRuntimeModule"
tasks.withType(JavaCompile) {
@@ -22,8 +22,8 @@ tasks.withType(JavaCompile) {
jar {
manifest.attributes("Module-Main-Class": mainClassName,
- "Module-Config-Class": "pro.gravit.launcher.client.GuiModuleConfig",
- "Module-Config-Name": "JavaRuntime")
+ "Module-Config-Class": "pro.gravit.launcher.client.GuiModuleConfig",
+ "Module-Config-Name": "JavaRuntime")
}
repositories {
@@ -40,3 +40,9 @@ dependencies {
implementation 'com.github.oshi:oshi-core:4.5.2'
implementation 'com.google.code.gson:gson:2.8.6'
}
+
+wrapper {
+ distributionType = Wrapper.DistributionType.ALL
+}
+
+defaultTasks 'build'
diff --git a/compat/lang/runtime_en.properties b/compat/lang/runtime_en.properties
index eb60470b..9f909b38 100644
--- a/compat/lang/runtime_en.properties
+++ b/compat/lang/runtime_en.properties
@@ -1,5 +1,4 @@
#GravitLauncher (en) lang file
-
###Login
runtime.scenes.login.login.login=LOGIN...
runtime.scenes.login.login.password=PASS...
@@ -14,7 +13,6 @@ runtime.scenes.login.login.newsArea=
runtime.scenes.login.login.textLogin=You do not have an account?
runtime.scenes.login.login.hideTooltip=Hide
runtime.scenes.login.login.closeTooltip=Close
-
###Processing
runtime.overlay.processing.processing.description=LOADING...
runtime.overlay.processing.text.auth=Log-in
@@ -22,7 +20,6 @@ runtime.overlay.processing.text.authAvailability=Updating available authorizatio
runtime.overlay.processing.text.launcher=Check for launcher updates
runtime.overlay.processing.text.setprofile=Change profile
runtime.overlay.processing.text.profiles=Getting a list of servers
-
###ServerMenu
runtime.scenes.servermenu.servermenu.heading=HEADER
runtime.scenes.servermenu.servermenu.headingOnline=? / ?
@@ -34,43 +31,36 @@ runtime.scenes.servermenu.servermenu.closeTooltip=Close
runtime.scenes.servermenu.servermenu.settingsTooltip=Settings
runtime.scenes.servermenu.servermenu.consoleTooltip=Console
runtime.scenes.servermenu.servermenu.logoutTooltip=Logout
-
###Components
#serverButton
runtime.scenes.components.serverButton.online=
runtime.scenes.components.serverButton.nameServer=
runtime.scenes.components.serverButton.genreServer=
-
#dialogApply
runtime.scenes.components.dialogApply.headingDialog=DIALOGUE TITLE
runtime.scenes.components.dialogApply.textDialog=
runtime.scenes.components.dialogApply.rejectTooltip=Reject
runtime.scenes.components.dialogApply.applyTooltip=Apply
runtime.scenes.components.dialogApply.closeTooltip=Close dialog
-
#dialogPane
runtime.scenes.components.dialog.headingDialog=DIALOGUE TITLE
runtime.scenes.components.dialog.textDialog=
runtime.scenes.components.dialog.applyTooltip=Apply
runtime.scenes.components.dialog.closeTooltip=Close dialog
-
#dialogTextInput
runtime.scenes.components.dialogTextInput.headingDialog=DIALOGUE TITLE
runtime.scenes.components.dialogTextInput.2fa=SECOND 2FA SECURITY CODE ...
runtime.scenes.components.dialogTextInput.forgot2fa=USE BACKUP CODE
runtime.scenes.components.dialogTextInput.applyTooltip=Apply
runtime.scenes.components.dialogTextInput.closeTooltip=Close dialog
-
#Notification
runtime.scenes.components.notification.notificationHeading=
runtime.scenes.components.notification.notificationText=
-
###Options
runtime.scenes.options.options.headingOptional=OPTIONAL MODS
runtime.scenes.options.options.optionsTooltip=Apply
runtime.scenes.options.options.hideTooltip=Hide
runtime.scenes.options.options.closeTooltip=Close
-
###Settings
runtime.scenes.settings.settings.langTooltip=language selection
runtime.scenes.settings.settings.hideTooltip=Hide
@@ -91,13 +81,12 @@ runtime.scenes.settings.langChanged.description=Restart launcher to apply change
runtime.scenes.settings.exitDialog.header=Sign out
runtime.scenes.settings.exitDialog.description=Are you sure you want to sign out?\nLauncher will forget your username and password and you will return to the login screen
runtime.scenes.settings.exitDialog.processing=Sign out...
-runtime.scenes.settings.deletedir.header = Deleting a folder with clients
-runtime.scenes.settings.deletedir.description = Are you sure you want to completely delete all files in the client folder?
-runtime.scenes.settings.deletedir.fail.header = Error deleting
-runtime.scenes.settings.deletedir.fail.description = An error occurred while deleting the folder. See the logs for more details.
+runtime.scenes.settings.deletedir.header=Deleting a folder with clients
+runtime.scenes.settings.deletedir.description=Are you sure you want to completely delete all files in the client folder?
+runtime.scenes.settings.deletedir.fail.header=Error deleting
+runtime.scenes.settings.deletedir.fail.description=An error occurred while deleting the folder. See the logs for more details.
runtime.scenes.settings.settings.ramLabel=
runtime.scenes.settings.settings.path=
-
###Debug
runtime.overlay.debug.debug.headingDebug=DEBUG
runtime.overlay.debug.debug.copyTooltip=Copy log to clipboard
@@ -105,7 +94,6 @@ runtime.overlay.debug.debug.killTooltip=kill process
runtime.overlay.debug.debug.version=
runtime.overlay.debug.debug.hideTooltip=Hide
runtime.overlay.debug.debug.closeTooltip=Close
-
###Console
runtime.scenes.console.console.headingConsole=Console
runtime.scenes.console.console.hideTooltip=Hide
@@ -115,7 +103,6 @@ runtime.scenes.console.console.send=EXECUTE
runtime.scenes.console.console.sendTooltip=Run the command on the server
runtime.scenes.console.console.commandInput=Enter the command ...
runtime.scenes.console.console.version=
-
###Update
runtime.overlay.update.update.headingUpdate=Downloading files
runtime.overlay.update.update.hideTooltip=Hide
diff --git a/compat/lang/runtime_ru.properties b/compat/lang/runtime_ru.properties
index 926dd9f7..83d0a649 100644
--- a/compat/lang/runtime_ru.properties
+++ b/compat/lang/runtime_ru.properties
@@ -1,5 +1,4 @@
#GravitLauncher (ru) lang file
-
###Login
runtime.scenes.login.login.login=ЛОГИН...
runtime.scenes.login.login.password=ПАРОЛЬ...
@@ -14,7 +13,6 @@ runtime.scenes.login.login.newsArea=
runtime.scenes.login.login.textLogin=У вас нет учетной записи?
runtime.scenes.login.login.hideTooltip=Свернуть
runtime.scenes.login.login.closeTooltip=Закрыть лаунчер
-
###Processing
runtime.overlay.processing.processing.description=ЗАГРУЗКА...
runtime.overlay.processing.text.auth=Авторизация
@@ -22,7 +20,6 @@ runtime.overlay.processing.text.authAvailability=Обновление досту
runtime.overlay.processing.text.launcher=Проверка обновлений лаунчера
runtime.overlay.processing.text.setprofile=Смена профиля
runtime.overlay.processing.text.profiles=Получение списка серверов
-
###ServerMenu
runtime.scenes.servermenu.servermenu.heading=ЗАГОЛОВОК
runtime.scenes.servermenu.servermenu.headingOnline=? / ?
@@ -34,43 +31,36 @@ runtime.scenes.servermenu.servermenu.closeTooltip=Закрыть
runtime.scenes.servermenu.servermenu.settingsTooltip=Настройки лаунчера
runtime.scenes.servermenu.servermenu.consoleTooltip=Консоль лаунчера
runtime.scenes.servermenu.servermenu.logoutTooltip=Выйти из аккаунта
-
###Components
#serverButton
runtime.scenes.components.serverButton.online=
runtime.scenes.components.serverButton.nameServer=
runtime.scenes.components.serverButton.genreServer=
-
#dialogApply
runtime.scenes.components.dialogApply.headingDialog=ЗАГОЛОВОК ДИАЛОГА
runtime.scenes.components.dialogApply.textDialog=
runtime.scenes.components.dialogApply.rejectTooltip=Отклонить
runtime.scenes.components.dialogApply.applyTooltip=Применить
runtime.scenes.components.dialogApply.closeTooltip=Закрыть сообщение
-
#dialogPane
runtime.scenes.components.dialog.headingDialog=ЗАГОЛОВОК ДИАЛОГА
runtime.scenes.components.dialog.textDialog=
runtime.scenes.components.dialog.applyTooltip=Применить
runtime.scenes.components.dialog.closeTooltip=Закрыть сообщение
-
#dialogTextInput
runtime.scenes.components.dialogTextInput.headingDialog=ЗАГОЛОВОК ДИАЛОГА
runtime.scenes.components.dialogTextInput.2fa=КОД ВТОРОГО ФАКТОРА ЗИЩИТЫ...
runtime.scenes.components.dialogTextInput.forgot2fa=ИСПОЛЬЗОВАТЬ РЕЗЕРВНЫЙ КОД
runtime.scenes.components.dialogTextInput.applyTooltip=Применить
runtime.scenes.components.dialogTextInput.closeTooltip=Закрыть сообщение
-
#Notification
runtime.scenes.components.notification.notificationHeading=
runtime.scenes.components.notification.notificationText=
-
###Options
runtime.scenes.options.options.headingOptional=ОПЦИОНАЛЬНЫЕ МОДЫ
runtime.scenes.options.options.optionsTooltip=Применить изменения
runtime.scenes.options.options.hideTooltip=Свернуть
runtime.scenes.options.options.closeTooltip=Закрыть
-
###Settings
runtime.scenes.settings.settings.langTooltip=Выбор языка
runtime.scenes.settings.settings.hideTooltip=Свернуть
@@ -91,13 +81,12 @@ runtime.scenes.settings.langChanged.description=Перезапустите ла
runtime.scenes.settings.exitDialog.header=Выход из аккаунта
runtime.scenes.settings.exitDialog.description=Вы действительно хотите выйти из аккаунта?\nЛаунчер забудет ваш логин и пароль и вы вернётесь на экран входа
runtime.scenes.settings.exitDialog.processing=Выполняется выход из аккаунта
-runtime.scenes.settings.deletedir.header = Удаление папки с клиентами
-runtime.scenes.settings.deletedir.description = Вы действительно хотите полностью удалить все файлы в папке с клиентами, включая настройки, локальные миры, ресурспаки?
-runtime.scenes.settings.deletedir.fail.header = Ошибка при удалении
-runtime.scenes.settings.deletedir.fail.description = Произошла ошибка при удалении папки. Посмотрите логи для получения более подробной информации
+runtime.scenes.settings.deletedir.header=Удаление папки с клиентами
+runtime.scenes.settings.deletedir.description=Вы действительно хотите полностью удалить все файлы в папке с клиентами, включая настройки, локальные миры, ресурспаки?
+runtime.scenes.settings.deletedir.fail.header=Ошибка при удалении
+runtime.scenes.settings.deletedir.fail.description=Произошла ошибка при удалении папки. Посмотрите логи для получения более подробной информации
runtime.scenes.settings.settings.ramLabel=
runtime.scenes.settings.settings.path=
-
###Debug
runtime.overlay.debug.debug.headingDebug=ОТЛАДКА КЛИЕНТА
runtime.overlay.debug.debug.copyTooltip=Скопировать данные в буфер обмена
@@ -105,7 +94,6 @@ runtime.overlay.debug.debug.killTooltip=Убить процесс
runtime.overlay.debug.debug.version=
runtime.overlay.debug.debug.hideTooltip=Свернуть
runtime.overlay.debug.debug.closeTooltip=Закрыть
-
###Console
runtime.scenes.console.console.headingConsole=КОНСОЛЬ
runtime.scenes.console.console.hideTooltip=Свернуть
@@ -115,7 +103,6 @@ runtime.scenes.console.console.send=ВЫПОЛНИТЬ
runtime.scenes.console.console.sendTooltip=Выполнить команду на сервере
runtime.scenes.console.console.commandInput=Введите команду...
runtime.scenes.console.console.version=
-
###Update
runtime.overlay.update.update.headingUpdate=Идет загрузка файлов
runtime.overlay.update.update.hideTooltip=Свернуть
diff --git a/gradle.properties b/gradle.properties
index e1833827..eeb2964e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-org.gradle.parallel=true
-org.gradle.daemon=false
-org.gradle.configureondemand=true
-org.gradle.caching=true
+org.gradle.parallel=true
+org.gradle.daemon=false
+org.gradle.configureondemand=true
+org.gradle.caching=true
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1b16c34a..decfb95b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew.bat b/gradlew.bat
index 9618d8d9..24467a14 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,100 +1,100 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/runtime/components/dialog.fxml b/runtime/components/dialog.fxml
index 7a4cd76b..e67bb4f9 100644
--- a/runtime/components/dialog.fxml
+++ b/runtime/components/dialog.fxml
@@ -22,6 +22,14 @@
+
-
diff --git a/runtime/components/dialogApply.fxml b/runtime/components/dialogApply.fxml
index 008c1443..f9de300e 100644
--- a/runtime/components/dialogApply.fxml
+++ b/runtime/components/dialogApply.fxml
@@ -19,7 +19,18 @@
-