diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index fde7fbb678..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-language: java
-jdk: oraclejdk8
-
-before_install:
- - "export DISPLAY=:99.0"
- - "sh -e /etc/init.d/xvfb start"
-
-notifications:
- irc:
- channels: chat.freenode.net#bitsquare
- template:
- - '%{message} (%{repository}#%{build_number}, %{duration})'
- - '%{repository}/%{branch} %{commit} %{author}: %{commit_message}'
- - '%{build_url}'
- on_success: change
- on_failure: always
- use_notice: true
- skip_join: true
-
-env:
- - TERM=dumb
-
-after_success:
- - ./gradlew jacocoTestReport coveralls
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 5bbc101ae8..0000000000
--- a/build.gradle
+++ /dev/null
@@ -1,102 +0,0 @@
-import org.apache.tools.ant.filters.ReplaceTokens
-import org.apache.tools.ant.taskdefs.condition.Os
-
-plugins {
- id "com.github.johnrengelman.shadow" version "1.1.2"
- id "com.github.kt3k.coveralls" version "2.0.1x"
-}
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'application'
-apply plugin: 'jacoco'
-
-wrapper.gradleVersion = '2.1'
-
-version = '0.1.1-SNAPSHOT'
-sourceCompatibility = 1.8
-
-sourceSets.main.resources.srcDirs += 'src/main/java'
-sourceSets.test.resources.srcDirs += 'src/test/java'
-
-mainClassName = "io.bitsquare.app.gui.BitsquareAppMain"
-
-run {
- if (project.hasProperty('args')) {
- args project.args.split(',')
- }
-}
-
-processResources {
- from(sourceSets.main.resources.srcDirs) {
- include '**/*.properties'
- filter(ReplaceTokens, tokens: ['app.version': project.version])
- }
-}
-
-repositories {
- jcenter()
- maven { url 'http://tomp2p.net/dev/mvn/' }
-}
-
-dependencies {
- compile 'org.bitcoinj:bitcoinj-core:0.12.2'
- compile 'net.tomp2p:tomp2p-all:5.0-Beta3'
- compile 'io.reactivex:rxjava:1.0.0'
- compile 'org.springframework:spring-core:4.1.1.RELEASE'
- compile 'net.sf.jopt-simple:jopt-simple:4.8'
- compile 'org.slf4j:slf4j-api:1.7.7'
- compile 'ch.qos.logback:logback-core:1.1.2'
- compile 'ch.qos.logback:logback-classic:1.1.2'
- compile 'com.google.inject:guice:3.0'
- compile 'com.google.guava:guava:16.0.1'
- compile 'com.google.code.gson:gson:2.2.4'
- compile 'org.controlsfx:controlsfx:8.0.6_20'
- compile 'de.jensd:fontawesomefx:8.0.0'
- compile 'net.glxn:qrgen:1.3'
- compile 'com.google.code.findbugs:jsr305:2.0.3'
- compile 'net.jcip:jcip-annotations:1.0'
- compile 'org.jetbrains:annotations:13.0'
- compile 'eu.hansolo.enzo:Enzo:0.1.5'
- compile 'com.vinumeris:updatefx:1.2'
- testCompile 'junit:junit:4.11'
- testCompile "org.mockito:mockito-core:1.+"
- testCompile 'org.springframework:spring-test:4.1.1.RELEASE'
-}
-
-shadowJar.classifier = 'app'
-
-task packageNative(type: Exec, dependsOn: shadowJar) {
- if (Os.isFamily(Os.FAMILY_MAC))
- executable "${project.rootDir}/package/mac.sh"
- else if (Os.isFamily(Os.FAMILY_UNIX))
- executable "${project.rootDir}/package/linux.sh"
- else if (Os.isFamily(Os.FAMILY_WINDOWS))
- executable "${project.rootDir}/package/windows.bat"
- else
- throw new GradleException("Unsupported OS: " + System.properties['os.name'])
-
- args project.version, shadowJar.archivePath, mainClassName
-}
-
-task appJar(dependsOn: shadowJar) {
- group = "shadow"
- description = "Builds a Bitsquare client UI executable jar"
-}
-
-task bootstrapNodeJar(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
- group = "shadow"
- description = "Builds a Bitsquare bootstrap node executable jar"
- manifest.attributes 'Main-Class': 'io.bitsquare.app.cli.BootstrapNodeMain'
- classifier = 'bootstrapNode'
- from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
- configurations = [project.configurations.runtime]
- exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
-}
-
-jacocoTestReport {
- reports {
- xml.enabled = true
- html.enabled = true
- }
-}
diff --git a/build_create_app_mac.sh b/build_create_app_mac.sh
new file mode 100644
index 0000000000..616d79da01
--- /dev/null
+++ b/build_create_app_mac.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# edit path
+cd /Users/mk/Documents/_intellij/bitsquare_UpdateFX_maven
+
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+cp gui/target/shaded.jar gui/updatefx/builds/1.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+# edit JAVA_HOME and different OS binaries
+/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/javapackager -deploy -outdir gui/deploy/ -outfile Bitsquare.dmg -name Bitsquare -native dmg -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles gui/updatefx/builds/processed/1.jar
diff --git a/build_setup.sh b/build_setup.sh
new file mode 100644
index 0000000000..8d3a5c8292
--- /dev/null
+++ b/build_setup.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# setup dirs
+cd /Users/admin_mbp/Dropbox/Bitsquare2
+mkdir gui/updatefx
+mkdir gui/updatefx/builds
+mkdir gui/updatefx/builds/processed
+mkdir gui/updatefx/site
+mkdir gui/deploy
+
+# create key/wallet
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
+
+# start webserver for update data
+cd /Users/admin_mbp/Dropbox/Bitsquare2/gui/updatefx/site
+# python -m SimpleHTTPServer 8000
+
+# create icons
+# iconutil -c icns package/bitsquare.iconset
diff --git a/build_update.sh b/build_update.sh
new file mode 100644
index 0000000000..f836701af8
--- /dev/null
+++ b/build_update.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# edit path
+cd /Users/mk/Documents/_intellij/bitsquare_UpdateFX_maven
+mvn clean package -DskipTests -Dmaven.javadoc.skip=true
+
+# edit version /*.jar
+cp gui/target/shaded.jar gui/updatefx/builds/2.jar
+
+# edit url
+java -jar ./updatefx/updatefx-app-1.2.jar --url=http://localhost:8000/ gui/updatefx
\ No newline at end of file
diff --git a/common/common.iml b/common/common.iml
new file mode 100644
index 0000000000..919568961a
--- /dev/null
+++ b/common/common.iml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100755
index 0000000000..18102fb14a
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+
+ parent
+ io.bitsquare
+ 0.1.1-SNAPSHOT
+
+
+ common
+
+
+
+
\ No newline at end of file
diff --git a/doc/update_fork_tomp2p.sh b/doc/update_fork_tomp2p.sh
new file mode 100755
index 0000000000..37aec820da
--- /dev/null
+++ b/doc/update_fork_tomp2p.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+cd /Users/mk/Documents/_intellij/TomP2P-master_fork/TomP2P
+git reset --hard
+git remote add upstream https://github.com/tomp2p/TomP2P.git
+git checkout master
+git pull upstream master
+git push origin master
+
+git checkout published
+git reset --hard master
+export COMMITHASH=$(git log --oneline -1 | cut -d" " -f1)
+git grep -l 5.0-Alpha | xargs perl -p -i -e "s/5.0-Alpha(..?)-SNAPSHOT/5.0-Alpha$1.$COMMITHASH-SNAPSHOT/"
+git commit -am"Qualify pom version for publication"
+echo $COMMITHASH
+
+mvn clean install -DskipTests
+
+git show bitsquare-published-91276e8:README > README
+git add README
+git commit -m"Add README with publication instructions"
+
+git tag bitsquare-published-$COMMITHASH published
+git push -f origin published
+git push --tags
+
+echo $COMMITHASH
+
+
diff --git a/gradle.properties b/gradle.properties
deleted file mode 100644
index 93071f32d8..0000000000
--- a/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-org.gradle.jvmargs=-Xmx1024m
-org.gradle.daemon=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index b761216703..0000000000
Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 8e5ef3d667..0000000000
--- a/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Tue Sep 30 23:44:09 CEST 2014
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
diff --git a/gradlew b/gradlew
deleted file mode 100755
index 91a7e269e1..0000000000
--- a/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
deleted file mode 100644
index aec99730b4..0000000000
--- a/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@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
-
-@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=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@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 Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_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=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-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/src/main/java/io/bitsquare/gui/bitsquare.css b/gui/compiled/main/java/io/bitsquare/gui/bitsquare.css
similarity index 100%
rename from src/main/java/io/bitsquare/gui/bitsquare.css
rename to gui/compiled/main/java/io/bitsquare/gui/bitsquare.css
diff --git a/gui/compiled/main/java/io/bitsquare/gui/images.css b/gui/compiled/main/java/io/bitsquare/gui/images.css
new file mode 100644
index 0000000000..ff2d78763f
--- /dev/null
+++ b/gui/compiled/main/java/io/bitsquare/gui/images.css
@@ -0,0 +1,141 @@
+/* splash screen */
+#image-splash-logo {
+ -fx-image: url("../../../images/logo_splash.png");
+}
+
+/* notification */
+#notification-logo {
+ -fx-image: url("../../../images/notification_logo.png");
+}
+
+/* shared*/
+#image-info {
+ -fx-image: url("../../../images/info.png");
+}
+
+#image-alert-round {
+ -fx-image: url("../../../images/alert_round.png");
+}
+
+#image-remove {
+ -fx-image: url("../../../images/remove.png");
+}
+
+#image-buy {
+ -fx-image: url("../../../images/buy.png");
+}
+
+#image-sell {
+ -fx-image: url("../../../images/sell.png");
+}
+
+#image-expand {
+ -fx-image: url("../../../images/expand.png");
+}
+
+#image-collapse {
+ -fx-image: url("../../../images/collapse.png");
+}
+
+#image-buy-large {
+ -fx-image: url("../../../images/buy_large.png");
+}
+
+#image-sell-large {
+ -fx-image: url("../../../images/sell_large.png");
+}
+
+/* navigation buttons */
+#image-nav-home {
+ -fx-image: url("../../../images/nav/home.png");
+}
+
+#image-nav-home-active {
+ -fx-image: url("../../../images/nav/home_active.png");
+}
+
+#image-nav-buy {
+ -fx-image: url("../../../images/nav/buy.png");
+}
+
+#image-nav-buy-active {
+ -fx-image: url("../../../images/nav/buy_active.png");
+}
+
+#image-nav-sell {
+ -fx-image: url("../../../images/nav/sell.png");
+}
+
+#image-nav-sell-active {
+ -fx-image: url("../../../images/nav/sell_active.png");
+}
+
+#image-nav-portfolio {
+ -fx-image: url("../../../images/nav/portfolio.png");
+}
+
+#image-nav-portfolio-active {
+ -fx-image: url("../../../images/nav/portfolio_active.png");
+}
+
+#image-nav-funds {
+ -fx-image: url("../../../images/nav/funds.png");
+}
+
+#image-nav-funds-active {
+ -fx-image: url("../../../images/nav/funds_active.png");
+}
+
+#image-nav-msg {
+ -fx-image: url("../../../images/nav/msg.png");
+}
+
+#image-nav-msg-active {
+ -fx-image: url("../../../images/nav/msg_active.png");
+}
+
+#image-nav-settings {
+ -fx-image: url("../../../images/nav/settings.png");
+}
+
+#image-nav-settings-active {
+ -fx-image: url("../../../images/nav/settings_active.png");
+}
+
+#image-nav-account {
+ -fx-image: url("../../../images/nav/account.png");
+}
+
+#image-nav-account-active {
+ -fx-image: url("../../../images/nav/account_active.png");
+}
+
+/* account*/
+#image-tick {
+ -fx-image: url("../../../images/tick.png");
+}
+
+#image-arrow-blue {
+ -fx-image: url("../../../images/arrow_blue.png");
+}
+
+#image-arrow-grey {
+ -fx-image: url("../../../images/arrow_grey.png");
+}
+
+/* connection state*/
+#image-connection-direct {
+ -fx-image: url("../../../images/connection/direct.png");
+}
+
+#image-connection-nat {
+ -fx-image: url("../../../images/connection/nat.png");
+}
+
+#image-connection-relay {
+ -fx-image: url("../../../images/connection/relay.png");
+}
+
+#image-connection-synced {
+ -fx-image: url("../../../images/connection/synced.png");
+}
\ No newline at end of file
diff --git a/gui/compiled/main/java/io/bitsquare/gui/main/MainView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/MainView.fxml
new file mode 100644
index 0000000000..78a4a23c28
--- /dev/null
+++ b/gui/compiled/main/java/io/bitsquare/gui/main/MainView.fxml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/AccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/AccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/home/HomeView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/home/HomeView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml b/gui/compiled/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
rename to gui/compiled/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
diff --git a/gui/gui.iml b/gui/gui.iml
new file mode 100644
index 0000000000..e9b3c0773d
--- /dev/null
+++ b/gui/gui.iml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/gui/pom.xml b/gui/pom.xml
new file mode 100755
index 0000000000..5386b3144a
--- /dev/null
+++ b/gui/pom.xml
@@ -0,0 +1,210 @@
+
+
+ 4.0.0
+
+
+ parent
+ io.bitsquare
+ 0.1.1-SNAPSHOT
+
+
+ gui
+
+
+
+
+
+ false
+ ${basedir}/src/main/java
+
+ **/*.fxml
+ **/*.css
+
+
+
+ false
+ ${basedir}/src/main/resources
+
+ **/*.*
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.3
+
+
+ false
+
+
+ io.bitsquare.app.gui.BitsquareAppMain
+
+
+
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+
+ package
+
+ shade
+
+
+ true
+ bundled
+ shaded
+
+
+
+
+
+
+
+
+
+
+
+
+ sonatype-oss-snapshot
+
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ repository.tomp2p.net
+ http://tomp2p.net/dev/mvn
+
+
+
+
+
+ io.bitsquare
+ common
+ ${parent.version}
+
+
+ ch.qos.logback
+ logback-core
+ 1.1.2
+
+
+ ch.qos.logback
+ logback-classic
+ 1.1.2
+
+
+ net.tomp2p
+ tomp2p-all
+ 5.0-Beta3
+
+
+ io.reactivex
+ rxjava
+ 1.0.0
+
+
+ org.springframework
+ spring-core
+ 4.1.1.RELEASE
+
+
+ net.sf.jopt-simple
+ jopt-simple
+ 4.8
+
+
+ com.google.inject
+ guice
+ 3.0
+
+
+ com.google.code.gson
+ gson
+ 2.2.4
+
+
+ org.controlsfx
+ controlsfx
+ 8.0.6_20
+
+
+ de.jensd
+ fontawesomefx
+ 8.0.0
+
+
+ net.glxn
+ qrgen
+ 1.3
+
+
+ com.google.code.findbugs
+ jsr305
+ 2.0.1
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+
+
+ org.jetbrains
+ annotations
+ 13.0
+
+
+ eu.hansolo.enzo
+ Enzo
+ 0.1.5
+
+
+
+ org.fxmisc.easybind
+ easybind
+ 1.0.2
+
+
+
+ com.vinumeris
+ updatefx
+ 1.2
+
+
+
+
+
diff --git a/src/main/java/eu/hansolo/enzo/notification/Notification.java b/gui/src/main/java/eu/hansolo/enzo/notification/Notification.java
similarity index 100%
rename from src/main/java/eu/hansolo/enzo/notification/Notification.java
rename to gui/src/main/java/eu/hansolo/enzo/notification/Notification.java
diff --git a/src/main/java/io/bitsquare/BitsquareException.java b/gui/src/main/java/io/bitsquare/BitsquareException.java
similarity index 100%
rename from src/main/java/io/bitsquare/BitsquareException.java
rename to gui/src/main/java/io/bitsquare/BitsquareException.java
diff --git a/src/main/java/io/bitsquare/BitsquareModule.java b/gui/src/main/java/io/bitsquare/BitsquareModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/BitsquareModule.java
rename to gui/src/main/java/io/bitsquare/BitsquareModule.java
diff --git a/src/main/java/io/bitsquare/account/AccountSettings.java b/gui/src/main/java/io/bitsquare/account/AccountSettings.java
similarity index 100%
rename from src/main/java/io/bitsquare/account/AccountSettings.java
rename to gui/src/main/java/io/bitsquare/account/AccountSettings.java
diff --git a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java b/gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
similarity index 99%
rename from src/main/java/io/bitsquare/app/BitsquareEnvironment.java
rename to gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
index 5c80aea540..005833d285 100644
--- a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
+++ b/gui/src/main/java/io/bitsquare/app/BitsquareEnvironment.java
@@ -45,7 +45,6 @@ public class BitsquareEnvironment extends StandardEnvironment {
public static final String APP_VERSION_KEY = "app.version";
- // TODO what is the difference to APP_DATA_DIR ?
public static final String USER_DATA_DIR_KEY = "user.data.dir";
public static final String DEFAULT_USER_DATA_DIR = defaultUserDataDir();
@@ -99,7 +98,6 @@ public class BitsquareEnvironment extends StandardEnvironment {
}
}
-
PropertySource> appDirProperties() throws Exception {
String location = String.format("file:%s/bitsquare.properties", appDataDir);
Resource resource = resourceLoader.getResource(location);
diff --git a/src/main/java/io/bitsquare/app/BitsquareExecutable.java b/gui/src/main/java/io/bitsquare/app/BitsquareExecutable.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/BitsquareExecutable.java
rename to gui/src/main/java/io/bitsquare/app/BitsquareExecutable.java
diff --git a/src/main/java/io/bitsquare/app/cli/BootstrapNode.java b/gui/src/main/java/io/bitsquare/app/cli/BootstrapNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/cli/BootstrapNode.java
rename to gui/src/main/java/io/bitsquare/app/cli/BootstrapNode.java
diff --git a/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java b/gui/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
similarity index 100%
rename from src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
rename to gui/src/main/java/io/bitsquare/app/cli/BootstrapNodeMain.java
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
similarity index 96%
rename from src/main/java/io/bitsquare/app/gui/BitsquareApp.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
index a36d32bb40..0f072e9b00 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java
@@ -58,7 +58,7 @@ import org.springframework.util.FileSystemUtils;
import static io.bitsquare.app.BitsquareEnvironment.*;
public class BitsquareApp extends Application {
- private static final Logger log = LoggerFactory.getLogger(BitsquareAppMain.class);
+ private static final Logger log = LoggerFactory.getLogger(BitsquareApp.class);
private static Environment env;
@@ -71,9 +71,7 @@ public class BitsquareApp extends Application {
@Override
public void start(Stage primaryStage) throws IOException {
- // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
- Thread.currentThread().setContextClassLoader(BitsquareApp.class.getClassLoader());
-
+ log.trace("BitsquareApp.start");
bitsquareAppModule = new BitsquareAppModule(env, primaryStage);
injector = Guice.createInjector(bitsquareAppModule);
injector.getInstance(InjectorViewFactory.class).setInjector(injector);
@@ -107,6 +105,7 @@ public class BitsquareApp extends Application {
// load the main view and create the main scene
+ log.trace("viewLoader.load(MainView.class)");
ViewLoader viewLoader = injector.getInstance(CachingViewLoader.class);
View view = viewLoader.load(MainView.class);
@@ -152,6 +151,7 @@ public class BitsquareApp extends Application {
// make the UI visible
+ log.trace("primaryStage.show");
primaryStage.show();
}
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
similarity index 71%
rename from src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
index a9e660c036..a1c6129325 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java
@@ -30,6 +30,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vinumeris.updatefx.UpdateFX;
+import joptsimple.OptionException;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
@@ -42,14 +43,38 @@ public class BitsquareAppMain extends BitsquareExecutable {
private static final Logger log = LoggerFactory.getLogger(BitsquareAppMain.class);
public static void main(String[] args) throws Exception {
- // We don't want to do the whole arg parsing/setup here as that might easily change in update versions
- // So we only handle the absolute minimum which is APP_NAME and USER_DATA_DIR
- // TODO Not impl. yet, just use default for first testings
- UpdateFX.bootstrap(BitsquareAppMain.class, new File(BitsquareEnvironment.DEFAULT_APP_DATA_DIR).toPath(), args);
+ // We don't want to do the full argument parsing here as that might easily change in update versions
+ // So we only handle the absolute minimum which is APP_NAME, APP_DATA_DIR_KEY and USER_DATA_DIR
+ OptionParser parser = new OptionParser();
+ parser.accepts(USER_DATA_DIR_KEY, description("User data directory", DEFAULT_USER_DATA_DIR))
+ .withRequiredArg();
+ parser.accepts(APP_NAME_KEY, description("Application name", DEFAULT_APP_NAME))
+ .withRequiredArg();
+ parser.accepts(APP_DATA_DIR_KEY, description("Application data directory", DEFAULT_APP_DATA_DIR))
+ .withRequiredArg();
+
+ OptionSet options;
+ try {
+ options = parser.parse(args);
+ } catch (OptionException ex) {
+ System.out.println("error: " + ex.getMessage());
+ System.out.println();
+ parser.printHelpOn(System.out);
+ System.exit(EXIT_FAILURE);
+ return;
+ }
+ BitsquareEnvironment bitsquareEnvironment = new BitsquareEnvironment(options);
+ String updatesDirectory = bitsquareEnvironment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY);
+ UpdateFX.bootstrap(BitsquareAppMain.class, new File(updatesDirectory).toPath(), args);
}
// That will be called from UpdateFX after updates are checked
public static void realMain(String[] args) throws Exception {
+ log.trace("realMain");
+ // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
+ // In order to work around a bug in JavaFX 8u25 and below, you must include the following code as the first line of your realMain method:
+ Thread.currentThread().setContextClassLoader(BitsquareAppMain.class.getClassLoader());
+
new BitsquareAppMain().execute(args);
}
diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
similarity index 93%
rename from src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
rename to gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
index a3ed2b1739..3f13e671d7 100644
--- a/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppModule.java
@@ -61,10 +61,8 @@ class BitsquareAppModule extends BitsquareModule {
bindConstant().annotatedWith(named(Persistence.PREFIX_KEY)).to(env.getRequiredProperty(Persistence.PREFIX_KEY));
bind(Persistence.class).asEagerSingleton();
- // TODO UpdateFXHelper needs Environment. Should we just expose the 2 properties needed?
bind(Environment.class).toInstance(env);
- // for temp testing with mock
- bind(UpdateProcess.class).to(MockUpdateProcess.class).asEagerSingleton();
+ bind(UpdateProcess.class).asEagerSingleton();
install(messageModule());
install(bitcoinModule());
diff --git a/src/main/java/io/bitsquare/app/gui/UpdateProcess.java b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
similarity index 85%
rename from src/main/java/io/bitsquare/app/gui/UpdateProcess.java
rename to gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
index 827157336b..7e500921b3 100644
--- a/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
+++ b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java
@@ -51,14 +51,15 @@ import rx.subjects.Subject;
public class UpdateProcess {
private static final Logger log = LoggerFactory.getLogger(UpdateProcess.class);
- private static final int VERSION = 1;
- private static final List UPDATE_SIGNING_KEYS = Crypto.decode(
- "028B41BDDCDCAD97B6AE088FEECA16DC369353B717E13319370C729CB97D677A11",
- "031E3D80F21A4D10D385A32ABEDC300DACBEDBC839FBA58376FBD5D791D806BA68"
- );
- private static final int UPDATE_SIGNING_THRESHOLD = 1;
+ // Edit version for updateFX
+ private static final int VERSION = 12;
+
+ private static final List UPDATE_SIGNING_KEYS = Crypto.decode("03C00C9B7894A072A459FFF87DBA8CFE76366D5BF4C013E41AE8D7A314625DFB30");
private static final String UPDATES_BASE_URL = "http://localhost:8000/";
+
+ private static final int UPDATE_SIGNING_THRESHOLD = 1;
private static final Path ROOT_CLASS_PATH = UpdateFX.findCodePath(BitsquareAppMain.class);
+ private Environment environment;
public enum State {
@@ -72,22 +73,11 @@ public class UpdateProcess {
protected String errorMessage;
protected final Subject process = BehaviorSubject.create();
- protected final AnimationTimer timeoutTimer;
+ protected AnimationTimer timeoutTimer;
@Inject
public UpdateProcess(Environment environment) {
- // process.timeout() will cause an error state back but we dont want to break startup in case of an update
- // timeout
- timeoutTimer = Utilities.setTimeout(10000, new Function() {
- @Override
- public Void apply(AnimationTimer animationTimer) {
- process.onCompleted();
- return null;
- }
- });
- timeoutTimer.start();
-
- init(environment);
+ this.environment = environment;
}
public void restart() {
@@ -102,16 +92,26 @@ public class UpdateProcess {
return errorMessage;
}
- protected void init(Environment environment) {
- log.info("version " + VERSION);
+ public void init() {
+ log.info("UpdateFX current version " + VERSION);
+ // process.timeout() will cause an error state back but we don't want to break startup in case of an timeout
+ timeoutTimer = Utilities.setTimeout(10000, new Function() {
+ @Override
+ public Void apply(AnimationTimer animationTimer) {
+ process.onCompleted();
+ return null;
+ }
+ });
+ timeoutTimer.start();
+
String agent = environment.getProperty(BitsquareEnvironment.APP_NAME_KEY) + VERSION;
Path dataDirPath = new File(environment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY)).toPath();
Updater updater = new Updater(UPDATES_BASE_URL, agent, VERSION, dataDirPath, ROOT_CLASS_PATH,
UPDATE_SIGNING_KEYS, UPDATE_SIGNING_THRESHOLD) {
@Override
protected void updateProgress(long workDone, long max) {
- log.debug("updateProgress " + workDone + "/" + max);
+ //log.trace("updateProgress " + workDone + "/" + max);
super.updateProgress(workDone, max);
}
};
@@ -127,24 +127,24 @@ public class UpdateProcess {
updater.setOnSucceeded(event -> {
try {
UpdateSummary summary = updater.get();
- if (summary.descriptions.size() > 0) {
+ log.info("summary " +summary.toString());
+ if (summary.descriptions != null && summary.descriptions.size() > 0) {
log.info("One liner: {}", summary.descriptions.get(0).getOneLiner());
log.info("{}", summary.descriptions.get(0).getDescription());
}
if (summary.highestVersion > VERSION) {
+ log.info("UPDATE_AVAILABLE");
state.set(State.UPDATE_AVAILABLE);
+ // We stop the timeout and treat it not completed.
+ // The user should click the restart button manually if there are updates available.
+ timeoutTimer.stop();
}
else if (summary.highestVersion == VERSION) {
+ log.info("UP_TO_DATE");
state.set(State.UP_TO_DATE);
timeoutTimer.stop();
process.onCompleted();
}
-
- /* if (summary.highestVersion > VERSION) {
- log.info("Restarting to get version " + summary.highestVersion);
- if (UpdateFX.getVersionPin(dataDirPath) == 0)
- UpdateFX.restartApp();
- }*/
} catch (Throwable e) {
log.error("Exception at processing UpdateSummary: " + e.getMessage());
@@ -172,5 +172,4 @@ public class UpdateProcess {
thread.setDaemon(true);
thread.start();
}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/arbitrator/Arbitrator.java b/gui/src/main/java/io/bitsquare/arbitrator/Arbitrator.java
similarity index 100%
rename from src/main/java/io/bitsquare/arbitrator/Arbitrator.java
rename to gui/src/main/java/io/bitsquare/arbitrator/Arbitrator.java
diff --git a/src/main/java/io/bitsquare/arbitrator/Reputation.java b/gui/src/main/java/io/bitsquare/arbitrator/Reputation.java
similarity index 100%
rename from src/main/java/io/bitsquare/arbitrator/Reputation.java
rename to gui/src/main/java/io/bitsquare/arbitrator/Reputation.java
diff --git a/src/main/java/io/bitsquare/bank/BankAccount.java b/gui/src/main/java/io/bitsquare/bank/BankAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/bank/BankAccount.java
rename to gui/src/main/java/io/bitsquare/bank/BankAccount.java
diff --git a/src/main/java/io/bitsquare/bank/BankAccountType.java b/gui/src/main/java/io/bitsquare/bank/BankAccountType.java
similarity index 100%
rename from src/main/java/io/bitsquare/bank/BankAccountType.java
rename to gui/src/main/java/io/bitsquare/bank/BankAccountType.java
diff --git a/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java b/gui/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
rename to gui/src/main/java/io/bitsquare/btc/AddressBasedCoinSelector.java
diff --git a/src/main/java/io/bitsquare/btc/AddressEntry.java b/gui/src/main/java/io/bitsquare/btc/AddressEntry.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/AddressEntry.java
rename to gui/src/main/java/io/bitsquare/btc/AddressEntry.java
diff --git a/src/main/java/io/bitsquare/btc/BitcoinModule.java b/gui/src/main/java/io/bitsquare/btc/BitcoinModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BitcoinModule.java
rename to gui/src/main/java/io/bitsquare/btc/BitcoinModule.java
diff --git a/src/main/java/io/bitsquare/btc/BitcoinNetwork.java b/gui/src/main/java/io/bitsquare/btc/BitcoinNetwork.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BitcoinNetwork.java
rename to gui/src/main/java/io/bitsquare/btc/BitcoinNetwork.java
diff --git a/src/main/java/io/bitsquare/btc/BlockChainService.java b/gui/src/main/java/io/bitsquare/btc/BlockChainService.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/BlockChainService.java
rename to gui/src/main/java/io/bitsquare/btc/BlockChainService.java
diff --git a/src/main/java/io/bitsquare/btc/FeePolicy.java b/gui/src/main/java/io/bitsquare/btc/FeePolicy.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/FeePolicy.java
rename to gui/src/main/java/io/bitsquare/btc/FeePolicy.java
diff --git a/src/main/java/io/bitsquare/btc/Restrictions.java b/gui/src/main/java/io/bitsquare/btc/Restrictions.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/Restrictions.java
rename to gui/src/main/java/io/bitsquare/btc/Restrictions.java
diff --git a/src/main/java/io/bitsquare/btc/UserAgent.java b/gui/src/main/java/io/bitsquare/btc/UserAgent.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/UserAgent.java
rename to gui/src/main/java/io/bitsquare/btc/UserAgent.java
diff --git a/src/main/java/io/bitsquare/btc/WalletService.java b/gui/src/main/java/io/bitsquare/btc/WalletService.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/WalletService.java
rename to gui/src/main/java/io/bitsquare/btc/WalletService.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/AddressConfidenceListener.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/BalanceListener.java
diff --git a/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java b/gui/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
rename to gui/src/main/java/io/bitsquare/btc/listeners/TxConfidenceListener.java
diff --git a/src/main/java/io/bitsquare/crypto/CryptoModule.java b/gui/src/main/java/io/bitsquare/crypto/CryptoModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/CryptoModule.java
rename to gui/src/main/java/io/bitsquare/crypto/CryptoModule.java
diff --git a/src/main/java/io/bitsquare/crypto/HashService.java b/gui/src/main/java/io/bitsquare/crypto/HashService.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/HashService.java
rename to gui/src/main/java/io/bitsquare/crypto/HashService.java
diff --git a/src/main/java/io/bitsquare/crypto/SignatureService.java b/gui/src/main/java/io/bitsquare/crypto/SignatureService.java
similarity index 100%
rename from src/main/java/io/bitsquare/crypto/SignatureService.java
rename to gui/src/main/java/io/bitsquare/crypto/SignatureService.java
diff --git a/src/main/java/io/bitsquare/gui/GuiModule.java b/gui/src/main/java/io/bitsquare/gui/GuiModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/GuiModule.java
rename to gui/src/main/java/io/bitsquare/gui/GuiModule.java
diff --git a/src/main/java/io/bitsquare/gui/Navigation.java b/gui/src/main/java/io/bitsquare/gui/Navigation.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/Navigation.java
rename to gui/src/main/java/io/bitsquare/gui/Navigation.java
diff --git a/src/main/java/io/bitsquare/gui/OverlayManager.java b/gui/src/main/java/io/bitsquare/gui/OverlayManager.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/OverlayManager.java
rename to gui/src/main/java/io/bitsquare/gui/OverlayManager.java
diff --git a/src/main/java/io/bitsquare/gui/SystemTray.java b/gui/src/main/java/io/bitsquare/gui/SystemTray.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/SystemTray.java
rename to gui/src/main/java/io/bitsquare/gui/SystemTray.java
diff --git a/gui/src/main/java/io/bitsquare/gui/bitsquare.css b/gui/src/main/java/io/bitsquare/gui/bitsquare.css
new file mode 100644
index 0000000000..47f86337b4
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/bitsquare.css
@@ -0,0 +1,489 @@
+/*
+Theme colors:
+
+logo colors:
+
+new blue: 0f87c3
+new grey: 666666
+
+00abff
+orange webpage quotes : ff7f00
+
+
+main bg grey: dddddd
+content bg grey: f4f4f4
+tab pane upper bg gradient color mid dark grey to bright grey: cfcfcf -> dddddd
+upper border on tab: cfcfcf
+lower border on tab: b5b5b5
+upper gradient color on tab: d3d3d3
+lower gradient color on tab: dddddd
+*/
+
+.root {
+ -bs-grey: #666666;
+ -bs-bg-grey: #dddddd;
+ -bs-error-red: #dd0000;
+
+ -fx-accent: #0f87c3;
+ -fx-default-button: derive(-fx-accent, 95%);
+ -fx-focus-color: -fx-accent;
+ -fx-faint-focus-color: #0f87c322;
+ -fx-selection-bar: derive(-fx-accent, 50%);
+}
+
+/* Splash */
+#splash {
+ -fx-background-color: #ffffff;
+}
+
+#splash-error-state-msg {
+ -fx-text-fill: -bs-error-red;
+}
+
+#splash-bitcoin-network-label {
+ -fx-text-fill: -fx-accent;
+ -fx-weight: bold;
+}
+
+/* Main UI */
+#base-content-container {
+ -fx-background-color: -bs-bg-grey;
+}
+
+#content-pane {
+ -fx-background-color: #f4f4f4;
+}
+
+#headline-label {
+ -fx-font-weight: bold;
+ -fx-font-size: 18;
+}
+
+/* Main navigation */
+#nav-button {
+ -fx-cursor: hand;
+ -fx-background-color: transparent;
+}
+
+#nav-button .text {
+ -fx-font-size: 10;
+}
+
+#nav-button:selected .text {
+ -fx-font-size: 11;
+ -fx-font-weight: bold;
+ -fx-fill: -fx-accent;
+}
+
+#nav-button-label {
+ -fx-font-size: 10;
+}
+
+#nav-balance-label {
+ -fx-font-weight: bold;
+ -fx-alignment: center;
+ -fx-background-color: #dddddd;
+}
+
+#nav-alert-label {
+ -fx-font-weight: bold;
+ -fx-font-size: 11;
+ -fx-text-fill: white;
+}
+
+.text-field:readonly {
+ -fx-text-fill: #000000;
+ -fx-background-color: #FAFAFA;
+}
+
+#feedback-text {
+ -fx-font-size: 10;
+}
+
+#label-url {
+ -fx-cursor: hand;
+ -fx-text-fill: blue;
+ -fx-underline: true;
+}
+
+#icon-button {
+ -fx-cursor: hand;
+ -fx-background-color: transparent;
+}
+
+.copy-icon {
+ -fx-text-fill: -fx-accent;
+ -fx-cursor: hand;
+}
+
+.copy-icon:hover {
+ -fx-text-fill: black;
+}
+
+/*******************************************************************************
+ * *
+ * Tooltip *
+ * *
+ ******************************************************************************/
+
+.tooltip {
+ -fx-background: white;
+ -fx-text-fill: black;
+ -fx-background-color: white;
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0;
+ -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */
+ -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.5), 10, 0.0, 0, 3);
+ -fx-font-size: 0.85em;
+}
+
+/* Same style like non editable textfield. But textfield spans a whole column in a grid, so we use generally
+textfield */
+#label-with-background {
+ -fx-background-color: #FAFAFA;
+ -fx-border-radius: 4;
+ -fx-padding: 4 4 4 4;
+}
+
+#address-text-field {
+ -fx-cursor: hand;
+ -fx-text-fill: -fx-accent;
+}
+
+#address-text-field:hover {
+ -fx-text-fill: black;
+}
+
+#funds-confidence {
+ -fx-progress-color: dimgrey;
+}
+
+/* .table-view */
+.table-view .table-cell {
+ -fx-alignment: center;
+}
+
+.table-view .column-header .label {
+ -fx-alignment: center;
+}
+
+.table-view .focus {
+ -fx-alignment: center;
+}
+
+.table-view .text {
+ -fx-fill: black;
+}
+
+.table-view .table-row-cell:selected .table-row-cell:row-selection .table-row-cell:cell-selection .text {
+ -fx-fill: white;
+}
+
+.table-view .table-row-cell:selected .button .text {
+ -fx-fill: black;
+}
+
+.table-view .table-row-cell .copy-icon .text {
+ -fx-fill: -fx-accent;
+}
+
+.table-view .table-row-cell .copy-icon .text:hover {
+ -fx-fill: black;
+}
+
+.table-view .table-row-cell:selected .copy-icon .text {
+ -fx-fill: white;
+}
+
+.table-view .table-row-cell:selected .copy-icon .text:hover {
+ -fx-fill: black;
+}
+
+.table-view .table-row-cell .hyperlink .text {
+ -fx-fill: -fx-accent;
+}
+
+.table-view .table-row-cell .hyperlink .text:hover {
+ -fx-fill: black;
+}
+
+.table-view .table-row-cell:selected .hyperlink .text {
+ -fx-fill: white;
+}
+
+.table-view .table-row-cell:selected .hyperlink .text:hover {
+ -fx-fill: black;
+}
+
+#form-header-text {
+ -fx-font-weight: bold;
+ -fx-font-size: 14;
+}
+
+#non-clickable-icon {
+ -fx-text-fill: #AAAAAA;
+}
+
+#clickable-icon {
+ -fx-text-fill: -fx-accent;
+ -fx-cursor: hand;
+}
+
+#clickable-icon:hover {
+ -fx-text-fill: #666666;
+}
+
+#form-title {
+ -fx-font-weight: bold;
+}
+
+/* tab pane */
+.tab-pane .tab-label {
+ -fx-font-size: 15;
+}
+
+.tab-pane:focused {
+ -fx-background-color: transparent;
+}
+
+.tab-header-area:focused {
+ -fx-background-color: transparent;
+}
+
+.tab:focused {
+ -fx-background-color: transparent;
+}
+
+/* table-view */
+.table-view:focused {
+ -fx-background-color: transparent;
+}
+
+/* scroll-pane */
+
+.scroll-pane {
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+
+.scroll-pane:focused {
+ -fx-background-insets: 0;
+}
+
+.scroll-pane .corner {
+ -fx-background-insets: 0;
+}
+
+/* validation */
+#validation-error {
+ -fx-text-fill: red;
+}
+
+/* Account */
+
+#content-pane-top {
+ -fx-background-color: #cfcfcf,
+ linear-gradient(#cfcfcf 0%, #b5b5b5 100%),
+ linear-gradient(#d3d3d3 0%, -bs-bg-grey 100%);
+ -fx-background-insets: 0 0 0 0, 0, 1;
+}
+
+#info-icon-label {
+ -fx-font-size: 16;
+ -fx-text-fill: #333000;
+}
+
+/* Create offer */
+#direction-icon-label {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: -bs-grey;
+}
+
+#input-description-label {
+ -fx-font-size: 11;
+ -fx-alignment: center;
+}
+
+#create-offer-calc-label {
+ -fx-font-weight: bold;
+ -fx-font-size: 20;
+ -fx-padding: 15 5 0 5;
+}
+
+#currency-info-label {
+ -fx-border-radius: 0 4 4 0;
+ -fx-padding: 4 4 4 4;
+ -fx-background-color: #f6f6f6;
+ -fx-border-color: #aaa;
+ -fx-border-style: solid solid solid none;
+ -fx-border-insets: 0 0 0 -2;
+}
+
+#totals-separator {
+ -fx-background: #AAAAAA;
+}
+
+#payment-info {
+ -fx-background-color: #f4f4f4;
+}
+
+/* Account setup */
+#wizard-title-deactivated {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: #999999;
+}
+
+#wizard-title-active {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: #333333;
+}
+
+#wizard-title-completed {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: #333333;
+}
+
+#wizard-sub-title-deactivated {
+ -fx-text-fill: #999999;
+}
+
+#wizard-sub-title-active {
+ -fx-text-fill: #333333;
+}
+
+#wizard-sub-title-completed {
+ -fx-text-fill: #333333;
+}
+
+#wizard-item-background-deactivated {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #dddddd, #ccc);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+#wizard-item-background-active {
+ -fx-body-color: linear-gradient(to bottom, #f1f6f7, #e7f5f9);
+ -fx-outer-border: linear-gradient(to bottom, #b5e1ef, #6aa4b6);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+#wizard-item-background-completed {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #99ba9c, #619865);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+/* Account settings */
+#wizard-title-disabled {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: #999999;
+}
+
+#wizard-title-active {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: #333333;
+}
+
+#wizard-title-selected {
+ -fx-font-weight: bold;
+ -fx-font-size: 16;
+ -fx-text-fill: -fx-accent;
+}
+
+#account-settings-item-background-disabled {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #dddddd, #ccc);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+#account-settings-item-background-active {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #dddddd, #ccc);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+#account-settings-item-background-selected {
+ -fx-body-color: linear-gradient(to bottom, #f1f6f7, #e7f5f9);
+ -fx-outer-border: linear-gradient(to bottom, #b5e1ef, #6aa4b6);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+/* TitledGroupBg */
+#titled-group-bg-label {
+ -fx-font-weight: bold;
+ -fx-font-size: 14;
+ -fx-text-fill: -bs-grey;
+ -fx-background-color: #f4f4f4;
+}
+
+#titled-group-bg-label-active {
+ -fx-font-weight: bold;
+ -fx-font-size: 14;
+ -fx-text-fill: -fx-accent;
+ -fx-background-color: #f4f4f4;
+}
+
+#titled-group-bg {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #dddddd, #ccc);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+#titled-group-bg-active {
+ -fx-body-color: linear-gradient(to bottom, #f4f4f4, #F0F0F0);
+ -fx-outer-border: linear-gradient(to bottom, #9bbdc9, #57acc9);
+ -fx-background-color: -fx-shadow-highlight-color,
+ -fx-outer-border,
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+}
+
+/* TitledSeparator */
+#titled-separator:horizontal .line {
+ -fx-border-color: transparent #f4f4f4 transparent #f4f4f4;
+ -fx-background-color: transparent;
+ -fx-border-width: 10px;
+}
diff --git a/src/main/java/io/bitsquare/gui/components/AddressTextField.java b/gui/src/main/java/io/bitsquare/gui/components/AddressTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/AddressTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/AddressTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/BalanceTextField.java b/gui/src/main/java/io/bitsquare/gui/components/BalanceTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/BalanceTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/BalanceTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java b/gui/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/BalanceWithConfirmationTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/InfoDisplay.java b/gui/src/main/java/io/bitsquare/gui/components/InfoDisplay.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/InfoDisplay.java
rename to gui/src/main/java/io/bitsquare/gui/components/InfoDisplay.java
diff --git a/gui/src/main/java/io/bitsquare/gui/components/InfoDisplay2.java b/gui/src/main/java/io/bitsquare/gui/components/InfoDisplay2.java
new file mode 100644
index 0000000000..47ac1424a8
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/components/InfoDisplay2.java
@@ -0,0 +1,247 @@
+/*
+ * This file is part of Bitsquare.
+ *
+ * Bitsquare is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Bitsquare. If not, see .
+ */
+
+package io.bitsquare.gui.components;
+
+import io.bitsquare.locale.BSResources;
+
+import javafx.application.Platform;
+import javafx.beans.property.IntegerProperty;
+import javafx.beans.property.ObjectProperty;
+import javafx.beans.property.SimpleIntegerProperty;
+import javafx.beans.property.SimpleObjectProperty;
+import javafx.beans.property.SimpleStringProperty;
+import javafx.beans.property.StringProperty;
+import javafx.beans.value.ChangeListener;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.geometry.Insets;
+import javafx.geometry.VPos;
+import javafx.scene.*;
+import javafx.scene.control.*;
+import javafx.scene.layout.*;
+import javafx.scene.text.*;
+
+import de.jensd.fx.fontawesome.AwesomeDude;
+import de.jensd.fx.fontawesome.AwesomeIcon;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Convenience Component for info icon, info text and link display in a GridPane.
+ * Only the properties needed are supported.
+ * We need to extend from Parent so we can use it in FXML, but the InfoDisplay is not used as node,
+ * but add the children nodes to the gridPane.
+ */
+public class InfoDisplay2 extends Parent {
+ private static final Logger log = LoggerFactory.getLogger(InfoDisplay2.class);
+
+ private final StringProperty text = new SimpleStringProperty();
+ private final IntegerProperty rowIndex = new SimpleIntegerProperty(0);
+ private final IntegerProperty columnIndex = new SimpleIntegerProperty(0);
+ private final ObjectProperty> onAction = new SimpleObjectProperty<>();
+ private final ObjectProperty gridPane = new SimpleObjectProperty<>();
+ private final Label testLabel;
+
+ private boolean useReadMore;
+
+ private final Label icon = AwesomeDude.createIconLabel(AwesomeIcon.INFO_SIGN);
+ private final TextFlow textFlow;
+ private final Label label;
+ private final Hyperlink link;
+ private final ChangeListener listener;
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ // Constructor
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ public InfoDisplay2() {
+ icon.setId("non-clickable-icon");
+ icon.visibleProperty().bind(visibleProperty());
+ GridPane.setValignment(icon, VPos.TOP);
+ GridPane.setMargin(icon, new Insets(-2, 0, 0, 0));
+ GridPane.setRowSpan(icon, 2);
+
+ label = new Label();
+ label.textProperty().bind(text);
+ label.setTextOverrun(OverrunStyle.WORD_ELLIPSIS);
+ // width is set a frame later so we hide it first
+ label.setVisible(false);
+
+ link = new Hyperlink(BSResources.get("shared.readMore"));
+ link.setPadding(new Insets(0, 0, 0, -2));
+
+ // We need that to know if we have a wrapping or not.
+ // Did not find a way to get that from the API.
+ testLabel = new Label();
+ testLabel.textProperty().bind(text);
+
+ textFlow = new TextFlow();
+ textFlow.visibleProperty().bind(visibleProperty());
+ textFlow.getChildren().addAll(testLabel);
+
+ // update the width when the window gets resized
+ listener = (ov2, oldValue2, windowWidth) -> {
+ if (label.prefWidthProperty().isBound())
+ label.prefWidthProperty().unbind();
+ label.setPrefWidth((double) windowWidth - localToScene(0, 0).getX() - 35);
+ };
+
+
+ // when clicking "Read more..." we expand and change the link to the Help
+ link.setOnAction(new EventHandler() {
+ @Override
+ public void handle(ActionEvent actionEvent) {
+ if (useReadMore) {
+
+ label.setWrapText(true);
+ link.setText(BSResources.get("shared.openHelp"));
+ getScene().getWindow().widthProperty().removeListener(listener);
+ if (label.prefWidthProperty().isBound())
+ label.prefWidthProperty().unbind();
+ label.prefWidthProperty().bind(textFlow.widthProperty());
+ link.setVisited(false);
+ // focus border is a bit confusing here so we remove it
+ link.setStyle("-fx-focus-color: transparent;");
+ link.setOnAction(onAction.get());
+ }
+ else {
+ onAction.get().handle(actionEvent);
+ }
+ }
+ });
+
+ managedProperty().addListener((ov, oldValue, newValue) -> {
+ if (newValue)
+ layoutItems();
+ });
+ }
+
+ private void layoutItems() {
+ testLabel.widthProperty().addListener((ov, o, n) -> {
+ log.debug("#### testLabel.heightProperty " + testLabel.getHeight());
+ log.debug("#### testLabel.widthProperty " + testLabel.getText());
+ log.debug("#### testLabel.widthProperty " + n);
+ log.debug("#### textFlow.getWidth() " + textFlow.getWidth());
+ useReadMore = (double) n > textFlow.getWidth();
+ link.setText(BSResources.get(useReadMore ? "shared.readMore" : "shared.openHelp"));
+
+ Platform.runLater(() -> textFlow.getChildren().setAll(label, link));
+ });
+
+ sceneProperty().addListener((ov, oldValue, newValue) -> {
+ if (oldValue == null && newValue != null && newValue.getWindow() != null) {
+ newValue.getWindow().widthProperty().addListener(listener);
+ // localToScene does deliver 0 instead of the correct x position when scene property gets set,
+ // so we delay for 1 render cycle
+ Platform.runLater(() -> {
+ log.debug("#### label.setVisible() ");
+ label.setVisible(true);
+ label.prefWidthProperty().unbind();
+ label.setPrefWidth(newValue.getWindow().getWidth() - localToScene(0, 0).getX() - 35);
+ });
+ }
+ });
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ // Setters
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ public void setText(String text) {
+ this.text.set(text);
+ layout();
+ }
+
+ public void setGridPane(GridPane gridPane) {
+ this.gridPane.set(gridPane);
+
+ gridPane.getChildren().addAll(icon, textFlow);
+
+ GridPane.setColumnIndex(icon, columnIndex.get());
+ GridPane.setColumnIndex(textFlow, columnIndex.get() + 1);
+
+ GridPane.setRowIndex(icon, rowIndex.get());
+ GridPane.setRowIndex(textFlow, rowIndex.get());
+ }
+
+ public void setRowIndex(int rowIndex) {
+ this.rowIndex.set(rowIndex);
+
+ GridPane.setRowIndex(icon, rowIndex);
+ GridPane.setRowIndex(textFlow, rowIndex);
+ }
+
+ public void setColumnIndex(int columnIndex) {
+ this.columnIndex.set(columnIndex);
+
+ GridPane.setColumnIndex(icon, columnIndex);
+ GridPane.setColumnIndex(textFlow, columnIndex + 1);
+ }
+
+ public final void setOnAction(EventHandler eventHandler) {
+ onAction.set(eventHandler);
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ // Getters
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ public String getText() {
+ return text.get();
+ }
+
+ public StringProperty textProperty() {
+ return text;
+ }
+
+ public int getColumnIndex() {
+ return columnIndex.get();
+ }
+
+ public IntegerProperty columnIndexProperty() {
+ return columnIndex;
+ }
+
+ public int getRowIndex() {
+ return rowIndex.get();
+ }
+
+ public IntegerProperty rowIndexProperty() {
+ return rowIndex;
+ }
+
+ public EventHandler getOnAction() {
+ return onAction.get();
+ }
+
+ public ObjectProperty> onActionProperty() {
+ return onAction;
+ }
+
+ public GridPane getGridPane() {
+ return gridPane.get();
+ }
+
+ public ObjectProperty gridPaneProperty() {
+ return gridPane;
+ }
+
+}
diff --git a/src/main/java/io/bitsquare/gui/components/InputTextField.java b/gui/src/main/java/io/bitsquare/gui/components/InputTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/InputTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/InputTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java b/gui/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
rename to gui/src/main/java/io/bitsquare/gui/components/NetworkSyncPane.java
diff --git a/src/main/java/io/bitsquare/gui/components/Popups.java b/gui/src/main/java/io/bitsquare/gui/components/Popups.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/Popups.java
rename to gui/src/main/java/io/bitsquare/gui/components/Popups.java
diff --git a/src/main/java/io/bitsquare/gui/components/SystemNotification.java b/gui/src/main/java/io/bitsquare/gui/components/SystemNotification.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/SystemNotification.java
rename to gui/src/main/java/io/bitsquare/gui/components/SystemNotification.java
diff --git a/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java b/gui/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
rename to gui/src/main/java/io/bitsquare/gui/components/TextFieldWithCopyIcon.java
diff --git a/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java b/gui/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
rename to gui/src/main/java/io/bitsquare/gui/components/TitledGroupBg.java
diff --git a/src/main/java/io/bitsquare/gui/components/TitledSeparator.java b/gui/src/main/java/io/bitsquare/gui/components/TitledSeparator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TitledSeparator.java
rename to gui/src/main/java/io/bitsquare/gui/components/TitledSeparator.java
diff --git a/src/main/java/io/bitsquare/gui/components/TxIdTextField.java b/gui/src/main/java/io/bitsquare/gui/components/TxIdTextField.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/TxIdTextField.java
rename to gui/src/main/java/io/bitsquare/gui/components/TxIdTextField.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/ConfidenceProgressIndicator.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/behavior/ConfidenceProgressIndicatorBehavior.java
diff --git a/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
rename to gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java
diff --git a/gui/src/main/java/io/bitsquare/gui/components/dialogs/CustomPopups.java b/gui/src/main/java/io/bitsquare/gui/components/dialogs/CustomPopups.java
new file mode 100644
index 0000000000..ac77811946
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/components/dialogs/CustomPopups.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of Bitsquare.
+ *
+ * Bitsquare is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Bitsquare. If not, see .
+ */
+
+package io.bitsquare.gui.components.dialogs;
+
+import io.bitsquare.gui.OverlayManager;
+
+import javafx.geometry.Insets;
+import javafx.geometry.Pos;
+import javafx.scene.*;
+import javafx.scene.control.*;
+import javafx.scene.layout.*;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import javafx.stage.StageStyle;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CustomPopups {
+ private static final Logger log = LoggerFactory.getLogger(CustomPopups.class);
+
+ private final Stage rootStage;
+ private final OverlayManager overlayManager;
+ private final Stage stage = new Stage();
+ private StackPane sceneRootPane;
+
+ public CustomPopups(Stage rootStage, OverlayManager overlayManager) {
+ this.rootStage = rootStage;
+ this.overlayManager = overlayManager;
+
+ setupStage();
+ }
+
+ public void showInfoPopup(String title, String message) {
+ BorderPane borderPane = new BorderPane();
+ borderPane.setMinWidth(400);
+ borderPane.setMinHeight(150);
+ borderPane.setMaxWidth(rootStage.getWidth() / 2);
+ borderPane.setMaxHeight(rootStage.getHeight() / 2);
+ borderPane.setPadding(new Insets(20, 20, 20, 20));
+ borderPane.setStyle("-fx-background-color: #ffffff;");
+
+ Label titleLabel = new Label(title);
+ titleLabel.setMouseTransparent(true);
+ BorderPane.setAlignment(titleLabel, Pos.TOP_CENTER);
+ borderPane.setTop(titleLabel);
+ titleLabel.setStyle("-fx-font-size: 16; -fx-font-weight: bold; -fx-text-fill: #333333;");
+
+ Label messageLabel = new Label(message);
+ messageLabel.setWrapText(true);
+ messageLabel.setMouseTransparent(true);
+ borderPane.setCenter(messageLabel);
+ messageLabel.setStyle("-fx-font-size: 12; -fx-text-fill: #000000;");
+ messageLabel.setPadding(new Insets(20, 0, 30, 0));
+
+ Button closeButton = getCloseButton();
+ BorderPane.setAlignment(closeButton, Pos.BOTTOM_RIGHT);
+ borderPane.setBottom(closeButton);
+
+ show(borderPane);
+ }
+
+ private void setupStage() {
+ stage.initModality(Modality.WINDOW_MODAL);
+ stage.initStyle(StageStyle.UNDECORATED);
+ stage.initOwner(rootStage);
+
+ sceneRootPane = new StackPane();
+ Scene scene = new Scene(sceneRootPane);
+ scene.getStylesheets().setAll(getClass().getResource("/io/bitsquare/gui/bitsquare.css").toExternalForm(),
+ getClass().getResource("/io/bitsquare/gui/images.css").toExternalForm());
+ stage.setScene(scene);
+ }
+
+ private void hide() {
+ stage.hide();
+ }
+
+ private void show(Pane pane) {
+ sceneRootPane.getChildren().setAll(pane);
+ stage.show();
+ }
+
+ private Button getCloseButton() {
+ Button closeButton = new Button("Close");
+ closeButton.setDefaultButton(true);
+ closeButton.setOnAction(e -> hide());
+ return closeButton;
+ }
+}
diff --git a/gui/src/main/java/io/bitsquare/gui/components/dialogs/InfoDialog.java b/gui/src/main/java/io/bitsquare/gui/components/dialogs/InfoDialog.java
new file mode 100644
index 0000000000..4f2b5947a7
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/components/dialogs/InfoDialog.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of Bitsquare.
+ *
+ * Bitsquare is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Bitsquare. If not, see .
+ */
+
+package io.bitsquare.gui.components.dialogs;
+
+import io.bitsquare.locale.BSResources;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import javafx.application.Platform;
+import javafx.event.ActionEvent;
+import javafx.geometry.Insets;
+import javafx.scene.control.*;
+import javafx.scene.image.*;
+import javafx.scene.layout.*;
+import javafx.stage.Stage;
+
+import org.controlsfx.control.ButtonBar;
+import org.controlsfx.control.action.AbstractAction;
+import org.controlsfx.control.action.Action;
+import org.controlsfx.dialog.Dialog;
+import org.controlsfx.dialog.DialogStyle;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+// TODO under construction
+public class InfoDialog {
+ private static final Logger log = LoggerFactory.getLogger(InfoDialog.class);
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ // Constructor
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ @Inject
+ public InfoDialog(Stage stage) {
+
+ final TextField username = new TextField();
+ final PasswordField password = new PasswordField();
+ final Action actionLogin = new AbstractAction("Login") {
+ // This method is called when the login button is clicked ...
+ public void handle(ActionEvent ae) {
+ Dialog d = (Dialog) ae.getSource();
+ // Do the login here.
+ d.hide();
+ }
+ };
+
+ // Create the custom dialog.
+ Dialog dlg = new Dialog(stage, "Login Dialog");
+ dlg.setIconifiable(false);
+ dlg.setClosable(false);
+ dlg.setResizable(false);
+ GridPane grid = new GridPane();
+ grid.setHgap(10);
+ grid.setVgap(10);
+ grid.setPadding(new Insets(0, 10, 0, 10));
+
+ username.setPromptText("Username");
+ password.setPromptText("Password");
+
+ grid.add(new Label("Username:"), 0, 0);
+ grid.add(username, 1, 0);
+ grid.add(new Label("Password:"), 0, 1);
+ grid.add(password, 1, 1);
+
+ ButtonBar.setType(actionLogin, ButtonBar.ButtonType.OK_DONE);
+ actionLogin.disabledProperty().set(true);
+
+ // Do some validation (using the Java 8 lambda syntax).
+ username.textProperty().addListener((observable, oldValue, newValue) -> actionLogin.disabledProperty().set(newValue.trim().isEmpty()));
+
+ dlg.setMasthead("Look, a Custom Login Dialog");
+ dlg.setContent(grid);
+ dlg.getActions().addAll(actionLogin, Dialog.Actions.CANCEL);
+
+ // Request focus on the username field by default.
+ Platform.runLater(username::requestFocus);
+
+ dlg.show();
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ // Public methods
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ public void show(Object owner, String title, String masthead, String message) {
+
+ Dialog dlg = new Dialog(owner, title, false, DialogStyle.CROSS_PLATFORM_DARK);
+ dlg.setResizable(false);
+ dlg.setIconifiable(false);
+ dlg.setClosable(false);
+
+ Image image = new Image(InfoDialog.class.getResource
+ ("/impl/org/controlsfx/dialog/resources/oxygen/48/dialog-information.png").toString());
+ if (image != null) {
+ dlg.setGraphic(new ImageView(image));
+ }
+ dlg.setMasthead(masthead);
+ List actions = new ArrayList<>();
+ actions.add(new AbstractAction(BSResources.get("shared.close")) {
+ @Override
+ public void handle(ActionEvent actionEvent) {
+ getProperties().put("type", "CLOSE");
+ Dialog.Actions.CLOSE.handle(actionEvent);
+ // overlayManager.removeBlurContent();
+ }
+ });
+ dlg.getActions().addAll(actions);
+ // dlg.setBackgroundEffect(backgroundEffect);
+ }
+
+}
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBar.java
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java
diff --git a/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
rename to gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepItem.java
diff --git a/src/main/java/io/bitsquare/gui/images.css b/gui/src/main/java/io/bitsquare/gui/images.css
similarity index 100%
rename from src/main/java/io/bitsquare/gui/images.css
rename to gui/src/main/java/io/bitsquare/gui/images.css
diff --git a/src/main/java/io/bitsquare/gui/main/MainView.fxml b/gui/src/main/java/io/bitsquare/gui/main/MainView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/MainView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/MainView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/MainView.java b/gui/src/main/java/io/bitsquare/gui/main/MainView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/MainView.java
rename to gui/src/main/java/io/bitsquare/gui/main/MainView.java
diff --git a/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
similarity index 98%
rename from src/main/java/io/bitsquare/gui/main/MainViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
index c68f2a3ab7..c822a7cff6 100644
--- a/src/main/java/io/bitsquare/gui/main/MainViewModel.java
+++ b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java
@@ -149,6 +149,8 @@ class MainViewModel implements ViewModel {
}
public void initBackend() {
+ Platform.runLater(() -> updateProcess.init());
+
setBitcoinNetworkSyncProgress(-1);
walletService.getDownloadProgress().subscribe(
percentage -> Platform.runLater(() -> {
@@ -195,16 +197,16 @@ class MainViewModel implements ViewModel {
log.trace("updateProcess completed");
});
- Observable> backEnd = Observable.merge(message, wallet, updateProcess);
- backEnd.subscribe(
+ Observable> allTasks = Observable.merge(message, wallet, updateProcess);
+ allTasks.subscribe(
next -> {
},
error -> log.error(error.toString()),
- () -> Platform.runLater(() -> backEndCompleted())
+ () -> Platform.runLater(() -> allTasksCompleted())
);
}
- private void backEndCompleted() {
+ private void allTasksCompleted() {
log.trace("backend completed");
tradeManager.getPendingTrades().addListener(
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
new file mode 100644
index 0000000000..5187d4a2c9
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.fxml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/AccountViewModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
new file mode 100644
index 0000000000..99e13f1f47
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.fxml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/ArbitratorSettingsView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
new file mode 100644
index 0000000000..74cd7b669a
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.fxml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
new file mode 100644
index 0000000000..4e816828a9
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.fxml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/profile/ArbitratorProfileView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
new file mode 100644
index 0000000000..fd7d993400
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.fxml
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/arbitrator/registration/ArbitratorRegistrationView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
new file mode 100644
index 0000000000..1b95321a87
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.fxml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountDataModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
new file mode 100644
index 0000000000..f4be515544
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountDataModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
new file mode 100644
index 0000000000..a0286b0183
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.fxml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/irc/IrcAccountViewModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
new file mode 100644
index 0000000000..102c5c7e7c
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.fxml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationDataModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
new file mode 100644
index 0000000000..00144dac5a
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsDataModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
new file mode 100644
index 0000000000..2f7ab786b9
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
new file mode 100644
index 0000000000..86df0e6cd1
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
new file mode 100644
index 0000000000..683c04db27
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml b/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
new file mode 100644
index 0000000000..0fd4dacacc
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.fxml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java b/gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
rename to gui/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupWizard.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
new file mode 100644
index 0000000000..42e9c13722
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/funds/FundsView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/FundsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsListItem.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
new file mode 100644
index 0000000000..e0dc1aba6d
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/transactions/TransactionsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalListItem.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
new file mode 100644
index 0000000000..ce7b6b9590
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java b/gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
rename to gui/src/main/java/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.java
diff --git a/src/main/java/io/bitsquare/gui/main/help/Help.java b/gui/src/main/java/io/bitsquare/gui/main/help/Help.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/help/Help.java
rename to gui/src/main/java/io/bitsquare/gui/main/help/Help.java
diff --git a/src/main/java/io/bitsquare/gui/main/help/HelpId.java b/gui/src/main/java/io/bitsquare/gui/main/help/HelpId.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/help/HelpId.java
rename to gui/src/main/java/io/bitsquare/gui/main/help/HelpId.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml b/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
new file mode 100644
index 0000000000..692da362df
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.fxml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/home/HomeView.java b/gui/src/main/java/io/bitsquare/gui/main/home/HomeView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/home/HomeView.java
rename to gui/src/main/java/io/bitsquare/gui/main/home/HomeView.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml b/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
new file mode 100644
index 0000000000..493a586df2
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.fxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/io/bitsquare/gui/main/msg/MsgView.java b/gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/msg/MsgView.java
rename to gui/src/main/java/io/bitsquare/gui/main/msg/MsgView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesListItem.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
new file mode 100644
index 0000000000..2adf2485dd
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.fxml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/closed/ClosedTradesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OfferListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersDataModel.java
diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
new file mode 100644
index 0000000000..aeb8b60a95
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.fxml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/offer/OffersViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/portfolio/pending/PendingTradesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesView.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/application/PreferencesViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
rename to gui/src/main/java/io/bitsquare/gui/main/settings/network/NetworkSettingsView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/BuyView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/BuyView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/BuyView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/SellView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/SellView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/SellView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/SellView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/SellView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/TradeView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/TradeView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/TradeView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/TradeView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBook.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookListItem.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferDataModel.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.java
diff --git a/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
rename to gui/src/main/java/io/bitsquare/gui/main/trade/takeoffer/TakeOfferViewModel.java
diff --git a/src/main/java/io/bitsquare/gui/util/BSFormatter.java b/gui/src/main/java/io/bitsquare/gui/util/BSFormatter.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/BSFormatter.java
rename to gui/src/main/java/io/bitsquare/gui/util/BSFormatter.java
diff --git a/src/main/java/io/bitsquare/gui/util/Colors.java b/gui/src/main/java/io/bitsquare/gui/util/Colors.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Colors.java
rename to gui/src/main/java/io/bitsquare/gui/util/Colors.java
diff --git a/src/main/java/io/bitsquare/gui/util/ImageUtil.java b/gui/src/main/java/io/bitsquare/gui/util/ImageUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/ImageUtil.java
rename to gui/src/main/java/io/bitsquare/gui/util/ImageUtil.java
diff --git a/src/main/java/io/bitsquare/gui/util/Profiler.java b/gui/src/main/java/io/bitsquare/gui/util/Profiler.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Profiler.java
rename to gui/src/main/java/io/bitsquare/gui/util/Profiler.java
diff --git a/src/main/java/io/bitsquare/gui/util/Transitions.java b/gui/src/main/java/io/bitsquare/gui/util/Transitions.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/Transitions.java
rename to gui/src/main/java/io/bitsquare/gui/util/Transitions.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BankAccountNumberValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BtcAddressValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/InputValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/NumberValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/OptionalBtcValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/OptionalFiatValidator.java
diff --git a/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
similarity index 100%
rename from src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
rename to gui/src/main/java/io/bitsquare/gui/util/validation/PasswordValidator.java
diff --git a/src/main/java/io/bitsquare/locale/BSResources.java b/gui/src/main/java/io/bitsquare/locale/BSResources.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/BSResources.java
rename to gui/src/main/java/io/bitsquare/locale/BSResources.java
diff --git a/src/main/java/io/bitsquare/locale/Country.java b/gui/src/main/java/io/bitsquare/locale/Country.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/Country.java
rename to gui/src/main/java/io/bitsquare/locale/Country.java
diff --git a/src/main/java/io/bitsquare/locale/CountryUtil.java b/gui/src/main/java/io/bitsquare/locale/CountryUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/CountryUtil.java
rename to gui/src/main/java/io/bitsquare/locale/CountryUtil.java
diff --git a/src/main/java/io/bitsquare/locale/CurrencyUtil.java b/gui/src/main/java/io/bitsquare/locale/CurrencyUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/CurrencyUtil.java
rename to gui/src/main/java/io/bitsquare/locale/CurrencyUtil.java
diff --git a/src/main/java/io/bitsquare/locale/LanguageUtil.java b/gui/src/main/java/io/bitsquare/locale/LanguageUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/LanguageUtil.java
rename to gui/src/main/java/io/bitsquare/locale/LanguageUtil.java
diff --git a/src/main/java/io/bitsquare/locale/Region.java b/gui/src/main/java/io/bitsquare/locale/Region.java
similarity index 100%
rename from src/main/java/io/bitsquare/locale/Region.java
rename to gui/src/main/java/io/bitsquare/locale/Region.java
diff --git a/gui/src/main/java/io/bitsquare/modena.css b/gui/src/main/java/io/bitsquare/modena.css
new file mode 100644
index 0000000000..65796ee424
--- /dev/null
+++ b/gui/src/main/java/io/bitsquare/modena.css
@@ -0,0 +1,3115 @@
+/*
+ Modena
+
+ This is the second generation theme for JavaFX after Caspian.
+*/
+
+/*
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/*******************************************************************************
+ * *
+ * THEMING INSTRUCTIONS *
+ * *
+ *******************************************************************************
+
+TODO: Explain here how theming works:
+
+ * -fx-text-base-color for text on top of -fx-base, -fx-color, and -fx-body-color
+ * -fx-text-background-color for text on top of -fx-background
+ * -fx-text-inner-color for text on top of -fx-control-inner-color
+ * -fx-selection-bar-text for text on top of -fx-selection-bar
+
+RESIZING FOR DIFFERENT SCREEN DPI
+-------------------------------
+
+When the screen DPI changes Windows will use a different font size by default.
+The default is 12px and can change to 15px or 18px depending on user
+preference or screen DPI. On Mac the default is 13px and embedded will depend
+on hardware. To make UI controls scale and be the right proportions for each of
+these font sizes we base the padding (which controls size of control) on the
+font size. This is done using the CSS measurement unit of a "em" where
+(1em = font size). The default sizes are based on Windows default of 12px, as
+a quick reference here are common px sizes in em units on windows.
+
+Windows 12px -> em units -> Mac 13px |
+----------------------------------------
+ 1px -> 0.083333em -> 1.08px ~ 2px
+ 2px -> 0.166667em -> 2.16px ~ 3px
+ 3px = 0.25em
+ 4px = 0.333333em
+ 5px = 0.416667em
+ 6px = 0.5em
+ 7px = 0.583333em
+ 8px = 0.666667em
+ 9px = 0.75em
+ 10px = 0.833333em
+ 11px = 0.916667em
+ 12px = 1em
+
+IMPORTANT: Not all sizes are scaled with em units only padding. All borders and
+background insets are still in pixels. Also any padding where it has to match up
+is being used to size a border should also be in pixels.
+
+ ******************************************************************************/
+
+/*******************************************************************************
+ * *
+ * CSS Styles for core infrastructure bits. The .root section provides the *
+ * overall default colors used by the rest of the sections. *
+ * *
+ ******************************************************************************/
+
+.root {
+ /***************************************************************************
+ * *
+ * The main color palette from which the rest of the colors are derived. *
+ * *
+ **************************************************************************/
+
+ /* A light grey that is the base color for objects. Instead of using
+ * -fx-base directly, the sections in this file will typically use -fx-color.
+ */
+ -fx-base: #ececec;
+
+ /* A very light grey used for the background of windows. See also
+ * -fx-text-background-color, which should be used as the -fx-text-fill
+ * value for text painted on top of backgrounds colored with -fx-background.
+ */
+ -fx-background: derive(-fx-base,26.4%);
+
+ /* Used for the inside of text boxes, password boxes, lists, trees, and
+ * tables. See also -fx-text-inner-color, which should be used as the
+ * -fx-text-fill value for text painted on top of backgrounds colored
+ * with -fx-control-inner-background.
+ */
+ -fx-control-inner-background: derive(-fx-base,80%);
+ /* Version of -fx-control-inner-background for alternative rows */
+ -fx-control-inner-background-alt: derive(-fx-control-inner-background,-2%);
+
+ /* One of these colors will be chosen based upon a ladder calculation
+ * that uses the brightness of a background color. Instead of using these
+ * colors directly as -fx-text-fill values, the sections in this file should
+ * use a derived color to match the background in use. See also:
+ *
+ * -fx-text-base-color for text on top of -fx-base, -fx-color, and -fx-body-color
+ * -fx-text-background-color for text on top of -fx-background
+ * -fx-text-inner-color for text on top of -fx-control-inner-color
+ * -fx-selection-bar-text for text on top of -fx-selection-bar
+ */
+ -fx-dark-text-color: black;
+ -fx-mid-text-color: #333;
+ -fx-light-text-color: white;
+
+ /* A bright blue for highlighting/accenting objects. For example: selected
+ * text; selected items in menus, lists, trees, and tables; progress bars */
+ -fx-accent: #0096C9;
+
+ /* Default buttons color, this is similar to accent but more subtle */
+ -fx-default-button: #ABD8ED;
+
+ /* A bright blue for the focus indicator of objects. Typically used as the
+ * first color in -fx-background-color for the "focused" pseudo-class. Also
+ * typically used with insets of -1.4 to provide a glowing effect.
+ */
+ -fx-focus-color: #039ED3;
+ -fx-faint-focus-color: #039ED322;
+
+ /* The color that is used in styling controls. The default value is based
+ * on -fx-base, but is changed by pseudoclasses to change the base color.
+ * For example, the "hover" pseudoclass will typically set -fx-color to
+ * -fx-hover-base (see below) and the "armed" pseudoclass will typically
+ * set -fx-color to -fx-pressed-base.
+ */
+ -fx-color: -fx-base;
+
+ /* Chart Color Palette */
+ CHART_COLOR_1: #f3622d;
+ CHART_COLOR_2: #fba71b;
+ CHART_COLOR_3: #57b757;
+ CHART_COLOR_4: #41a9c9;
+ CHART_COLOR_5: #4258c9;
+ CHART_COLOR_6: #9a42c8;
+ CHART_COLOR_7: #c84164;
+ CHART_COLOR_8: #888888;
+ /* Chart Color Palette Semi-Transparent
+ * These are used by charts that need semi transparent versions of the above colors, such as BubbleChart. They
+ * are exactly the same colors as above just with alpha
+ *
+ * 20% opacity
+ */
+ CHART_COLOR_1_TRANS_20: #f3622d33;
+ CHART_COLOR_2_TRANS_20: #fba71b33;
+ CHART_COLOR_3_TRANS_20: #57b75733;
+ CHART_COLOR_4_TRANS_20: #41a9c933;
+ CHART_COLOR_5_TRANS_20: #4258c933;
+ CHART_COLOR_6_TRANS_20: #9a42c833;
+ CHART_COLOR_7_TRANS_20: #c8416433;
+ CHART_COLOR_8_TRANS_20: #88888833;
+ /* 70% opacity */
+ CHART_COLOR_1_TRANS_70: #f3622db3;
+ CHART_COLOR_2_TRANS_70: #fba71bb3;
+ CHART_COLOR_3_TRANS_70: #57b757b3;
+ CHART_COLOR_4_TRANS_70: #41a9c9b3;
+ CHART_COLOR_5_TRANS_70: #4258c9b3;
+ CHART_COLOR_6_TRANS_70: #9a42c8b3;
+ CHART_COLOR_7_TRANS_70: #c84164b3;
+ CHART_COLOR_8_TRANS_70: #888888b3;
+
+ /***************************************************************************
+ * *
+ * Colors that are derived from the main color palette. *
+ * *
+ **************************************************************************/
+
+ /* A little lighter than -fx-base and used as the -fx-color for the
+ * "hovered" pseudoclass state.
+ */
+ -fx-hover-base: ladder(
+ -fx-base,
+ derive(-fx-base,20%) 20%,
+ derive(-fx-base,30%) 35%,
+ derive(-fx-base,40%) 50%
+ );
+
+ /* A little darker than -fx-base and used as the -fx-color for the
+ * "armed" pseudoclass state.
+ *
+ * TODO: should this be renamed to -fx-armed-base?
+ */
+ -fx-pressed-base: derive(-fx-base,-6%);
+
+ /* The color to use for -fx-text-fill when text is to be painted on top of
+ * a background filled with the -fx-background color.
+ */
+ -fx-text-background-color: ladder(
+ -fx-background,
+ -fx-light-text-color 45%,
+ -fx-dark-text-color 46%,
+ -fx-dark-text-color 59%,
+ -fx-mid-text-color 60%
+ );
+
+ /* A little darker than -fx-color and used to draw boxes around objects such
+ * as progress bars, scroll bars, scroll panes, trees, tables, and lists.
+ */
+ -fx-box-border: ladder(
+ -fx-color,
+ black 20%,
+ derive(-fx-color,-15%) 30%
+ );
+
+ /* Darker than -fx-background and used to draw boxes around text boxes and
+ * password boxes.
+ */
+ -fx-text-box-border: ladder(
+ -fx-background,
+ black 10%,
+ derive(-fx-background, -15%) 30%
+ );
+
+ /* Lighter than -fx-background and used to provide a small highlight when
+ * needed on top of -fx-background. This is never a shadow in Modena but
+ * keep -fx-shadow-highlight-color name to be compatible with Caspian.
+ */
+ -fx-shadow-highlight-color: ladder(
+ -fx-background,
+ rgba(255,255,255,0.07) 0%,
+ rgba(255,255,255,0.07) 20%,
+ rgba(255,255,255,0.07) 70%,
+ rgba(255,255,255,0.7) 90%,
+ rgba(255,255,255,0.75) 100%
+ );
+
+ /* A gradient that goes from a little darker than -fx-color on the top to
+ * even more darker than -fx-color on the bottom. Typically is the second
+ * color in the -fx-background-color list as the small thin border around
+ * a control. It is typically the same size as the control (i.e., insets
+ * are 0).
+ */
+ -fx-outer-border: derive(-fx-color,-23%);
+
+ /* A gradient that goes from a bit lighter than -fx-color on the top to
+ * a little darker at the bottom. Typically is the third color in the
+ * -fx-background-color list as a thin highlight inside the outer border.
+ * Insets are typically 1.
+ */
+ -fx-inner-border: linear-gradient(to bottom,
+ ladder(
+ -fx-color,
+ derive(-fx-color,30%) 0%,
+ derive(-fx-color,20%) 40%,
+ derive(-fx-color,25%) 60%,
+ derive(-fx-color,55%) 80%,
+ derive(-fx-color,55%) 90%,
+ derive(-fx-color,75%) 100%
+ ),
+ ladder(
+ -fx-color,
+ derive(-fx-color,20%) 0%,
+ derive(-fx-color,10%) 20%,
+ derive(-fx-color,5%) 40%,
+ derive(-fx-color,-2%) 60%,
+ derive(-fx-color,-5%) 100%
+ ));
+ -fx-inner-border-horizontal: linear-gradient(to right, derive(-fx-color,55%), derive(-fx-color,-5%));
+ -fx-inner-border-bottomup: linear-gradient(to top, derive(-fx-color,55%), derive(-fx-color,-5%));
+
+ /* A gradient that goes from a little lighter than -fx-color at the top to
+ * a little darker than -fx-color at the bottom and is used to fill the
+ * body of many controls such as buttons.
+ */
+ -fx-body-color: linear-gradient(to bottom,
+ ladder(
+ -fx-color,
+ derive(-fx-color,8%) 75%,
+ derive(-fx-color,10%) 80%
+ ),
+ derive(-fx-color,-8%));
+ -fx-body-color-bottomup: linear-gradient(to top, derive(-fx-color,10%) ,derive(-fx-color,-6%));
+ -fx-body-color-to-right: linear-gradient(to right, derive(-fx-color,10%) ,derive(-fx-color,-6%));
+
+ /* The color to use as -fx-text-fill when painting text on top of
+ * backgrounds filled with -fx-base, -fx-color, and -fx-body-color.
+ */
+ -fx-text-base-color: ladder(
+ -fx-color,
+ -fx-light-text-color 45%,
+ -fx-dark-text-color 46%,
+ -fx-dark-text-color 59%,
+ -fx-mid-text-color 60%
+ );
+
+ /* The color to use as -fx-text-fill when painting text on top of
+ * backgrounds filled with -fx-control-inner-background.
+ */
+ -fx-text-inner-color: ladder(
+ -fx-control-inner-background,
+ -fx-light-text-color 45%,
+ -fx-dark-text-color 46%,
+ -fx-dark-text-color 59%,
+ -fx-mid-text-color 60%
+ );
+
+ /* The color to use for small mark-like objects such as checks on check
+ * boxes, filled in circles in radio buttons, arrows on scroll bars, etc.
+ */
+ -fx-mark-color: ladder(
+ -fx-color,
+ white 30%,
+ derive(-fx-color,-63%) 31%
+ );
+
+ /* The small thin light "shadow" for mark-like objects. Typically used in
+ * conjunction with -fx-mark-color with an insets of 1 0 -1 0. */
+ -fx-mark-highlight-color: ladder(
+ -fx-color,
+ derive(-fx-color,80%) 60%,
+ white 70%
+ );
+
+ /* Background for items in list like things such as menus, lists, trees,
+ * and tables. */
+ -fx-selection-bar: -fx-accent;
+
+ /* Background color to use for selection of list cells etc. This is when
+ * the control doesn't have focus or the row of a previously selected item. */
+ -fx-selection-bar-non-focused: lightgrey;
+
+ /* The color to use as -fx-text-fill when painting text on top of
+ * backgrounds filled with -fx-selection-bar.
+ *
+ * TODO: this can be removed
+ */
+ -fx-selection-bar-text: -fx-text-background-color;
+
+ /* These are needed for Popup */
+ -fx-background-color: inherit;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: inherit;
+
+ /* The color to use in ListView/TreeView/TableView to indicate hover. */
+ -fx-cell-hover-color: #cce3f4;
+
+ /** Focus line for keyboard focus traversal on cell based controls */
+ -fx-cell-focus-inner-border: derive(-fx-selection-bar,30%);
+
+ /* The colors to use in Pagination */
+ -fx-page-bullet-border: #acacac;
+ -fx-page-indicator-hover-border: #accee5;
+
+ /***************************************************************************
+ * *
+ * Set the default background color for the scene *
+ * *
+ **************************************************************************/
+
+ -fx-background-color: -fx-background;
+}
+
+/* Make popups transparent */
+.root.popup {
+ -fx-background-color: transparent;
+}
+
+/*******************************************************************************
+ * *
+ * Common Styles *
+ * *
+ * These are styles that give a standard look to a whole range of controls *
+ * *
+ ******************************************************************************/
+
+/* ==== TEXT NODES IN CONTROLS ========================================== */
+
+.text {
+ /* This adjusts text alignment within the bounds of text nodes so that
+ the text is always vertically centered within the bounds. Based on
+ the cap height of the text. */
+ -fx-bounds-type: logical_vertical_center;
+ /* Enable LCD text rendering */
+ -fx-font-smoothing-type: lcd;
+}
+
+/* ==== BUTTON LIKE THINGS ============================================== */
+
+.button,
+.toggle-button,
+.radio-button > .radio,
+.check-box > .box,
+.menu-button,
+.choice-box,
+.color-picker.split-button > .color-picker-label,
+.combo-box-base,
+.combo-box-base:editable > .arrow-button {
+ -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-background-radius: 3px, 3px, 2px, 1px;
+ -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+ -fx-text-fill: -fx-text-base-color;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+}
+.menu-button > .label {
+ -fx-alignment: CENTER_LEFT;
+}
+.button:hover,
+.toggle-button:hover,
+.radio-button:hover > .radio,
+.check-box:hover > .box,
+.menu-button:hover,
+.split-menu-button > .label:hover,
+.split-menu-button > .arrow-button:hover,
+.slider .thumb:hover,
+.scroll-bar > .thumb:hover,
+.scroll-bar > .increment-button:hover,
+.scroll-bar > .decrement-button:hover,
+.choice-box:hover,
+.color-picker.split-button > .arrow-button:hover,
+.color-picker.split-button > .color-picker-label:hover,
+.combo-box-base:hover,
+.combo-box-base:editable > .arrow-button:hover,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:hover {
+ -fx-color: -fx-hover-base;
+}
+.button:armed,
+.toggle-button:armed,
+.radio-button:armed > .radio,
+.check-box:armed .box,
+.menu-button:armed,
+.split-menu-button:armed > .label,
+.split-menu-button > .arrow-button:pressed,
+.split-menu-button:showing > .arrow-button,
+.slider .thumb:pressed,
+.scroll-bar > .thumb:pressed,
+.scroll-bar > .increment-button:pressed,
+.scroll-bar > .decrement-button:pressed,
+.choice-box:showing,
+.combo-box-base:showing,
+.combo-box-base:editable:showing > .arrow-button,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:pressed {
+ -fx-color: -fx-pressed-base;
+}
+.button:focused,
+.toggle-button:focused,
+.radio-button:focused > .radio,
+.check-box:focused > .box,
+.menu-button:focused,
+.choice-box:focused,
+.color-picker.split-button:focused > .color-picker-label,
+.combo-box-base:focused,
+.slider:focused .thumb {
+ -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
+ -fx-background-radius: 3, 2, 1, 4, 1;
+}
+
+/* ==== DISABLED THINGS ================================================= */
+
+.label:disabled,
+.button:disabled,
+.toggle-button:disabled,
+.radio-button:disabled,
+.check-box:disabled,
+.hyperlink:disabled,
+.menu-button:disabled,
+.split-menu-button:disabled,
+.slider:disabled,
+.scroll-bar:disabled,
+.scroll-pane:disabled,
+.progress-bar:disabled,
+.progress-indicator:disabled,
+.text-input:disabled,
+.choice-box:disabled,
+.combo-box-base:disabled,
+.date-cell:disabled > *, /* This is set on children so border is not affected. */
+.list-view:disabled,
+.tree-view:disabled,
+.table-view:disabled,
+.tree-table-view:disabled,
+.tab-pane:disabled,
+.titled-pane:disabled > .title,
+.accordion:disabled > .titled-pane > .title,
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled,
+.menu:disabled,
+.menu-item:disabled > .label,
+.menu-item:disabled,
+.list-cell:filled:selected:focused:disabled,
+.list-cell:filled:selected:disabled,
+.tree-cell:filled:selected:focused:disabled,
+.tree-cell:filled:selected:disabled,
+.tree-cell > .tree-disclosure-node:disabled,
+.tree-table-row-cell > .tree-disclosure-node:disabled,
+.table-row-cell:selected:disabled,
+.tree-table-row-cell:selected:disabled,
+.table-cell:selected:disabled,
+.tree-table-cell:selected:disabled {
+ -fx-opacity: 0.4;
+}
+
+/* ==== MNEMONIC THINGS ================================================= */
+
+.mnemonic-underline {
+ -fx-stroke: transparent;
+}
+
+.titled-pane:show-mnemonics > .mnemonic-underline,
+.label:show-mnemonics > .mnemonic-underline,
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item:show-mnemonics > .mnemonic-underline,
+.button:show-mnemonics > .mnemonic-underline,
+.toggle-button:show-mnemonics > .mnemonic-underline,
+.radio-button:show-mnemonics > .mnemonic-underline,
+.check-box:show-mnemonics > .mnemonic-underline,
+.hyperlink:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline,
+.menu-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-base-color;
+}
+
+/* ==== MARKS =========================================================== */
+
+.radio-button:selected > .radio > .dot,
+.check-box:selected > .box > .mark,
+.check-box:indeterminate > .box > .mark {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+}
+
+/* ==== ARROWS ========================================================== */
+
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 0 0 -1 0, 0;
+ -fx-padding: 0.25em;
+ -fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
+}
+.choice-box > .open-button > .arrow,
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow,
+.combo-box-base > .arrow-button > .arrow,
+.web-view .form-select-button .arrow,
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 0 0 -1 0, 0;
+ -fx-padding: 0.166667em 0.333333em 0.166667em 0.333333em; /* 2 4 2 4 */
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+/* ==== CHOICE BOX LIKE THINGS ========================================== */
+
+.choice-box,
+.menu-button,
+.combo-box-base {
+ -fx-padding: 0;
+}
+.choice-box > .label,
+.menu-button > .label,
+.color-picker > .label {
+ -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+ -fx-text-fill: -fx-text-base-color;
+}
+.choice-box > .open-button,
+.menu-button > .arrow-button {
+ -fx-padding: 0.5em 0.667em 0.5em 0.0em; /* 6 8 6 0 */
+}
+
+/* ==== BOX LIKE THINGS ================================================= */
+
+.scroll-pane,
+.split-pane,
+.list-view,
+.tree-view,
+.table-view,
+.tree-table-view,
+.html-editor {
+ -fx-background-color: -fx-box-border, -fx-control-inner-background;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 1;
+}
+.scroll-pane:focused,
+.split-pane:focused,
+.list-view:focused,
+.tree-view:focused,
+.table-view:focused,
+.tree-table-view:focused,
+.html-editor:focused {
+ -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-control-inner-background;
+ -fx-background-insets: -1.4, -0.3, 1;
+ -fx-background-radius: 2, 0, 0;
+}
+/* ones with grey -fx-background not lighter -fx-control-inner-background */
+.scroll-pane,
+.split-pane {
+ -fx-background-color: -fx-box-border, -fx-background;
+}
+.scroll-pane:focused,
+.split-pane:focused {
+ -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-background;
+}
+
+/*******************************************************************************
+ * *
+ * Label *
+ * *
+ ******************************************************************************/
+
+.label {
+ -fx-text-fill: -fx-text-background-color;
+}
+
+/*******************************************************************************
+ * *
+ * Button & ToggleButton *
+ * *
+ ******************************************************************************/
+
+/* ==== DEFAULT ========================================================= */
+
+.button:default {
+ -fx-base: -fx-default-button;
+}
+
+/* ==== WEB BUTTONS ===================================================== */
+
+.web-view .form-select-button {
+ -fx-background-radius: 2, 2, 1, 0;
+ -fx-background-insets: 2 2 1 2, 2, 3, 4;
+}
+
+/* ==== PILL BUTTONS ==================================================== */
+
+.button.left-pill,
+.toggle-button.left-pill {
+ -fx-background-radius: 3 0 0 3, 3 0 0 3, 2 0 0 2, 1 0 0 1;
+ -fx-background-insets: 0 0 -1 0, 0, 1, 2;
+ -fx-padding: 0.333333em 0.666667em 0.333333em 0.75em; /* 4 8 4 9 */
+}
+.button.center-pill,
+.toggle-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0 0 -1 0, 0 0 0 0, 1 1 1 0, 2 2 2 1 ;
+}
+.button.right-pill,
+.toggle-button.right-pill {
+ -fx-background-radius: 0 3 3 0, 0 3 3 0, 0 2 2 0, 0 1 1 0;
+ -fx-background-insets: 0 0 -1 0, 0, 1 1 1 0, 2 2 2 1 ;
+}
+.button.left-pill:focused,
+.toggle-button.left-pill:focused {
+ -fx-background-insets: -0.2 0 -0.2 -0.2, 1, 2, -1.4 0 -1.4 -1.4, 2.6;
+ -fx-background-radius: 3 0 0 3, 2 0 0 2, 1 0 0 1, 4 0 0 4, 1 0 0 1;
+}
+.button.center-pill:focused,
+.toggle-button.center-pill:focused {
+ -fx-background-insets: -0.2 0 -0.2 -1, 1 1 1 0, 2 2 2 1, -1.4 0 -1.4 -1, 2.6 2.6 2.6 1.6;
+ -fx-background-radius: 0, 0, 0, 0, 0;
+}
+.button.right-pill:focused,
+.toggle-button.right-pill:focused {
+ -fx-background-insets: -0.2 -0.2 -0.2 -1, 1 1 1 0, 2 2 2 1, -1.4 -1.4 -1.4 -1, 2.6 2.6 2.6 1.6;
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0, 0 4 4 0, 0 1 1 0;
+}
+.toggle-button:selected.left-pill:focused {
+ -fx-background-insets: -0.2 0 -0.2 -0.2, 1, -1.4 0 -1.4 -1.4, 2.6;
+ -fx-background-radius: 3 0 0 3, 2 0 0 2, 4 0 0 4, 0;
+}
+.toggle-button:selected.center-pill:focused {
+ -fx-background-insets: -0.2 0 -0.2 -1, 1 1 1 0, -1.4 0 -1.4 -1, 2.6 2.6 2.6 1.6;
+ -fx-background-radius: 0, 0, 0, 0;
+}
+.toggle-button:selected.right-pill:focused {
+ -fx-background-insets: -0.2 -0.2 -0.2 -1, 1 1 1 0, -1.4 -1.4 -1.4 -1, 2.6 2.6 2.6 1.6;
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 4 4 0, 0;
+}
+
+/* ==== SELECTED TOGGLE ================================================= */
+
+.toggle-button:selected {
+ -fx-background-color:
+ -fx-shadow-highlight-color,
+ linear-gradient(to bottom, derive(-fx-outer-border, -20%), -fx-outer-border),
+ linear-gradient(to bottom,
+ derive(-fx-color, -22%) 0%,
+ derive(-fx-color, -13%) 20%,
+ derive(-fx-color, -11%) 50%);
+ -fx-background-insets: 0 0 -1 0, 0, 1;
+}
+.toggle-button:selected:focused {
+ -fx-background-color:
+ -fx-focus-color,
+ linear-gradient(to bottom,
+ derive(-fx-color, -22%) 0%,
+ derive(-fx-color, -13%) 20%,
+ derive(-fx-color, -11%) 50%),
+ -fx-faint-focus-color,
+ linear-gradient(to bottom,
+ derive(-fx-color, -22%) 0%,
+ derive(-fx-color, -13%) 20%,
+ derive(-fx-color, -11%) 50%);
+ -fx-background-insets: -0.2, 1, -1.4, 2.6;
+ -fx-background-radius: 3, 2, 4, 0;
+}
+
+/*******************************************************************************
+ * *
+ * RadioButton *
+ * *
+ ******************************************************************************/
+
+.radio-button {
+ -fx-label-padding: 0.0em 0.0em 0.0em 0.416667em; /* 0 0 0 5 */
+ -fx-text-fill: -fx-text-background-color;
+}
+.radio-button > .radio,
+.radio-button:focused > .radio {
+ -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+ -fx-padding: 0.333333em; /* 4 -- padding from outside edge to the inner black dot */
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent;
+ -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+ -fx-padding: 0.333333em; /* 4 -- radius of the inner black dot when selected */
+}
+
+/*******************************************************************************
+ * *
+ * CheckBox *
+ * *
+ ******************************************************************************/
+
+.check-box {
+ -fx-label-padding: 0.0em 0.0em 0.0em 0.416667em; /* 0 0 0 5 */
+ -fx-text-fill: -fx-text-background-color;
+}
+.check-box > .box {
+ -fx-background-radius: 3, 2, 1;
+ -fx-padding: 0.166667em 0.166667em 0.25em 0.25em; /* 2 2 3 3 */
+}
+.check-box > .box > .mark {
+ -fx-background-color: null;
+ -fx-padding: 0.416667em 0.416667em 0.5em 0.5em; /* 5 5 6 6 */
+ -fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
+}
+.check-box:indeterminate > .box {
+ -fx-padding: 0;
+}
+.check-box:indeterminate > .box > .mark {
+ -fx-shape: "M0,0H10V2H0Z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.666667em; /* 16x16 = 8+8 */
+}
+
+/*******************************************************************************
+ * *
+ * Hyperlink *
+ * *
+ ******************************************************************************/
+
+.hyperlink {
+ -fx-padding: 0.166667em 0.25em 0.166667em 0.25em; /* 2 3 2 3 */
+ -fx-cursor: hand;
+ -fx-content-display: LEFT;
+ -fx-text-fill: -fx-text-background-color;
+ -fx-border-color: transparent;
+ -fx-border-width: 1px;
+}
+.hyperlink,
+.hyperlink:hover,
+.hyperlink:hover:visited {
+ -fx-text-fill: -fx-accent;
+}
+.hyperlink:armed,
+.hyperlink:visited,
+.hyperlink:hover:armed {
+ -fx-text-fill: -fx-text-background-color;
+}
+.hyperlink:hover,
+.hyperlink:visited,
+.hyperlink:hover:visited {
+ -fx-underline: true;
+}
+.hyperlink:visited:armed {
+ -fx-underline: false;
+}
+.hyperlink:focused {
+ -fx-border-color: -fx-focus-color;
+ -fx-border-style: segments(0.166667em, 0.166667em);
+ -fx-border-width: 1px;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+/*******************************************************************************
+ * *
+ * SplitMenuButton *
+ * *
+ ******************************************************************************/
+
+.split-menu-button {
+ -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border;
+ -fx-background-insets: 0 0 -1 0, 0;
+ -fx-background-radius: 3, 3;
+ -fx-padding: 0;
+}
+.split-menu-button > .label {
+ -fx-text-fill: -fx-text-base-color;
+ -fx-background-color: -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 1 0 1 1, 2 1 2 2;
+ -fx-background-radius: 2 0 0 2, 1 0 0 1;
+ -fx-padding: 0.333333em 0.667em 0.333333em 0.667em; /* 4 8 4 8 */
+}
+.split-menu-button > .arrow-button {
+ -fx-background-color: -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 1, 2;
+ -fx-background-radius: 0 2 2 0, 0 1 1 0;
+ -fx-padding: 0.5em 0.667em 0.5em 0.667em; /* 6 8 6 8 */
+}
+.split-menu-button:focused {
+ -fx-background-color: -fx-focus-color;
+ -fx-background-insets: -0.2;
+ -fx-background-radius: 3;
+}
+.split-menu-button:focused > .label {
+ -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-background-insets: 1 0 1 1, 2 1 2 2, -1.4 0 -1.4 -1.4, 2.6 1.6 2.6 2.6;
+ -fx-background-radius: 2 0 0 2, 1 0 0 1, 4 0 0 4, 0;
+}
+.split-menu-button:focused > .arrow-button {
+ -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-background-insets: 1, 2, -1.4, 2.6;
+ -fx-background-radius: 0 2 2 0, 0 1 1 0, 0 4 4 0, 0;
+}
+
+/*******************************************************************************
+ * *
+ * ToolBar *
+ * *
+ ******************************************************************************/
+
+.tool-bar:vertical { /* left */
+ -fx-background-color:
+ -fx-outer-border,
+ linear-gradient(to right, derive(-fx-base,0%) 0%, derive(-fx-base,10%) 50%, derive(-fx-base,0%) 100%);
+ -fx-background-insets: 0, 0 0 0 1;
+ -fx-padding: 0.5em 0.416667em 0.5em 0.416667em; /* 6 5 6 5 */
+ -fx-spacing: 0.333em; /* 4 */
+ -fx-alignment: TOP_LEFT;
+}
+.tool-bar { /* top */
+ TOP-COLOR: ladder(
+ -fx-base,
+ derive(-fx-base,0%) 0%,
+ derive(-fx-base,46%) 100%
+ );
+ -fx-background-color:
+ linear-gradient(to bottom, derive(TOP-COLOR,25%) 0%, -fx-outer-border 90%),
+ linear-gradient(to bottom, TOP-COLOR 2%, derive(-fx-base,-2.1%) 95%);
+ -fx-background-insets: 0 0 0 0, 1 0 1 0;
+ -fx-padding: 0.416667em 0.5em 0.416667em 0.5em; /* 5 6 5 6 */
+ -fx-spacing: 0.333em; /* 4 */
+ -fx-alignment: CENTER_LEFT;
+}
+.tool-bar:vertical.right {
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.tool-bar.bottom {
+ -fx-background-color:
+ -fx-outer-border,
+ derive(TOP-COLOR,25%),
+ linear-gradient(to bottom, TOP-COLOR 2%, derive(-fx-base,-2.1%) 95%);
+ -fx-background-insets: 0, 1 0 0 0, 2 0 0 0;
+}
+.tool-bar > .container > .separator {
+ -fx-orientation: vertical;
+}
+.tool-bar:vertical > .container > .separator {
+ -fx-orientation: horizontal;
+}
+.tool-bar-overflow-button {
+ -fx-padding: 0 0.75em 0 0 ;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+ -fx-padding: 0 0 0.75em 0 ;
+}
+.tool-bar-overflow-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.666667em 0.916667em 0em 0em; /* 8 11 0 0 */
+ -fx-shape: "M337.273,297.622l-0.016,1.069l2.724,2.639l-2.723,2.628l0.015,1.048h0.881l3.81-3.685l-3.788-3.699H337.273z M343.783,297.622h-0.902l-0.015,1.069l2.724,2.639l-2.724,2.628l0.015,1.048h0.882l3.809-3.685L343.783,297.622z" ;
+}
+
+.tool-bar-overflow-button:focused > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, derive(-fx-accent, -15%);
+ -fx-background-insets: 1 0 -1 0, 0;
+}
+
+.tool-bar-overflow-button:hover > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, derive(-fx-hover-base, -35%);
+ -fx-background-insets: 1 0 -1 0, 0;
+}
+
+/*******************************************************************************
+ * *
+ * Slider *
+ * *
+ ******************************************************************************/
+
+.slider .thumb {
+ -fx-background-color:
+ linear-gradient(to bottom, derive(-fx-text-box-border, -20%), derive(-fx-text-box-border, -30%)),
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: 0, 1, 2;
+ -fx-background-radius: 1.0em; /* makes sure this remains circular */
+ -fx-padding: 0.583333em; /* 7 */
+ -fx-effect: dropshadow(two-pass-box , rgba(0, 0, 0, 0.1), 5, 0.0 , 0, 2);
+}
+.slider:focused .thumb {
+ -fx-background-radius: 1.0em; /* makes sure this remains circular */
+}
+.slider .track {
+ -fx-background-color:
+ -fx-shadow-highlight-color,
+ linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+ linear-gradient(to bottom,
+ derive(-fx-control-inner-background, -9%),
+ derive(-fx-control-inner-background, 0%),
+ derive(-fx-control-inner-background, -5%),
+ derive(-fx-control-inner-background, -12%)
+ );
+ -fx-background-insets: 0 0 -1 0, 0, 1;
+ -fx-background-radius: 0.25em, 0.25em, 0.166667em; /* 3 3 2 */
+ -fx-padding: 0.25em; /* 3 */
+}
+.slider:vertical .track {
+ -fx-background-color:
+ -fx-shadow-highlight-color,
+ -fx-text-box-border,
+ linear-gradient(to right,
+ derive(-fx-control-inner-background, -9%),
+ -fx-control-inner-background,
+ derive(-fx-control-inner-background, -9%)
+ );
+}
+.slider .axis {
+ -fx-tick-label-fill: derive(-fx-text-background-color, 30%);
+ -fx-tick-length: 5px;
+ -fx-minor-tick-length: 3px;
+ -fx-border-color: null;
+}
+
+/*******************************************************************************
+ * *
+ * ScrollBar *
+ * *
+ ******************************************************************************/
+
+.scroll-bar:horizontal {
+ -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+ -fx-background-insets: 0, 1 0 1 0;
+}
+.scroll-bar:vertical {
+ -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+ -fx-background-insets: 0, 0 1 0 1;
+}
+.scroll-bar:focused {
+ -fx-background-color:
+ -fx-focus-color,
+ linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%)),
+ -fx-faint-focus-color,
+ linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+ -fx-background-insets: -0.2, 1, -1.4, 2.6;
+}
+.scroll-bar:vertical:focused {
+ -fx-background-color:
+ -fx-focus-color,
+ linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%)),
+ -fx-faint-focus-color,
+ linear-gradient(to right, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+}
+.scroll-bar > .thumb {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ /*-fx-background-insets: 1, 2, 3;*/
+ -fx-background-insets: 2, 3, 4;
+ /*-fx-background-radius: 0.416667em, 0.333333em, 0.25em; *//* 5, 4,3 */
+ -fx-background-radius: 3, 2, 1;
+}
+.scroll-bar:vertical > .thumb {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color-to-right;
+}
+.scroll-bar > .increment-button,
+.scroll-bar > .decrement-button {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-color: transparent;
+ -fx-padding: 0.25em; /* 3px */
+}
+.scroll-bar:horizontal > .increment-button,
+.scroll-bar:horizontal > .decrement-button {
+ -fx-background-insets: 2 1 2 1, 3 2 3 2, 4 3 4 3;
+}
+.scroll-bar:vertical > .increment-button,
+.scroll-bar:vertical > .decrement-button {
+ -fx-background-insets: 1 2 1 2, 2 3 2 3, 3 4 3 4;
+}
+.scroll-bar > .increment-button > .increment-arrow,
+.scroll-bar > .decrement-button > .decrement-arrow {
+ -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-45%);
+}
+.scroll-bar > .increment-button:hover > .increment-arrow,
+.scroll-bar > .decrement-button:hover > .decrement-arrow {
+ -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-50%);
+}
+.scroll-bar > .increment-button:pressed > .increment-arrow,
+.scroll-bar > .decrement-button:pressed > .decrement-arrow {
+ -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-55%);
+}
+.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
+ -fx-padding: 0.333em 0.167em 0.333em 0.167em; /* 4 2 4 2 */
+ -fx-shape: "M5.997,5.072L5.995,6.501l-2.998-4l2.998-4l0.002,1.43l-1.976,2.57L5.997,5.072z";
+ -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+ /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:horizontal > .increment-button > .increment-arrow {
+ -fx-padding: 0.333em 0.167em 0.333em 0.167em; /* 4 2 4 2 */
+ -fx-shape: "M2.998-0.07L3-1.499l2.998,4L3,6.501l-0.002-1.43l1.976-2.57L2.998-0.07z";
+ -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+ /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:vertical > .decrement-button > .decrement-arrow {
+ -fx-padding: 0.167em 0.333em 0.167em 0.333em; /* 2 4 2 4 */
+ -fx-shape: "M1.929,4L0.5,3.998L4.5,1l4,2.998L7.07,4L4.5,2.024L1.929,4z";
+ -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+ /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+.scroll-bar:vertical > .increment-button > .increment-arrow {
+ -fx-padding: 0.167em 0.333em 0.167em 0.333em; /* 2 4 2 4 */
+ -fx-shape: "M7.071,1L8.5,1.002L4.5,4l-4-2.998L1.93,1L4.5,2.976L7.071,1z";
+ -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+ /*-fx-background-insets: 2 0 -2 0, 0;*/
+}
+
+/*******************************************************************************
+ * *
+ * ScrollPane *
+ * *
+ ******************************************************************************/
+.scroll-pane > .viewport {
+ -fx-background-color: -fx-background;
+}
+.scroll-pane > .scroll-bar:horizontal {
+ -fx-background-insets: 0 1 1 1, 1;
+ -fx-padding: 0 1 0 1;
+}
+.scroll-pane > .scroll-bar:horizontal > .increment-button,
+.scroll-pane > .scroll-bar:horizontal > .decrement-button {
+ -fx-padding: 0.166667em 0.25em 0.25em 0.25em; /* 2 3 3 3 */
+}
+.scroll-pane > .scroll-bar:vertical > .increment-button,
+.scroll-pane > .scroll-bar:vertical > .decrement-button {
+ -fx-padding: 0.25em 0.25em 0.25em 0.166667em; /* 3 3 3 2 */
+}
+.scroll-pane > .scroll-bar:vertical {
+ -fx-background-insets: 1 1 1 0, 1;
+ -fx-padding: 1 0 1 0;
+}
+.scroll-pane > .corner {
+ -fx-background-color: derive(-fx-base,-1%);
+ -fx-background-insets: 0 1 1 0;
+}
+/* new styleclass for edge to edge scrollpanes that don't want to draw a border */
+.scroll-pane.edge-to-edge,
+.tab-pane > * > .scroll-pane {
+ -fx-background-color: -fx-background;
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.scroll-pane.edge-to-edge > .scroll-bar,
+.tab-pane > * > .scroll-pane > .scroll-bar,
+.titled-pane > * > * > .scroll-pane > .scroll-bar {
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.scroll-pane.edge-to-edge > .scroll-bar > .increment-button,
+.scroll-pane.edge-to-edge > .scroll-bar > .decrement-button,
+.tab-pane > * > .scroll-pane > .scroll-bar > .increment-button,
+.tab-pane > * > .scroll-pane > .scroll-bar > .decrement-button,
+.titled-pane > * > * > .scroll-pane > .scroll-bar > .increment-button,
+.titled-pane > * > * > .scroll-pane > .scroll-bar > .decrement-button {
+ -fx-padding: 0.25em; /* 3px */
+}
+
+/*******************************************************************************
+ * *
+ * Separator *
+ * *
+ ******************************************************************************/
+
+.separator:horizontal .line {
+ -fx-border-color: -fx-text-box-border transparent transparent transparent,
+ -fx-shadow-highlight-color transparent transparent transparent;
+ -fx-border-insets: 0, 1 0 0 0;
+}
+.separator:vertical .line {
+ -fx-border-color: transparent transparent transparent -fx-shadow-highlight-color,
+ transparent transparent transparent -fx-text-box-border;
+ -fx-border-width: 3, 1;
+ -fx-border-insets: 0, 0 0 0 1;
+}
+
+/*******************************************************************************
+ * *
+ * ProgressBar *
+ * *
+ ******************************************************************************/
+
+.progress-bar {
+ -fx-indeterminate-bar-length: 60;
+ -fx-indeterminate-bar-escape: true;
+ -fx-indeterminate-bar-flip: true;
+ -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .bar {
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-accent, -7%), derive(-fx-accent, 0%), derive(-fx-accent, -3%), derive(-fx-accent, -9%) );
+ -fx-background-insets: 3 3 4 3;
+ /*-fx-background-radius: 0.583em; *//* 7 */
+ -fx-background-radius: 2;
+ -fx-padding: 0.75em;
+}
+.progress-bar:indeterminate > .bar {
+ -fx-background-color: linear-gradient(to left, transparent, -fx-accent);
+}
+.progress-bar > .track {
+ -fx-background-color:
+ -fx-shadow-highlight-color,
+ linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+ linear-gradient(to bottom,
+ derive(-fx-control-inner-background, -7%),
+ derive(-fx-control-inner-background, 0%),
+ derive(-fx-control-inner-background, -3%),
+ derive(-fx-control-inner-background, -9%)
+ );
+ -fx-background-insets: 0, 0 0 1 0, 1 1 2 1;
+ -fx-background-radius: 4, 3, 2; /* 10, 9, 8 */
+}
+
+/*******************************************************************************
+ * *
+ * ProgressIndicator *
+ * *
+ ******************************************************************************/
+
+.progress-indicator {
+ -fx-indeterminate-segment-count: 12;
+ -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+ -fx-background-color: -fx-box-border,
+ radial-gradient(center 50% 50%, radius 50%, -fx-control-inner-background 70%, derive(-fx-control-inner-background, -9%) 100%),
+ -fx-control-inner-background;
+ -fx-background-insets: 0, 1, 5 2 1 2;
+ -fx-padding: 0.166667em; /* 2px */
+}
+.progress-indicator > .determinate-indicator > .progress {
+ -fx-background-color: -fx-accent;
+ -fx-padding: 0.083333em; /* 1px */
+}
+.progress-indicator > .determinate-indicator > .tick {
+ -fx-background-color: white;
+ -fx-background-insets: 0;
+ -fx-padding: 0.666667em; /* 8 */
+ -fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
+}
+.progress-indicator > .percentage {
+ -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */
+ -fx-fill: -fx-text-background-color;
+}
+.progress-indicator:indeterminate .segment {
+ -fx-background-color: -fx-accent;
+}
+.progress-indicator:indeterminate .segment0 {
+ -fx-shape:"M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+ -fx-shape:"M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+ -fx-shape:"M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+ -fx-shape:"M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+ -fx-shape:"M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+ -fx-shape:"M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+ -fx-shape:"M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+ -fx-shape:"M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+ -fx-shape:"M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+ -fx-shape:"M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+ -fx-shape:"M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+ -fx-shape:"M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+/*******************************************************************************
+ * *
+ * Text COMMON *
+ * *
+ ******************************************************************************/
+
+.text-input {
+ -fx-text-fill: -fx-text-inner-color;
+ -fx-highlight-fill: derive(-fx-control-inner-background,-20%);
+ -fx-highlight-text-fill: -fx-text-inner-color;
+ -fx-prompt-text-fill: derive(-fx-control-inner-background,-30%);
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+ linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 3, 2;
+ -fx-cursor: text;
+ -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */
+}
+.text-input:focused {
+ -fx-highlight-fill: -fx-accent;
+ -fx-highlight-text-fill: white;
+ -fx-background-color:
+ -fx-focus-color,
+ -fx-control-inner-background,
+ -fx-faint-focus-color,
+ linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+ -fx-background-insets: -0.2, 1, -1.4, 3;
+ -fx-background-radius: 3, 2, 4, 0;
+ -fx-prompt-text-fill: transparent;
+}
+
+/*******************************************************************************
+ * *
+ * TextArea *
+ * *
+ ******************************************************************************/
+
+.text-area {
+ -fx-padding: 0;
+ -fx-cursor: default;
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
+ derive(-fx-base,-1%);
+}
+.text-area > .scroll-pane {
+ -fx-background-color: null;
+}
+.text-area > .scroll-pane > .scroll-bar:horizontal {
+ -fx-background-radius: 0 0 2 2;
+}
+.text-area > .scroll-pane > .scroll-bar:vertical {
+ -fx-background-radius: 0 2 2 0;
+}
+.text-area > .scroll-pane > .corner {
+ -fx-background-radius: 0 0 2 0;
+}
+.text-area .content {
+ /*the is 1px less top and bottom than TextInput because of scrollpane border */
+ -fx-padding: 0.25em 0.583em 0.25em 0.583em; /* 3 7 3 7 */
+ -fx-cursor: text;
+ -fx-background-color:
+ linear-gradient(from 0px 0px to 0px 4px, derive(-fx-control-inner-background, -8%), -fx-control-inner-background);
+ -fx-background-radius: 2;
+}
+.text-area:focused .content {
+ -fx-background-color:
+ -fx-control-inner-background,
+ -fx-faint-focus-color,
+ linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+ -fx-background-insets: 0, 0, 2;
+ -fx-background-radius: 2, 1, 0;
+}
+
+/*******************************************************************************
+ * *
+ * HTML Editor *
+ * *
+ ******************************************************************************/
+
+.html-editor-foreground {
+ -fx-color-label-visible: false;
+ -fx-color-rect-x: 1;
+ -fx-color-rect-y: 1;
+ -fx-color-rect-width: 4;
+ -fx-color-rect-height: 3;
+ -fx-graphic: url("HTMLEditor-Text-Color.png");
+}
+.html-editor-background {
+ -fx-color-label-visible: false;
+ -fx-color-rect-x: 1;
+ -fx-color-rect-y: 1;
+ -fx-color-rect-width: 4;
+ -fx-color-rect-height: 3;
+ -fx-graphic: url("HTMLEditor-Background-Color.png");
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect,
+.color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: null;
+}
+.html-editor .button ,
+.html-editor .toggle-button {
+ -fx-padding: 0.333333em 0.416667em 0.333333em 0.416667em; /* 4 5 4 5 */
+}
+.html-editor-cut {
+ -fx-graphic: url("HTMLEditor-Cut.png");
+}
+.html-editor-copy {
+ -fx-graphic: url("HTMLEditor-Copy.png");
+}
+.html-editor-paste {
+ -fx-graphic: url("HTMLEditor-Paste.png");
+}
+.html-editor-align-left {
+ -fx-graphic: url("HTMLEditor-Left.png");
+}
+.html-editor-align-center {
+ -fx-graphic: url("HTMLEditor-Center.png");
+}
+.html-editor-align-right {
+ -fx-graphic: url("HTMLEditor-Right.png");
+}
+.html-editor-align-justify {
+ -fx-graphic: url("HTMLEditor-Justify.png");
+}
+.html-editor-outdent {
+ -fx-graphic: url("HTMLEditor-Outdent.png");
+}
+.html-editor-indent {
+ -fx-graphic: url("HTMLEditor-Indent.png");
+}
+.html-editor-bullets {
+ -fx-graphic: url("HTMLEditor-Bullets.png");
+}
+.html-editor-numbers {
+ -fx-graphic: url("HTMLEditor-Numbered.png");
+}
+.html-editor-bold {
+ -fx-graphic: url("HTMLEditor-Bold.png");
+}
+.html-editor-italic {
+ -fx-graphic: url("HTMLEditor-Italic.png");
+}
+.html-editor-underline {
+ -fx-graphic: url("HTMLEditor-Underline.png");
+}
+.html-editor-strike {
+ -fx-graphic: url("HTMLEditor-Strikethrough.png");
+}
+.html-editor-hr {
+ -fx-graphic: url("HTMLEditor-Break.png");
+}
+
+/*******************************************************************************
+ * *
+ * PopupMenu *
+ * *
+ ******************************************************************************/
+
+.context-menu {
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-17%),
+ derive(-fx-color,-30%)
+ ),
+ -fx-control-inner-background;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 0.333333em 0.083333em 0.333333em 0.083333em; /* 4 1 8 1 */
+ -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.context-menu .separator:horizontal .line {
+ -fx-border-color: -fx-box-border transparent transparent transparent;
+ -fx-border-insets: 1 0 0 0;
+}
+.context-menu > .scroll-arrow {
+ -fx-padding: 0.416667em 0.416667em 0.416667em 0.416667em; /* 5 */
+ -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+ -fx-background: -fx-selection-bar;
+ -fx-background-color: -fx-background;
+ -fx-text-fill: -fx-text-background-color;
+}
+.context-menu:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+/*******************************************************************************
+ * *
+ * Menu *
+ * *
+ ******************************************************************************/
+
+.menu {
+ -fx-background-color: transparent;
+ -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+}
+.menu:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+.menu > .right-container > .arrow {
+ -fx-padding: 0.458em 0.167em 0.458em 0.167em; /* 4.5 2 4.5 2 */
+ -fx-background-color: -fx-mark-color;
+ -fx-shape: "M0,-4L4,0L0,4Z";
+ -fx-scale-shape: false;
+}
+.menu:focused > .right-container > .arrow {
+ -fx-background-color: white;
+}
+.menu-up-arrow {
+ -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em; /* 8 5 0 5 */
+ -fx-background-color: derive(-fx-color,-2%);
+ -fx-shape: "M0 1 L1 1 L.5 0 Z";
+ -fx-effect: innershadow( two-pass-box , rgba(0,0,0,0.6) , 4, 0.0 , 0 , 1 );
+}
+.menu-down-arrow {
+ -fx-background-color: derive(-fx-color,-2%);
+ -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em; /* 8 5 0 5 */
+ -fx-shape: "M0 0 L1 0 L.5 1 Z";
+ -fx-effect: innershadow( two-pass-box , rgba(0,0,0,0.6) , 4, 0.0 , 0 , 1 );
+}
+
+
+/*******************************************************************************
+ * *
+ * MenuBar *
+ * *
+ ******************************************************************************/
+
+.menu-bar {
+ -fx-padding: 0.0em 0.666667em 0.0em 0.666667em; /* 0 8 0 8 */
+ -fx-spacing: 0.166667em; /* 2 */
+ -fx-background-color:
+ linear-gradient(to bottom, derive(-fx-base,75%) 0%, -fx-outer-border 90%),
+ linear-gradient(to bottom, derive(-fx-base,46.9%) 2%, derive(-fx-base,-2.1%) 95%);
+ -fx-background-insets: 0 0 0 0, 1 0 1 0;
+ -fx-background-radius: 0, 0 ;
+}
+/* Show nothing for background of normal menu button in a menu bar */
+.menu-bar > .container > .menu-button {
+ -fx-background-radius: 0;
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+/* Change padding of menu buttons when in menu bar */
+.menu-bar > .container > .menu-button > .label {
+ -fx-padding: 0;
+}
+/* Hide the down arrow for a menu placed in a menubar */
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+ -fx-padding: 0.167em 0 0.250em 0; /* 2 0 3 0 */
+ -fx-background-color: transparent;
+ -fx-shape: null;
+}
+.menu-bar > .container > .menu > .arrow-button {
+ -fx-padding: 0.500em 0 0.500em 0; /* 6 0 6 0 */
+}
+.menu-bar > .container > .menu-button:hover,
+.menu-bar > .container > .menu-button:focused,
+.menu-bar > .container > .menu-button:showing {
+ -fx-background: -fx-selection-bar;
+ -fx-background-color: -fx-background;
+}
+.menu-bar > .container > .menu-button:hover > .label,
+.menu-bar > .container > .menu-button:focused > .label,
+.menu-bar > .container > .menu-button:showing > .label {
+ -fx-text-fill: -fx-text-background-color;
+}
+.menu-bar:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+/*******************************************************************************
+ * *
+ * MenuItem *
+ * *
+ ******************************************************************************/
+
+.menu-item {
+ -fx-background-color: transparent;
+ -fx-padding: 0.333333em 0.41777em 0.333333em 0.41777em; /* 4 5 4 5 */
+}
+.menu-item > .left-container {
+ -fx-padding: 0.458em 0.791em 0.458em 0.458em;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0em 0.333em 0em 0em;
+}
+.menu-item >.label {
+ -fx-padding: 0em 0.5em 0em 0em;
+ -fx-text-fill: -fx-text-base-color;
+}
+.menu-item:focused {
+ -fx-background: -fx-selection-bar;
+ -fx-background-color: -fx-background;
+ -fx-text-fill: -fx-text-background-color;
+}
+.menu-item:focused > .label {
+ -fx-text-fill: white;
+}
+.menu-item > .right-container {
+ -fx-padding: 0em 0em 0em 0.5em;
+}
+.menu-item:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+.radio-menu-item:checked > .left-container > .radio {
+ -fx-background-color: -fx-mark-color;
+ -fx-shape: "M0,5H2L4,8L8,0H10L5,10H3Z";
+ -fx-scale-shape: false;
+}
+.radio-menu-item:focused:checked > .left-container > .radio {
+ -fx-background-color: white;
+}
+.check-menu-item:checked > .left-container > .check {
+ -fx-background-color: -fx-mark-color;
+ -fx-shape: "M0,5H2L4,8L8,0H10L5,10H3Z";
+ -fx-scale-shape: false;
+}
+.check-menu-item:focused:checked > .left-container > .check {
+ -fx-background-color: white;
+}
+/*******************************************************************************
+ * *
+ * ChoiceBox *
+ * *
+ ******************************************************************************/
+
+/*.choice-box > .open-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.166667em 0.333333em 0.166667em 0.333333em; 2 3.5 2 3.5
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}*/
+.choice-box > .context-menu {
+ -fx-background-radius: 6, 5, 4;
+}
+
+/*******************************************************************************
+ * *
+ * TabPane *
+ * *
+ ******************************************************************************/
+
+.tab-pane {
+ -fx-tab-min-height: 1.8333em; /* 22 */
+ -fx-tab-max-height: 1.8333em; /* 22 */
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -fx-text-base-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0 1 1 0, 1 2 1 1, 2 3 1 2;
+ -fx-background-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+ -fx-padding: 0.083333em 0.5em 0.0769em 0.5em; /* 1 6 0.99 6 */
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:right {
+ -fx-background-color: -fx-outer-border, -fx-inner-border-bottomup, -fx-body-color-bottomup;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:bottom {
+ -fx-background-color: -fx-outer-border, -fx-inner-border-bottomup, -fx-body-color-bottomup;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+ -fx-color: -fx-hover-base;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:selected {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-background;
+ -fx-background-insets: 0 1 1 0, 1 2 0 1, 2 3 0 2;
+}
+.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
+ -fx-border-width: 1, 1;
+ -fx-border-color: -fx-focus-color, -fx-faint-focus-color;
+ -fx-border-insets: -4 -4 -6 -5, -2 -2 -5 -3;
+ -fx-border-radius: 2, 1; /* looks sharper if outer border has a tighter radius (2 instead of 3) */
+}
+.tab-pane:focused > .tab-header-area > .headers-region > .tab:bottom:selected .focus-indicator {
+ -fx-border-insets: -6 -5 -4 -4, -5 -3 -2 -2;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled:hover {
+ -fx-color: -fx-base;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+ /* TODO should not be using text-box-border I think? */
+ -fx-background-color:
+ -fx-outer-border,
+ -fx-text-box-border,
+ linear-gradient(from 0px 0px to 0px 5px, -fx-text-box-border, derive(-fx-text-box-border, 30%));
+}
+.tab-pane:top > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0, 0 0 1 0, 1;
+}
+.tab-pane:bottom > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0, 1 0 0 0, 1;
+}
+.tab-pane:left > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0, 0 1 0 0, 1;
+}
+.tab-pane:right > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0, 0 0 0 1, 1;
+}
+.tab-pane:top > .tab-header-area {
+ /*-fx-padding: 0.416667em 0.166667em 0.0em 0.416667em; *//* 5 2 0 5 */
+ -fx-padding: 0.416667em 5 0.0em 0.416667em; /* 5 2 0 5 */
+}
+.tab-pane:bottom > .tab-header-area {
+ -fx-padding: 0 0.166667em 0.416667em 0.416667em; /* 0 2 5 5 */
+}
+.tab-pane:left > .tab-header-area {
+ -fx-padding: 0.416667em 0.0em 0.166667em 0.416667em; /* 5 0 2 5 */
+}
+.tab-pane:right > .tab-header-area {
+ -fx-padding: 0.416667em 0.416667em 0.166667em 0.0em; /* 5 5 2 0 */
+}
+/* TODO: scaling the shape seems to make it way too large */
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: -fx-mark-color;
+ -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+ -fx-scale-shape: false;
+ -fx-effect: dropshadow(two-pass-box , rgba(255, 255, 255, 0.4), 1, 0.0 , 0, 1);
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button:hover {
+ -fx-background-color: derive(-fx-mark-color, -30%);
+}
+/* CONTROL BUTTONS */
+.tab-pane > .tab-header-area > .control-buttons-tab > .container {
+ -fx-padding: 3 0 0 0;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: -1 0 5 0, 0 1 6 1, 1 2 7 2;
+ -fx-padding: 4 4 9 4;
+ -fx-background-radius: 10;
+}
+.tab-pane:bottom > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-padding: -5 4 4 4; /* TODO convert to ems */
+}
+/* FLOATING TABS CUSTOMISATION */
+.tab-pane.floating > .tab-header-area > .tab-header-background {
+ -fx-background-color: null;
+}
+.tab-pane.floating > .tab-header-area {
+ -fx-background-color: null;
+}
+.tab-pane.floating > .tab-content-area {
+ -fx-background-color: -fx-outer-border, -fx-background;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 2, 0;
+ -fx-padding: 2;
+}
+
+/*******************************************************************************
+ * *
+ * ComboBox *
+ * *
+ ******************************************************************************/
+
+/* Customise the ListCell that appears in the ComboBox button itself */
+.combo-box > .list-cell {
+ -fx-background: transparent;
+ -fx-background-color: transparent;
+ -fx-text-fill: -fx-text-base-color;
+ -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
+}
+.combo-box-base > .arrow-button {
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+ -fx-padding: 0.5em 0.667em 0.5em 0.833333em; /* 6 8 6 10 */
+ -fx-background-color: transparent;
+}
+
+/*******************************************************************************
+ * *
+ * Editable ComboBox *
+ * *
+ * The editable ComboBox TextBox inherits its properties from the TextBox *
+ * Control. Only the properties with values that are different from the *
+ * TextBox are specified here. *
+ * *
+ ******************************************************************************/
+
+.combo-box-base:editable > .arrow-button,
+.date-picker > .arrow-button {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 1 1 1 0, 1, 2;
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+}
+.combo-box-base:editable > .text-field,
+.date-picker > .text-field {
+ -fx-background-color: -fx-control-inner-background;
+ -fx-background-insets: 1 0 1 1;
+ -fx-background-radius: 2 0 0 2;
+}
+.combo-box-base:editable:contains-focus,
+.date-picker:contains-focus {
+ -fx-background-color: -fx-focus-color;
+ -fx-background-insets: -0.2;
+ -fx-background-radius: 3;
+}
+.combo-box-base:editable:focused > .text-field,
+.combo-box-base:editable > .text-field:focused,
+.date-picker:focused > .text-field,
+.date-picker > .text-field:focused {
+ -fx-background-color:
+ -fx-control-inner-background,
+ -fx-faint-focus-color,
+ linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
+ -fx-background-insets: 1 0 1 1, 1 0 1 1, 3 2 3 3;
+ -fx-background-radius: 2 0 0 2, 1 0 0 1, 0;
+}
+.combo-box-base:editable:contains-focus > .arrow-button,
+.date-picker:contains-focus > .arrow-button {
+ -fx-background-color: -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-background-insets: 1, 2, 1, 2.6;
+ -fx-background-radius: 0 2 2 0, 0 1 1 0, 0 1 1 0, 0 1 1 0;
+}
+
+/* -------------- STYLES FOR THE DEFAULT LISTVIEW-BASED COMBOBOX ------------- */
+
+.combo-box-popup > .list-view {
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-17%),
+ derive(-fx-color,-30%)
+ ),
+ -fx-control-inner-background;
+ -fx-background-insets: 0, 1;
+ -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+ -fx-padding: 4 0 4 5;
+ /* No alternate highlighting */
+ -fx-background: -fx-control-inner-background;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+ -fx-background: -fx-selection-bar-non-focused;
+ -fx-background-color: -fx-background;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover,
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+ -fx-background: -fx-accent;
+ -fx-background-color: -fx-selection-bar;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+ -fx-text-fill: derive(-fx-control-inner-background,-30%);
+}
+
+/*******************************************************************************
+ * *
+ * TitledPane *
+ * *
+ ******************************************************************************/
+
+.titled-pane {
+ -fx-text-fill: -fx-text-base-color;
+}
+.titled-pane > .title {
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-15%) 95%,
+ derive(-fx-color,-25%) 100%
+ ),
+ -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 1, 2;
+ -fx-background-radius: 3 3 0 0, 2 2 0 0, 1 1 0 0;
+ -fx-padding: 0.3333em 0.75em 0.3333em 0.75em; /* 4 9 4 9 */
+}
+/* alternative focus using the ring around the entire title area */
+/*.titled-pane:focused > .title {
+ -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 0.7, 2, 3;
+}*/
+/* focus purely on the arrow */
+.titled-pane:focused > .title > .arrow-button > .arrow {
+ -fx-background-color: -fx-focus-color, -fx-mark-color;
+ -fx-background-insets: -1, 0;
+ -fx-effect: dropshadow(two-pass-box , -fx-focus-color, 5, 0.2 , 0, 0);
+}
+.titled-pane > .title > .arrow-button {
+ -fx-background-color: null;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0.0em 0.583em 0.0em 0.0em; /* 0 7 0 0 */
+}
+.titled-pane > .title > .arrow-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.25em 0.3125em 0.25em 0.3125em; /* 3 3.75 3 3.75 */
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.titled-pane > .title:hover {
+ -fx-color: -fx-hover-base;
+}
+/* alternative content using a border and a grad to transparent background - why should TitledPane content have a colour? */
+.titled-pane > *.content {
+ -fx-border-color: -fx-box-border;
+ -fx-border-insets: -1 0 0 0;
+ -fx-background-color: linear-gradient(from 0px 0px to 0px 5px, derive(-fx-background, -6%), -fx-background);
+}
+
+
+
+/*******************************************************************************
+ * *
+ * Accordion *
+ * *
+ ******************************************************************************/
+
+.accordion > .titled-pane > .title {
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-15%) 95%,
+ derive(-fx-color,-25%) 100%
+ ),
+ -fx-inner-border,
+ -fx-body-color;
+ -fx-background-insets: -1 0 0 0, 0 1 1 1, 1 2 2 2;
+ -fx-background-radius: 0, 0, 0;
+}
+.accordion > .first-titled-pane > .title {
+ -fx-background-insets: 0, 1, 2;
+}
+
+/*******************************************************************************
+ * *
+ * SplitPane *
+ * *
+ ******************************************************************************/
+
+.split-pane > .split-pane-divider {
+ -fx-padding: 0 0.25em 0 0.25em; /* 0 3 0 3 */
+}
+/* horizontal the two nodes are placed to the left/right of each other. */
+.split-pane:horizontal > .split-pane-divider {
+ -fx-background-color: -fx-box-border, -fx-inner-border-horizontal;
+ -fx-background-insets: 0, 0 1 0 1;
+}
+/* vertical the two nodes are placed on top of each other. */
+.split-pane:vertical > .split-pane-divider {
+ -fx-background-color: -fx-box-border, -fx-inner-border;
+ -fx-background-insets: 0, 1 0 1 0;
+}
+
+/*******************************************************************************
+ * *
+ * ColorPicker *
+ * *
+ ******************************************************************************/
+
+.color-picker > .arrow-button {
+ -fx-background-color: null;
+ -fx-padding: 0.5em 0.667em 0.5em 0; /* 6 8 6 0 */
+}
+.color-picker.split-button > .arrow-button {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 1 1 1 0, 1, 2;
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0;
+}
+.color-picker.split-button:focused > .arrow-button {
+ /*-fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color !important;*/
+ /*-fx-background-insets: 0, 1, 2;*/
+ -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-background-insets: 1 1 1 0, 1, 2, 1, 2.6;
+ -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 1 1 0, 0 1 1 0, 0 1 1 0;
+}
+.color-picker.split-button > .color-picker-label,
+.color-picker.split-button:focused > .color-picker-label{
+ -fx-background-color: null;
+}
+.color-picker.split-button > .arrow-button {
+ /*-fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color !important;*/
+ -fx-padding: 0.5em 0.667em 0.5em 0.667em; /* 6 8 6 8 */
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: -fx-box-border;
+}
+
+.color-palette {
+ -fx-spacing: 0.833333em; /* 10px */
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-17%),
+ derive(-fx-color,-30%)
+ ),
+ linear-gradient(to bottom,
+ derive(-fx-background,10%) 0%,
+ derive(-fx-background,-5%) 12%,
+ derive(-fx-background,15%) 88%,
+ derive(-fx-background,-10%) 100%);
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 6, 5;
+ -fx-padding: 1em; /* 12 */
+ -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.color-palette > .color-picker-grid {
+ -fx-padding: 0.5px;
+ -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+ -fx-background-color: transparent;
+ -fx-padding: 0.5px;
+}
+/* the color over which the user is hovering */
+.color-palette > .color-picker-grid > .color-square:focused,
+.color-palette > .color-picker-grid > .color-square:selected:focused {
+ -fx-background-color: -fx-faint-focus-color, -fx-focus-color;
+ -fx-background-insets: -2,0;
+ -fx-background-radius: 5,0;
+ -fx-scale-x: 1.5;
+ -fx-scale-y: 1.5;
+}
+/* the currently selected color */
+.color-palette > .color-picker-grid > .color-square:selected {
+ -fx-background-color: black;
+}
+/* ------- CUSTOM COLOR DIALOG ------- */
+.custom-color-dialog > .color-rect-pane {
+ -fx-spacing: 0.75em;
+ -fx-pref-height: 16.666667em;
+ -fx-alignment: top-left;
+ -fx-fill-height: true;
+}
+
+.custom-color-dialog .color-rect-pane .color-rect {
+ -fx-min-width: 16.666667em;
+ -fx-min-height: 16.666667em;
+}
+
+.custom-color-dialog .color-rect-pane .color-rect-border {
+ -fx-border-color: derive(-fx-base, -20%);
+}
+
+.custom-color-dialog > .color-rect-pane #color-rect-indicator {
+ -fx-background-color: null;
+ -fx-border-color: white;
+ -fx-border-radius: 0.4166667em;
+ -fx-translate-x: -0.4166667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-pref-width: 0.833333em;
+ -fx-pref-height: 0.833333em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0.0, 0, 1);
+}
+
+.custom-color-dialog > .color-rect-pane > .color-bar {
+ -fx-min-width: 1.666667em;
+ -fx-min-height: 16.666667em;
+ -fx-max-width: 1.666667em;
+ -fx-border-color: derive(-fx-base, -20%);
+}
+
+.custom-color-dialog > .color-rect-pane > .color-bar > #color-bar-indicator {
+ -fx-border-radius: 0.333333em;
+ -fx-border-color: white;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0.0, 0, 1);
+ -fx-pref-width: 2em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.1666667em;
+ -fx-translate-y: -0.4166667em;
+}
+
+.custom-color-dialog {
+ -fx-background-color: -fx-background;
+ -fx-padding: 1.25em;
+ -fx-spacing: 1.25em;
+}
+.custom-color-dialog .controls-pane .current-new-color-grid #current-new-color-border {
+ -fx-border-color: derive(-fx-base, -20%);
+ -fx-border-width: 2px;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .color-rect {
+ -fx-min-width: 10.666667em;
+ -fx-min-height: 1.75em;
+ -fx-pref-width: 10.666667em;
+ -fx-pref-height: 1.75em;
+}
+
+.custom-color-dialog .transparent-pattern {
+ -fx-background-image: url("pattern-transparent.png");
+ -fx-background-repeat: repeat;
+ -fx-background-size: auto;
+}
+
+.custom-color-dialog .controls-pane #spacer1 {
+ -fx-min-height: 0.1666667em;
+ -fx-max-height: 0.1666667em;
+ -fx-pref-height: 0.1666667em;
+}
+
+.custom-color-dialog .controls-pane #spacer2 {
+ -fx-min-height: 1em;
+ -fx-max-height: 1em;
+ -fx-pref-height: 1em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane {
+ -fx-hgap: 0.4166667em;
+ -fx-vgap: 0.3333333em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .settings-label {
+ -fx-min-width: 5.75em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .settings-unit {
+ -fx-max-width: 1em;
+}
+
+.custom-color-dialog .controls-pane #settings-pane .slider {
+ -fx-pref-width: 8.25em;
+}
+
+.custom-color-dialog .controls-pane .color-input-field {
+ -fx-pref-column-count: 3;
+ -fx-max-width: 3.25em;
+ -fx-min-width: 3.25em;
+ -fx-pref-width: 3.25em;
+}
+
+.custom-color-dialog .controls-pane .web-field {
+ -fx-pref-column-count: 6;
+ -fx-pref-width: 8.25em;
+}
+
+.custom-color-dialog .controls-pane #spacer-side {
+ -fx-min-width: 0.5em;
+ -fx-pref-width: 0.5em;
+}
+
+.custom-color-dialog .controls-pane #spacer-bottom {
+ -fx-pref-height: 0.833333em;
+ -fx-min-height: 0.833333em;
+}
+
+.custom-color-dialog .controls-pane .customcolor-controls-background {
+ -fx-background-color: -fx-text-box-border, -fx-control-inner-background;
+ -fx-background-insets:
+ 0.8333333em 0 0.4166667em 0,
+ 1em 0.166667em 0.5833333em 0.166667em;
+ -fx-background-radius: 0.3333333em, 0.166667em;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .label {
+ -fx-padding: 0 0 0 0.4166667em;
+}
+
+.custom-color-dialog .controls-pane #buttons-hbox {
+ -fx-spacing: 0.333333em;
+ -fx-padding: 1em 0 0 0;
+ -fx-alignment: bottom-right;
+}
+
+/*******************************************************************************
+ * *
+ * Pagination *
+ * *
+ ******************************************************************************/
+
+.pagination {
+ -fx-padding: 0;
+ -fx-arrows-visible: true;
+ -fx-tooltip-visible: true;
+ -fx-page-information-visible: true;
+ -fx-page-information-alignment: bottom;
+ -fx-arrow-button-gap: 0;
+}
+.pagination > .page {
+ -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+ -fx-background-color: transparent;
+ -fx-font-size: 0.82em;
+}
+.pagination > .pagination-control > .control-box {
+ -fx-padding: 5px 0 0 0;
+ -fx-spacing: 2;
+ -fx-alignment: center;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 3 0 0 3, 3 0 0 3, 2 0 0 2, 1 0 0 1;
+ -fx-background-insets: 0 0 -1 5, 0 0 0 5, 1 1 1 6, 2 2 2 7;
+ -fx-padding: 0em 0.417em 0em 0.833em; /* 0 5 0 10 */
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 0 3 3 0, 0 3 3 0, 0 2 2 0, 0 1 1 0;
+ -fx-background-insets: 0 5 -1 0, 0 5 0 0, 1 6 1 1, 2 7 2 2;
+ -fx-padding: 0em 0.75em 0em 0.417em; /* 0 9 0 5 */
+}
+.pagination > .pagination-control .left-arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+ -fx-shape: "M 0 0 L -13 7 L 0 13 z";
+ -fx-scale-shape: true;
+}
+.pagination > .pagination-control .right-arrow {
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+ -fx-shape: "M 0 0 L 13 7 L 0 13 z";
+ -fx-scale-shape: true;
+}
+.pagination > .pagination-control > .control-box > .bullet-button {
+ -fx-background-radius: 0, 4em, 4em, 4em, 4em;
+ -fx-padding: 0.333em;
+ -fx-background-color: transparent, -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 5, 6, 7;
+}
+.pagination > .pagination-control > .control-box > .bullet-button:selected {
+ -fx-base: -fx-accent;
+}
+.pagination.bullet > .pagination-control > .control-box {
+ -fx-spacing: 0;
+ -fx-alignment: center;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 4em;
+ -fx-background-insets: 0, 1, 2;
+ -fx-padding: 0em 0.25em 0em 0.083em; /* 0 3 0 1 */
+}
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 4em;
+ -fx-background-insets: 0, 1, 2;
+ -fx-padding: 0em 0.083em 0em 0.25em; /* 0 1 0 3 */
+}
+.pagination > .pagination-control > .control-box > .number-button {
+ -fx-background-radius: 0;
+ -fx-padding: 0.166667em 0.25em 0.25em 0.333em;
+ -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
+}
+.pagination > .pagination-control > .control-box > .number-button:selected {
+ -fx-base: -fx-accent;
+}
+.pagination > .pagination-control > .page-information {
+ -fx-padding: 0.416em 0 0 0;
+}
+
+/*******************************************************************************
+ * *
+ * Customised CSS for controls placed directly within cells *
+ * *
+ ******************************************************************************/
+
+.cell > .choice-box {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0.0em 0.5em 0.0em 0.0em; /* 0 6 0 0 */
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+}
+.cell > .choice-box > .label {
+ -fx-padding: 0em 0.333333em 0.0em 0.333333; /* 2 4 3 6 */
+}
+.cell:focused:selected > .choice-box > .label {
+ -fx-text-fill: white;
+}
+.cell:focused:selected > .choice-box > .open-button > .arrow {
+ -fx-background-color: -fx-mark-highlight-color, white;
+}
+
+/*******************************************************************************
+ * *
+ * List, Tree, Table COMMON *
+ * *
+ ******************************************************************************/
+
+/* remove double borders from scrollbars */
+.list-view > .virtual-flow > .scroll-bar:vertical,
+.tree-view > .virtual-flow > .scroll-bar:vertical,
+.table-view > .virtual-flow > .scroll-bar:vertical,
+.tree-table-view > .virtual-flow > .scroll-bar:vertical {
+ -fx-background-insets: 0, 0 0 0 1;
+ -fx-padding: -1 -1 -1 0;
+}
+.list-view > .virtual-flow > .scroll-bar:horizontal,
+.tree-view > .virtual-flow > .scroll-bar:horizontal,
+.table-view > .virtual-flow > .scroll-bar:horizontal,
+.tree-table-view > .virtual-flow > .scroll-bar:horizontal {
+ -fx-background-insets: 0, 1 0 0 0;
+ -fx-padding: 0 -1 -1 -1;
+}
+.list-view > .virtual-flow > .corner,
+.tree-view > .virtual-flow > .corner,
+.table-view > .virtual-flow > .corner,
+.tree-table-view > .virtual-flow > .corner {
+ -fx-background-color: derive(-fx-base,-1%);
+}
+/* standard cell */
+.list-cell,
+.tree-cell {
+ -fx-background: -fx-control-inner-background;
+ -fx-background-color: -fx-background;
+ -fx-text-fill: -fx-text-background-color;
+}
+/* Selected rows */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background: -fx-selection-bar;
+ -fx-table-cell-border-color: derive(-fx-selection-bar, 20%);
+}
+/* Selected when control is not focused */
+.list-cell:filled:selected,
+.tree-cell:filled:selected,
+.table-row-cell:filled:selected,
+.tree-table-row-cell:filled:selected,
+.table-row-cell:filled > .table-cell:selected,
+.tree-table-row-cell:filled > .tree-table-cell:selected {
+ -fx-background: -fx-selection-bar-non-focused;
+ -fx-table-cell-border-color: derive(-fx-selection-bar-non-focused, 20%);
+}
+/* focused cell (keyboard navigation) */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:focused,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:focused,
+.table-view:focused:row-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell:focused,
+.tree-table-view:focused:row-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:focused,
+.table-view:focused:cell-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:focused,
+.tree-table-view:focused:cell-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:focused {
+ -fx-background-color: -fx-background, -fx-cell-focus-inner-border, -fx-background;
+ -fx-background-insets: 0, 1, 2;
+}
+
+/*******************************************************************************
+ * *
+ * ListView and ListCell *
+ * *
+ ******************************************************************************/
+
+.list-cell {
+ -fx-padding: 0.25em 0.583em 0.25em 0.583em; /* 3 7 3 7 */
+}
+.list-cell:odd {
+ -fx-background: -fx-control-inner-background-alt;
+}
+
+/*******************************************************************************
+ * *
+ * TreeView and TreeCell *
+ * *
+ ******************************************************************************/
+
+.tree-cell {
+ -fx-padding: 0.25em; /* 3 */
+ -fx-indent: 1em;
+}
+.tree-cell .label {
+ -fx-padding: 0.0em 0.0em 0.0em 0.25em; /* 0 0 0 3 */
+}
+.tree-cell > .tree-disclosure-node,
+.tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 4 6 4 8;
+ -fx-background-color: transparent;
+}
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+ -fx-background-color: -fx-text-background-color;
+ -fx-padding: 0.333333em 0.229em 0.333333em 0.229em; /* 4 */
+ -fx-shape: "M 0 -3.5 L 4 0 L 0 3.5 z";
+}
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+ -fx-rotate: 90;
+}
+
+/*******************************************************************************
+ * *
+ * TableView *
+ * *
+ ******************************************************************************/
+
+.table-view,
+.tree-table-view {
+ /* Constants used throughout the tableview. */
+ -fx-table-header-border-color: -fx-box-border;
+ -fx-table-cell-border-color: derive(-fx-color,5%);
+}
+/***** ROW CELLS **************************************************************/
+/* Each row in the table is a table-row-cell. Inside a table-row-cell is any
+ number of table-cell. */
+.table-row-cell {
+ -fx-background: -fx-control-inner-background;
+ -fx-background-color: -fx-table-cell-border-color, -fx-background;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-text-fill: -fx-text-background-color;
+}
+.table-row-cell:odd {
+ -fx-background: -fx-control-inner-background-alt;
+}
+/***** INDIVIDUAL CELLS ********************************************************/
+.table-cell {
+ -fx-padding: 0.166667em; /* 2px, plus border adds 1px */
+ -fx-background-color: null;
+ -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
+ -fx-cell-size: 2.0em; /* 24 */
+ -fx-text-fill: -fx-text-background-color;
+}
+.table-view > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background-color: -fx-table-cell-border-color, -fx-background;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+/* When in constrained resize mode, the right-most visible cell should not have
+ a right-border, as it is not possible to get this cleanly out of view without
+ introducing horizontal scrollbars (see RT-14886). */
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+ -fx-border-color: transparent;
+}
+/***** HEADER **********************************************************************/
+/* The column-resize-line is shown when the user is attempting to resize a column. */
+.table-view .column-resize-line,
+.tree-table-view .column-resize-line {
+ -fx-background: -fx-accent;
+ -fx-background-color: -fx-background;
+ -fx-padding: 0.0em 0.0416667em 0.0em 0.0416667em; /* 0 0.571429 0 0.571429 */
+}
+/* This is the area behind the column headers. An ideal place to specify background
+ and border colors for the whole area (not individual column-header's). */
+.table-view .column-header-background,
+.tree-table-view > .column-header-background {
+ -fx-background-color: -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 1;
+}
+/* The column header row is made up of a number of column-header, one for each
+ TableColumn, and a 'filler' area that extends from the right-most column
+ to the edge of the tableview, or up to the 'column control' button. */
+.table-view .column-header,
+.tree-table-view .column-header,
+.table-view .filler,
+.tree-table-view .filler,
+.table-view > .column-header-background > .show-hide-columns-button,
+.tree-table-view > .column-header-background > .show-hide-columns-button,
+.table-view:constrained-resize .filler,
+.tree-table-view:constrained-resize .filler {
+ -fx-background-color: -fx-box-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 0 1 1 0, 1 2 2 1;
+ -fx-font-weight: bold;
+ -fx-size: 2em;
+ -fx-text-fill: -fx-selection-bar-text;
+ -fx-padding: 0.166667em;
+}
+.table-view .filler,
+.tree-table-view .filler,
+.table-view:constrained-resize .filler,
+.tree-table-view:constrained-resize .filler {
+ -fx-background-insets: 0, 0 0 1 0, 1 1 2 1;
+}
+.table-view > .column-header-background > .show-hide-columns-button,
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+ -fx-background-insets: 0, 0 0 1 1, 1 1 2 2;
+}
+.table-view .column-header .sort-order-dots-container,
+.tree-table-view .column-header .sort-order-dots-container{
+ -fx-padding: 2 0 2 0;
+}
+.table-view .column-header .sort-order,
+.tree-table-view .column-header .sort-order{
+ -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */
+}
+.table-view .column-header .sort-order-dot,
+.tree-table-view .column-header .sort-order-dot {
+ -fx-background-color: -fx-mark-color;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.table-view .column-header .label,
+.tree-table-view .column-header .label {
+ -fx-alignment: center;
+}
+
+/* Plus Symbol */
+.table-view .show-hide-column-image,
+.tree-table-view .show-hide-column-image {
+ -fx-background-color: -fx-mark-color;
+ -fx-padding: 0.25em; /* 3px */
+ -fx-shape: "M398.902,298.045c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c-0.667,0-1.333,0-2,0c0,0.666,0,1.332,0,1.999c-0.667,0-1.333,0-2,0c0-0.667,0-1.333,0-1.999c-0.666,0-1.333,0-1.999,0c0-0.667,0-1.334,0-2c0.666,0,1.333,0,1.999,0C398.902,299.378,398.902,298.711,398.902,298.045z";
+}
+/* When a column is being 'dragged' to be placed in a different position, there
+ is a region that follows along the column header area to indicate where the
+ column will be dropped. This region can be styled using the .column-drag-header
+ name. */
+.table-view .column-drag-header,
+.tree-table-view .column-drag-header {
+ -fx-background: -fx-accent;
+ -fx-background-color: -fx-selection-bar;
+ -fx-border-color: transparent;
+ -fx-opacity: 0.6;
+}
+/* Semi-transparent overlay to indicate the column that is currently being moved */
+.table-view .column-overlay,
+.tree-table-view .column-overlay {
+ -fx-background-color: darkgray;
+ -fx-opacity: 0.3;
+}
+/* Header Sort Arrows */
+.table-view /*> column-header-background > nested-column-header >*/ .arrow,
+.tree-table-view /*> column-header-background > nested-column-header >*/ .arrow {
+ -fx-background-color: -fx-mark-color;
+ -fx-padding: 0.25em 0.3125em 0.25em 0.3125em; /* 3 3.75 3 3.75 */
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+/* This is shown when the table has no rows and/or no columns. */
+.table-view .empty-table,
+.tree-table-view .empty-table {
+ -fx-background-color: white;
+ -fx-font-size: 1.166667em; /* 14pt - 2 more than the default font */
+}
+
+/*******************************************************************************
+ * *
+ * Table Cells *
+ * *
+ ******************************************************************************/
+
+.check-box-table-cell {
+ -fx-alignment: center;
+ -fx-padding: 0;
+}
+.check-box-table-cell > .check-box {
+ -fx-font-size: 0.8em;
+ -fx-opacity: 1;
+ -fx-padding: 0 0 1 0;
+}
+.check-box-table-cell > .check-box > .box {
+ -fx-background-color: -fx-outer-border, -fx-background;
+ -fx-background-insets: 0,1;
+}
+.check-box-table-cell > .check-box:selected > .box > .mark {
+ -fx-background-color: -fx-text-background-color;
+ -fx-background-insets: 0;
+}
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled > .check-box-table-cell:selected > .check-box > .box,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled > .check-box-table-cell:selected > .check-box > .box,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected > .check-box-table-cell > .check-box > .box,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected > .check-box-table-cell > .check-box > .box {
+ -fx-background-color: derive(-fx-accent,40%), -fx-background;
+}
+
+/*******************************************************************************
+ * *
+ * TreeTableView *
+ * *
+ * Note: A lot of the CSS for TreeTableView is included with the TreeView and *
+ * TableView CSS styles elsewhere in modena.css (as they are the same, just *
+ * targeting different CSS style classes). *
+ ******************************************************************************/
+
+.tree-table-row-cell {
+ -fx-background: -fx-control-inner-background;
+ -fx-background-color: -fx-background;
+ -fx-padding: 0;
+ -fx-text-fill: -fx-text-background-color;
+ -fx-indent: 1em;
+}
+.tree-table-cell {
+ /* tree-table-cell needs slightly different padding to make the text sit at
+ the right height for the arrow */
+ -fx-padding: 0.25em 0.166667em 0.083em 0.166667em; /* 3 2 1 2 , plus border adds 1px */
+ -fx-background-color: null;
+ -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
+ -fx-cell-size: 2.0em; /* 24 */
+ -fx-text-fill: -fx-text-background-color;
+}
+
+/*******************************************************************************
+ * *
+ * Tooltip *
+ * *
+ ******************************************************************************/
+
+.tooltip {
+ -fx-background: rgba(30,30,30);
+ -fx-text-fill: white;
+ -fx-background-color: rgba(30,30,30,0.8);
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0;
+ -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */
+ -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 10, 0.0 , 0 , 3 );
+ -fx-font-size: 0.85em;
+}
+
+/*******************************************************************************
+ * *
+ * Charts *
+ * *
+ ******************************************************************************/
+
+.chart {
+ -fx-padding: 5px;
+}
+.chart-content {
+ -fx-padding: 10px;
+}
+.chart-title {
+ -fx-font-size: 1.4em;
+}
+.chart-legend {
+ -fx-background-color: -fx-shadow-highlight-color,
+ linear-gradient(to bottom, derive(-fx-background, -10%), derive(-fx-background, -5%)),
+ linear-gradient(from 0px 0px to 0px 4px, derive(-fx-background, -4%), derive(-fx-background, 10%));
+ -fx-background-insets: 0 0 -1 0, 0,1;
+ -fx-background-radius: 4,4,3;
+ -fx-padding: 6px;
+}
+
+/*******************************************************************************
+ * *
+ * Axis *
+ * *
+ ******************************************************************************/
+
+.axis {
+ AXIS_COLOR: derive(-fx-background,-20%);
+ -fx-tick-label-font-size: 0.833333em; /* 10px */
+ -fx-tick-label-fill: derive(-fx-text-background-color, 30%);
+}
+.axis:top {
+ -fx-border-color: transparent transparent AXIS_COLOR transparent;
+}
+.axis:right {
+ -fx-border-color: transparent transparent transparent AXIS_COLOR;
+}
+.axis:bottom {
+ -fx-border-color: AXIS_COLOR transparent transparent transparent;
+}
+.axis:left {
+ -fx-border-color: transparent AXIS_COLOR transparent transparent;
+}
+.axis:top > .axis-label,
+.axis:left > .axis-label {
+ -fx-padding: 0 0 4px 0;
+}
+.axis:bottom > .axis-label,
+.axis:right > .axis-label {
+ -fx-padding: 4px 0 0 0;
+}
+.axis-tick-mark,
+.axis-minor-tick-mark {
+ -fx-fill: null;
+ -fx-stroke: AXIS_COLOR;
+}
+
+/*******************************************************************************
+ * *
+ * ChartPlot *
+ * *
+ ******************************************************************************/
+
+.chart-vertical-grid-lines {
+ -fx-stroke: derive(-fx-background,-10%);
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart-horizontal-grid-lines {
+ -fx-stroke: derive(-fx-background,-10%);
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart-alternative-column-fill {
+ -fx-fill: null;
+ -fx-stroke: null;
+}
+.chart-alternative-row-fill {
+ -fx-fill: null;
+ -fx-stroke: null;
+}
+.chart-vertical-zero-line,
+.chart-horizontal-zero-line {
+ -fx-stroke: derive(-fx-text-background-color, 40%);
+}
+
+/*******************************************************************************
+ * *
+ * ScatterChart *
+ * *
+ ******************************************************************************/
+
+.chart-symbol { /* solid circle */
+ -fx-background-color: CHART_COLOR_1;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+.default-color1.chart-symbol { /* solid square */
+ -fx-background-color: CHART_COLOR_2;
+ -fx-background-radius: 0;
+}
+.default-color2.chart-symbol { /* solid diamond */
+ -fx-background-color: CHART_COLOR_3;
+ -fx-background-radius: 0;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+.default-color3.chart-symbol { /* cross */
+ -fx-background-color: CHART_COLOR_4;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+.default-color4.chart-symbol { /* solid triangle */
+ -fx-background-color: CHART_COLOR_5;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+.default-color5.chart-symbol { /* hollow circle */
+ -fx-background-color: CHART_COLOR_6, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+.default-color6.chart-symbol { /* hollow square */
+ -fx-background-color: CHART_COLOR_7, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 0;
+}
+.default-color7.chart-symbol { /* hollow diamond */
+ -fx-background-color: CHART_COLOR_8, white;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 2.5;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+/*******************************************************************************
+ * *
+ * LineChart *
+ * *
+ ******************************************************************************/
+
+.chart-line-symbol {
+ -fx-background-color: CHART_COLOR_1, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+.chart-series-line {
+ -fx-stroke: CHART_COLOR_1;
+ -fx-stroke-width: 3px;
+}
+.default-color0.chart-line-symbol { -fx-background-color: CHART_COLOR_1, white; }
+.default-color1.chart-line-symbol { -fx-background-color: CHART_COLOR_2, white; }
+.default-color2.chart-line-symbol { -fx-background-color: CHART_COLOR_3, white; }
+.default-color3.chart-line-symbol { -fx-background-color: CHART_COLOR_4, white; }
+.default-color4.chart-line-symbol { -fx-background-color: CHART_COLOR_5, white; }
+.default-color5.chart-line-symbol { -fx-background-color: CHART_COLOR_6, white; }
+.default-color6.chart-line-symbol { -fx-background-color: CHART_COLOR_7, white; }
+.default-color7.chart-line-symbol { -fx-background-color: CHART_COLOR_8, white; }
+.default-color0.chart-series-line { -fx-stroke: CHART_COLOR_1; }
+.default-color1.chart-series-line { -fx-stroke: CHART_COLOR_2; }
+.default-color2.chart-series-line { -fx-stroke: CHART_COLOR_3; }
+.default-color3.chart-series-line { -fx-stroke: CHART_COLOR_4; }
+.default-color4.chart-series-line { -fx-stroke: CHART_COLOR_5; }
+.default-color5.chart-series-line { -fx-stroke: CHART_COLOR_6; }
+.default-color6.chart-series-line { -fx-stroke: CHART_COLOR_7; }
+.default-color7.chart-series-line { -fx-stroke: CHART_COLOR_8; }
+
+/*******************************************************************************
+ * *
+ * AreaChart *
+ * *
+ ******************************************************************************/
+
+.chart-area-symbol {
+ -fx-background-color: CHART_COLOR_1, white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px; /* makes sure this remains circular */
+ -fx-padding: 3px;
+}
+.default-color0.chart-area-symbol { -fx-background-color: CHART_COLOR_1, white; }
+.default-color1.chart-area-symbol { -fx-background-color: CHART_COLOR_2, white; }
+.default-color2.chart-area-symbol { -fx-background-color: CHART_COLOR_3, white; }
+.default-color3.chart-area-symbol { -fx-background-color: CHART_COLOR_4, white; }
+.default-color4.chart-area-symbol { -fx-background-color: CHART_COLOR_5, white; }
+.default-color5.chart-area-symbol { -fx-background-color: CHART_COLOR_6, white; }
+.default-color6.chart-area-symbol { -fx-background-color: CHART_COLOR_7, white; }
+.default-color7.chart-area-symbol { -fx-background-color: CHART_COLOR_8, white; }
+.chart-series-area-line {
+ -fx-stroke: CHART_COLOR_1;
+ -fx-stroke-width: 1px;
+}
+.default-color0.chart-series-area-line { -fx-stroke: CHART_COLOR_1; }
+.default-color1.chart-series-area-line { -fx-stroke: CHART_COLOR_2; }
+.default-color2.chart-series-area-line { -fx-stroke: CHART_COLOR_3; }
+.default-color3.chart-series-area-line { -fx-stroke: CHART_COLOR_4; }
+.default-color4.chart-series-area-line { -fx-stroke: CHART_COLOR_5; }
+.default-color5.chart-series-area-line { -fx-stroke: CHART_COLOR_6; }
+.default-color6.chart-series-area-line { -fx-stroke: CHART_COLOR_7; }
+.default-color7.chart-series-area-line { -fx-stroke: CHART_COLOR_8; }
+.chart-series-area-fill {
+ -fx-stroke: null;
+ -fx-fill: CHART_COLOR_1_TRANS_20;
+}
+.default-color0.chart-series-area-fill { -fx-fill: CHART_COLOR_1_TRANS_20; }
+.default-color1.chart-series-area-fill { -fx-fill: CHART_COLOR_2_TRANS_20; }
+.default-color2.chart-series-area-fill { -fx-fill: CHART_COLOR_3_TRANS_20; }
+.default-color3.chart-series-area-fill { -fx-fill: CHART_COLOR_4_TRANS_20; }
+.default-color4.chart-series-area-fill { -fx-fill: CHART_COLOR_5_TRANS_20; }
+.default-color5.chart-series-area-fill { -fx-fill: CHART_COLOR_6_TRANS_20; }
+.default-color6.chart-series-area-fill { -fx-fill: CHART_COLOR_7_TRANS_20; }
+.default-color7.chart-series-area-fill { -fx-fill: CHART_COLOR_8_TRANS_20; }
+.area-legend-symbol {
+ -fx-padding: 6px;
+ -fx-background-radius: 6px; /* makes sure this remains circular */
+ -fx-background-insets: 0, 3;
+}
+
+/*******************************************************************************
+ * *
+ * BubbleChart *
+ * *
+ ******************************************************************************/
+
+.bubble-legend-symbol {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+}
+.chart-bubble {
+ -fx-bubble-fill: CHART_COLOR_1_TRANS_70;
+ -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill,20%), derive(-fx-bubble-fill,-30%));
+}
+.default-color0.chart-bubble { -fx-bubble-fill: CHART_COLOR_1_TRANS_70; }
+.default-color1.chart-bubble { -fx-bubble-fill: CHART_COLOR_2_TRANS_70; }
+.default-color2.chart-bubble { -fx-bubble-fill: CHART_COLOR_3_TRANS_70; }
+.default-color3.chart-bubble { -fx-bubble-fill: CHART_COLOR_4_TRANS_70; }
+.default-color4.chart-bubble { -fx-bubble-fill: CHART_COLOR_5_TRANS_70; }
+.default-color5.chart-bubble { -fx-bubble-fill: CHART_COLOR_6_TRANS_70; }
+.default-color6.chart-bubble { -fx-bubble-fill: CHART_COLOR_7_TRANS_70; }
+.default-color7.chart-bubble { -fx-bubble-fill: CHART_COLOR_8_TRANS_70; }
+
+/*******************************************************************************
+ * *
+ * BarChart *
+ * *
+ ******************************************************************************/
+
+.chart-bar {
+ -fx-bar-fill: CHART_COLOR_1;
+ -fx-background-color: linear-gradient(to right,
+ derive(-fx-bar-fill, -4%),
+ derive(-fx-bar-fill, -1%),
+ derive(-fx-bar-fill, 0%),
+ derive(-fx-bar-fill, -1%),
+ derive(-fx-bar-fill, -6%)
+ );
+ -fx-background-insets: 0;
+}
+.chart-bar.negative {
+ -fx-background-insets: 1 0 0 0;
+}
+.bar-chart:horizontal .chart-bar {
+ -fx-background-insets: 0 0 0 1;
+}
+.bar-chart:horizontal .chart-bar,
+.stacked-bar-chart:horizontal .chart-bar {
+ -fx-background-color: linear-gradient(to bottom,
+ derive(-fx-bar-fill, -4%),
+ derive(-fx-bar-fill, -1%),
+ derive(-fx-bar-fill, 0%),
+ derive(-fx-bar-fill, -1%),
+ derive(-fx-bar-fill, -6%)
+ );
+}
+.default-color0.chart-bar { -fx-bar-fill: CHART_COLOR_1; }
+.default-color1.chart-bar { -fx-bar-fill: CHART_COLOR_2; }
+.default-color2.chart-bar { -fx-bar-fill: CHART_COLOR_3; }
+.default-color3.chart-bar { -fx-bar-fill: CHART_COLOR_4; }
+.default-color4.chart-bar { -fx-bar-fill: CHART_COLOR_5; }
+.default-color5.chart-bar { -fx-bar-fill: CHART_COLOR_6; }
+.default-color6.chart-bar { -fx-bar-fill: CHART_COLOR_7; }
+.default-color7.chart-bar { -fx-bar-fill: CHART_COLOR_8; }
+.bar-legend-symbol {
+ -fx-padding: 8px;
+}
+
+/*******************************************************************************
+ * *
+ * PieChart *
+ * *
+ ******************************************************************************/
+
+.chart-pie {
+ -fx-pie-color: CHART_COLOR_1;
+ -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color,20%), derive(-fx-pie-color,-10%));
+ -fx-background-insets: 1;
+ -fx-border-color: -fx-background;
+}
+.chart-pie-label {
+ -fx-padding: 3px;
+}
+.chart-pie-label-line {
+ -fx-stroke: derive(-fx-background,-20%);
+}
+.default-color0.chart-pie { -fx-pie-color: CHART_COLOR_1; }
+.default-color1.chart-pie { -fx-pie-color: CHART_COLOR_2; }
+.default-color2.chart-pie { -fx-pie-color: CHART_COLOR_3; }
+.default-color3.chart-pie { -fx-pie-color: CHART_COLOR_4; }
+.default-color4.chart-pie { -fx-pie-color: CHART_COLOR_5; }
+.default-color5.chart-pie { -fx-pie-color: CHART_COLOR_6; }
+.default-color6.chart-pie { -fx-pie-color: CHART_COLOR_7; }
+.default-color7.chart-pie { -fx-pie-color: CHART_COLOR_8; }
+.negative.chart-pie {
+ -fx-pie-color: transparent;
+ -fx-background-color: white;
+}
+.pie-legend-symbol.chart-pie {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+ -fx-border-color: null;
+}
+
+/*******************************************************************************
+ * *
+ * Combinations *
+ * *
+ * This section is for special handling of when one control is nested inside *
+ * another control. There are many cases where we would end up with ugly *
+ * double borders that are fixed here. *
+ * *
+ ******************************************************************************/
+
+.tab-pane > * > .table-view,
+.tab-pane > * > .tree-table-view,
+.tab-pane > * > .list-view,
+.tab-pane > * > .tree-view,
+.tab-pane > * > .scroll-pane,
+.tab-pane > * > .split-pane,
+.tab-pane > * > .text-area,
+.tab-pane > * > .html-editor,
+.split-pane > * > .tab-pane,
+.split-pane > * > .table-view,
+.split-pane > * > .tree-table-view,
+.split-pane > * > .list-view,
+.split-pane > * > .tree-view,
+.split-pane > * > .scroll-pane,
+.split-pane > * > .split-pane,
+.split-pane > * > .text-area,
+.split-pane > * > .html-editor {
+ -fx-background-insets: 0, 0;
+ -fx-padding: 0;
+ }
+.tab-pane.floating > * > .table-view,
+.tab-pane.floating > * > .tree-table-view,
+.tab-pane.floating > * > .list-view,
+.tab-pane.floating > * > .tree-view,
+.tab-pane.floating > * > .scroll-pane,
+.tab-pane.floating > * > .split-pane,
+.tab-pane.floating > * > .text-area,
+.tab-pane.floating > * > .html-editor {
+ -fx-background-insets: 0, 0;
+ -fx-padding: -1;
+}
+.split-pane > * > .accordion > .titled-pane > *.content {
+ -fx-border-color: null;
+ -fx-border-insets: 0;
+}
+.split-pane > * > .accordion > .titled-pane > .title {
+ -fx-background-insets: 0,1 0 1 0, 2 1 2 1;
+}
+.split-pane > * > .accordion > .first-titled-pane > .title {
+ -fx-background-insets: 0,0 0 1 0, 1 1 2 1;
+}
+.split-pane > * > .accordion > .titled-pane:collapsed > .title {
+ -fx-background-insets: 0,1 0 0 0, 2 1 1 1;
+}
+.split-pane > * > .accordion > .first-titled-pane:collapsed > .title {
+ -fx-background-insets: 0,0 0 0 0, 1 1 1 1;
+}
+.titled-pane > * > * > .split-pane,
+.titled-pane > * > * > .text-area,
+.titled-pane > * > * > .html-editor,
+.titled-pane > * > * > .list-view,
+.titled-pane > * > * > .tree-view,
+.titled-pane > * > * > .table-view,
+.titled-pane > * > * > .tree-table-view,
+.titled-pane > * > * > .scroll-pane {
+ -fx-background-color: null;
+ -fx-background-insets: 0, 0;
+ -fx-padding: 0;
+}
+.titled-pane > * > * > AnchorPane,
+.titled-pane > * > * > BorderPane,
+.titled-pane > * > * > FlowPane,
+.titled-pane > * > * > GridPane,
+.titled-pane > * > * > HBox,
+.titled-pane > * > * > Pane,
+.titled-pane > * > * > StackPane,
+.titled-pane > * > * > TilePane,
+.titled-pane > * > * > VBox {
+ -fx-padding: 0.8em;
+}
+
+/*******************************************************************************
+ * *
+ * DatePicker *
+ * *
+ ******************************************************************************/
+
+.date-picker > .arrow-button > .arrow {
+ -fx-shape: "M0,0v9h9V0H0z M2,8H1V7h1V8z M2,6H1V5h1V6z M2,4H1V3h1V4z M4,8H3V7h1V8z M4,6H3V5h1V6z M4,4H3V3h1V4z M6,8H5V7h1V8z M6,6H5 V5h1V6z M6,4H5V3h1V4z M8,8H7V7h1V8z M8,6H7V5h1V6z M8,4H7V3h1V4z";
+ -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.416667em 0.416667em 0.333333em 0.333333em; /* 5 5 4 4 */
+ -fx-scale-shape: true;
+}
+
+.date-picker-popup {
+ -fx-background-color:
+ linear-gradient(to bottom,
+ derive(-fx-color,-17%),
+ derive(-fx-color,-30%)
+ ),
+ -fx-control-inner-background;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER; /* VBox */
+ -fx-spacing: 0; /* VBox */
+ -fx-padding: 0.083333em; /* 1 1 1 1 */
+ -fx-effect: dropshadow( gaussian , rgba(0,0,0,0.2) , 12, 0.0 , 0 , 8 );
+}
+.date-picker-popup > .month-year-pane {
+ -fx-padding: 0.588883em 0.5em 0.666667em 0.5em; /* 7 6 8 6 */
+ -fx-background-color: derive(-fx-box-border,30%), linear-gradient(to bottom, derive(-fx-base,-3%), derive(-fx-base,5%) 50%, derive(-fx-base,-3%));
+ -fx-background-insets: 0 0 0 0, 0 0 1 0;
+}
+.date-picker-popup > * > .spinner {
+ -fx-spacing: 0.25em; /* 3 */
+ -fx-alignment: CENTER;
+ -fx-fill-height: false;
+}
+.date-picker-popup > * > .spinner > .button {
+ -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;
+ -fx-background-insets: 0, 1, 2;
+ -fx-color: transparent;
+ -fx-background-radius: 0;
+}
+.date-picker-popup > * > .spinner > .button:focused {
+ -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;
+ -fx-color: -fx-hover-base;
+ -fx-background-insets: -0.2, 1, 2, -1.4, 2.6;
+}
+.date-picker-popup > * > .spinner > .button:hover {
+ -fx-color: -fx-hover-base;
+}
+.date-picker-popup > * > .spinner > .button:armed {
+ -fx-color: -fx-pressed-base;
+}
+.date-picker-popup > * > .spinner > .left-button {
+ -fx-padding: 0 0.333333em 0 0.25em; /* 0 4 0 3 */
+}
+.date-picker-popup > * > .spinner > .right-button {
+ -fx-padding: 0 0.25em 0 0.333333em; /* 0 3 0 4 */
+}
+.date-picker-popup > * > .spinner > .button > .left-arrow,
+.date-picker-popup > * > .spinner > .button > .right-arrow {
+ -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-45%);
+ -fx-background-insets: 1 0 -1 0, 0;
+ -fx-padding: 0.333333em 0.166667em 0.333333em 0.166667em; /* 4 2 4 2 */
+ -fx-effect: dropshadow(two-pass-box , -fx-shadow-highlight-color, 1, 0.0 , 0, 1.4);
+}
+.date-picker-popup > * > .spinner > .button:hover > .left-arrow,
+.date-picker-popup > * > .spinner > .button:hover > .right-arrow {
+ -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-50%);
+}
+.date-picker-popup > * > .spinner > .button:pressed > .left-arrow,
+.date-picker-popup > * > .spinner > .button:pressed > .right-arrow {
+ -fx-background-color: -fx-mark-highlight-color, derive(-fx-base,-55%);
+}
+.date-picker-popup > * > .spinner > .button > .left-arrow {
+ -fx-padding: 0.333333em 0.25em 0.333333em 0.166667em; /* 4 3 4 2 */
+ -fx-shape: "M5.997,5.072L5.995,6.501l-2.998-4l2.998-4l0.002,1.43l-1.976,2.57L5.997,5.072z";
+ -fx-scale-shape: true;
+}
+.date-picker-popup > * > .spinner > .button > .right-arrow {
+ -fx-padding: 0.333333em 0.25em 0.333333em 0.166667em; /* 4 3 4 2 */
+ -fx-shape: "M2.998-0.07L3-1.499l2.998,4L3,6.501l-0.002-1.43l1.976-2.57L2.998-0.07z";
+ -fx-scale-shape: true;
+}
+.date-picker-popup > * > .spinner > .label {
+ -fx-alignment: CENTER;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+ -fx-alignment: BASELINE_CENTER;
+ -fx-padding: 0.5em 0 0 0; /* 6 0 0 0 */
+ -fx-text-fill: #f3622d;
+}
+
+.date-picker-popup > .calendar-grid {
+ -fx-background-color: derive(-fx-selection-bar-non-focused, 60%);
+ /*-fx-background-insets: 1 0 0 0;*/
+ -fx-padding: 0;
+}
+.date-picker-popup > * > .date-cell {
+ -fx-background-color: transparent;
+ -fx-background-insets: 1, 2;
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_CENTER;
+ -fx-opacity: 1.0;
+}
+.date-picker-popup > * > .day-name-cell,
+.date-picker-popup > * > .week-number-cell {
+ -fx-font-size: 0.916667em;
+}
+.date-picker-popup > * > .week-number-cell {
+ -fx-padding: 0.333333em 0.583333em 0.333333em 0.583333em; /* 4 7 4 7 */
+ -fx-border-color: -fx-control-inner-background;
+ -fx-border-width: 1px;
+ -fx-background: -fx-control-inner-background;
+ -fx-background-color: -fx-background;
+ -fx-text-fill: -fx-accent;
+}
+.date-picker-popup > * > .day-cell {
+ -fx-padding: 0.333333em 0.583333em 0.333333em 0.583333em; /* 4 7 4 7 */
+ -fx-border-color: derive(-fx-selection-bar-non-focused, 60%);
+ -fx-border-width: 1px;
+ -fx-font-size: 1em;
+ -fx-background: -fx-control-inner-background;
+ -fx-background-color: -fx-background;
+ -fx-text-fill: -fx-text-background-color;
+}
+.date-picker-popup > * > .hijrah-day-cell {
+ -fx-alignment: TOP_LEFT;
+ -fx-padding: 0.083333em 0.333333em 0.083333em 0.333333em; /* 1 4 1 4 */
+ -fx-cell-size: 2.75em;
+}
+.date-picker-popup > * > .day-cell > .secondary-text {
+ -fx-fill: #f3622d;
+}
+.date-picker-popup > * > .today {
+ -fx-background-color: -fx-control-inner-background, derive(-fx-selection-bar-non-focused, -20%), -fx-control-inner-background;
+ -fx-background-insets: 1, 2, 3;
+}
+.date-picker-popup > * > .day-cell:hover,
+.date-picker-popup > * > .selected,
+.date-picker-popup > * > .previous-month.selected,
+.date-picker-popup > * > .next-month.selected {
+ -fx-background: -fx-selection-bar;
+}
+.date-picker-popup > * > .previous-month:hover,
+.date-picker-popup > * > .next-month:hover {
+ -fx-background: -fx-selection-bar-non-focused;
+}
+.date-picker-popup > * > .today:hover,
+.date-picker-popup > * > .today.selected {
+ -fx-background-color: -fx-selection-bar, derive(-fx-selection-bar-non-focused, -20%),-fx-selection-bar;
+}
+.date-picker-popup > * > .day-cell:focused,
+.date-picker-popup > * > .today:focused {
+ -fx-background-color: -fx-control-inner-background, -fx-cell-focus-inner-border, -fx-control-inner-background;
+ -fx-background-insets: 1, 2, 3;
+}
+.date-picker-popup > * > .day-cell:focused:hover,
+.date-picker-popup > * > .today:focused:hover,
+.date-picker-popup > * > .selected:focused,
+.date-picker-popup > * > .today.selected:focused {
+ -fx-background-color: -fx-selection-bar, -fx-cell-focus-inner-border, -fx-selection-bar;
+}
+.date-picker-popup > * > .previous-month,
+.date-picker-popup > * > .next-month {
+ -fx-background: derive(-fx-control-inner-background, -4%);
+}
+.date-picker-popup > * > .day-cell:hover > .secondary-text,
+.date-picker-popup > * > .previous-month > .secondary-text,
+.date-picker-popup > * > .next-month > .secondary-text,
+.date-picker-popup > * > .selected > .secondary-text {
+ -fx-fill: -fx-text-background-color;
+}
+.date-picker-popup > * > .previous-month.today,
+.date-picker-popup > * > .next-month.today {
+ -fx-background-color: derive(-fx-control-inner-background, -4%), derive(-fx-selection-bar-non-focused, -20%), derive(-fx-control-inner-background, -4%);
+}
+
+.date-picker-popup > * > .previous-month.today:hover,
+.date-picker-popup > * > .next-month.today:hover {
+ -fx-background-color: -fx-selection-bar-non-focused, derive(-fx-selection-bar-non-focused, -20%), -fx-selection-bar-non-focused;
+}
diff --git a/src/main/java/io/bitsquare/msg/Message.java b/gui/src/main/java/io/bitsquare/msg/Message.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/Message.java
rename to gui/src/main/java/io/bitsquare/msg/Message.java
diff --git a/src/main/java/io/bitsquare/msg/MessageBroker.java b/gui/src/main/java/io/bitsquare/msg/MessageBroker.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageBroker.java
rename to gui/src/main/java/io/bitsquare/msg/MessageBroker.java
diff --git a/src/main/java/io/bitsquare/msg/MessageModule.java b/gui/src/main/java/io/bitsquare/msg/MessageModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageModule.java
rename to gui/src/main/java/io/bitsquare/msg/MessageModule.java
diff --git a/src/main/java/io/bitsquare/msg/MessageService.java b/gui/src/main/java/io/bitsquare/msg/MessageService.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/MessageService.java
rename to gui/src/main/java/io/bitsquare/msg/MessageService.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/ArbitratorListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/GetPeerAddressListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/IncomingMessageListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/OutgoingMessageListener.java
diff --git a/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java b/gui/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
rename to gui/src/main/java/io/bitsquare/msg/listeners/TakeOfferRequestListener.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/BootstrappedPeerBuilder.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageModule.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PMessageService.java
diff --git a/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java b/gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
rename to gui/src/main/java/io/bitsquare/msg/tomp2p/TomP2PNode.java
diff --git a/src/main/java/io/bitsquare/network/BootstrapNodes.java b/gui/src/main/java/io/bitsquare/network/BootstrapNodes.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/BootstrapNodes.java
rename to gui/src/main/java/io/bitsquare/network/BootstrapNodes.java
diff --git a/src/main/java/io/bitsquare/network/BootstrapState.java b/gui/src/main/java/io/bitsquare/network/BootstrapState.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/BootstrapState.java
rename to gui/src/main/java/io/bitsquare/network/BootstrapState.java
diff --git a/src/main/java/io/bitsquare/network/ClientNode.java b/gui/src/main/java/io/bitsquare/network/ClientNode.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/ClientNode.java
rename to gui/src/main/java/io/bitsquare/network/ClientNode.java
diff --git a/src/main/java/io/bitsquare/network/ConnectionType.java b/gui/src/main/java/io/bitsquare/network/ConnectionType.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/ConnectionType.java
rename to gui/src/main/java/io/bitsquare/network/ConnectionType.java
diff --git a/src/main/java/io/bitsquare/network/NetworkException.java b/gui/src/main/java/io/bitsquare/network/NetworkException.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/NetworkException.java
rename to gui/src/main/java/io/bitsquare/network/NetworkException.java
diff --git a/src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java b/gui/src/main/java/io/bitsquare/network/NetworkModule.java
similarity index 50%
rename from src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java
rename to gui/src/main/java/io/bitsquare/network/NetworkModule.java
index 8314bcb5c3..788af27a63 100644
--- a/src/main/java/io/bitsquare/app/gui/MockUpdateProcess.java
+++ b/gui/src/main/java/io/bitsquare/network/NetworkModule.java
@@ -15,42 +15,35 @@
* along with Bitsquare. If not, see .
*/
-package io.bitsquare.app.gui;
+package io.bitsquare.network;
-import com.google.inject.Inject;
+import io.bitsquare.BitsquareModule;
+import io.bitsquare.msg.MessageService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.google.inject.Injector;
import org.springframework.core.env.Environment;
-public class MockUpdateProcess extends UpdateProcess {
- private static final Logger log = LoggerFactory.getLogger(MockUpdateProcess.class);
+public abstract class NetworkModule extends BitsquareModule {
- @Inject
- public MockUpdateProcess(Environment environment) {
- super(environment);
+ protected NetworkModule(Environment env) {
+ super(env);
}
@Override
- protected void init(Environment environment) {
-
- /* timeoutTimer.stop();
- state.set(State.UPDATE_AVAILABLE);*/
-
- state.set(State.UP_TO_DATE);
- timeoutTimer.stop();
- process.onCompleted();
-
- /* state.set(State.FAILURE);
- errorMessage = "dummy exc.";
- timeoutTimer.stop();
- process.onCompleted();*/
+ protected final void configure() {
+ bind(MessageService.class).to(messageService()).asEagerSingleton();
+ doConfigure();
}
+ protected void doConfigure() {
+ }
+
+ protected abstract Class extends MessageService> messageService();
+
@Override
- public void restart() {
- log.debug("restart requested");
+ protected void doClose(Injector injector) {
+ injector.getInstance(MessageService.class).shutDown();
}
}
diff --git a/src/main/java/io/bitsquare/network/Node.java b/gui/src/main/java/io/bitsquare/network/Node.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/Node.java
rename to gui/src/main/java/io/bitsquare/network/Node.java
diff --git a/src/main/java/io/bitsquare/network/Peer.java b/gui/src/main/java/io/bitsquare/network/Peer.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/Peer.java
rename to gui/src/main/java/io/bitsquare/network/Peer.java
diff --git a/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java b/gui/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
similarity index 100%
rename from src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
rename to gui/src/main/java/io/bitsquare/network/tomp2p/TomP2PPeer.java
diff --git a/src/main/java/io/bitsquare/offer/Direction.java b/gui/src/main/java/io/bitsquare/offer/Direction.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/Direction.java
rename to gui/src/main/java/io/bitsquare/offer/Direction.java
diff --git a/src/main/java/io/bitsquare/offer/Offer.java b/gui/src/main/java/io/bitsquare/offer/Offer.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/Offer.java
rename to gui/src/main/java/io/bitsquare/offer/Offer.java
diff --git a/src/main/java/io/bitsquare/offer/OfferModule.java b/gui/src/main/java/io/bitsquare/offer/OfferModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/OfferModule.java
rename to gui/src/main/java/io/bitsquare/offer/OfferModule.java
diff --git a/src/main/java/io/bitsquare/offer/OfferRepository.java b/gui/src/main/java/io/bitsquare/offer/OfferRepository.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/OfferRepository.java
rename to gui/src/main/java/io/bitsquare/offer/OfferRepository.java
diff --git a/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java b/gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
rename to gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferModule.java
diff --git a/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java b/gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
similarity index 100%
rename from src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
rename to gui/src/main/java/io/bitsquare/offer/tomp2p/TomP2POfferRepository.java
diff --git a/src/main/java/io/bitsquare/persistence/Persistence.java b/gui/src/main/java/io/bitsquare/persistence/Persistence.java
similarity index 100%
rename from src/main/java/io/bitsquare/persistence/Persistence.java
rename to gui/src/main/java/io/bitsquare/persistence/Persistence.java
diff --git a/src/main/java/io/bitsquare/settings/Preferences.java b/gui/src/main/java/io/bitsquare/settings/Preferences.java
similarity index 100%
rename from src/main/java/io/bitsquare/settings/Preferences.java
rename to gui/src/main/java/io/bitsquare/settings/Preferences.java
diff --git a/src/main/java/io/bitsquare/trade/Contract.java b/gui/src/main/java/io/bitsquare/trade/Contract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/Contract.java
rename to gui/src/main/java/io/bitsquare/trade/Contract.java
diff --git a/src/main/java/io/bitsquare/trade/Trade.java b/gui/src/main/java/io/bitsquare/trade/Trade.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/Trade.java
rename to gui/src/main/java/io/bitsquare/trade/Trade.java
diff --git a/src/main/java/io/bitsquare/trade/TradeManager.java b/gui/src/main/java/io/bitsquare/trade/TradeManager.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/TradeManager.java
rename to gui/src/main/java/io/bitsquare/trade/TradeManager.java
diff --git a/src/main/java/io/bitsquare/trade/TradeModule.java b/gui/src/main/java/io/bitsquare/trade/TradeModule.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/TradeModule.java
rename to gui/src/main/java/io/bitsquare/trade/TradeModule.java
diff --git a/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java b/gui/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
rename to gui/src/main/java/io/bitsquare/trade/handlers/TransactionResultHandler.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java b/gui/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/createoffer/CreateOfferCoordinator.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/TradeMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocol.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/BuyerAcceptsOfferProtocolListener.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/BankTransferInitedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/DepositTxPublishedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RequestTakerDepositPaymentMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToIsOfferAvailableMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/messages/RespondToTakeOfferRequestMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/CreateDepositTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/HandleTakeOfferRequest.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/RequestTakerDepositPayment.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendDepositTxIdToTaker.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SendSignedPayoutTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SetupListenerForBlockChainConfirmation.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/SignAndPublishDepositTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyAndSignContract.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakeOfferFeePayment.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/offerer/tasks/VerifyTakerAccount.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/shared/tasks/VerifyPeerAccount.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocol.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/SellerTakesOfferProtocolListener.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/PayoutTxPublishedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestIsOfferAvailableMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestOffererPublishDepositTxMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/RequestTakeOfferMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/messages/TakeOfferFeePayedMessage.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/CreateAndSignContract.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/GetPeerAddress.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayDeposit.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/PayTakeOfferFee.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/RequestTakeOffer.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendPayoutTxToOfferer.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendSignedTakerDepositTxAsHex.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SendTakeOfferFeePayedTxId.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/SignAndPublishPayoutTx.java
diff --git a/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java b/gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
similarity index 100%
rename from src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
rename to gui/src/main/java/io/bitsquare/trade/protocol/trade/taker/tasks/VerifyOffererAccount.java
diff --git a/src/main/java/io/bitsquare/user/User.java b/gui/src/main/java/io/bitsquare/user/User.java
similarity index 100%
rename from src/main/java/io/bitsquare/user/User.java
rename to gui/src/main/java/io/bitsquare/user/User.java
diff --git a/src/main/java/io/bitsquare/util/DSAKeyUtil.java b/gui/src/main/java/io/bitsquare/util/DSAKeyUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/DSAKeyUtil.java
rename to gui/src/main/java/io/bitsquare/util/DSAKeyUtil.java
diff --git a/src/main/java/io/bitsquare/util/DesktopUtil.java b/gui/src/main/java/io/bitsquare/util/DesktopUtil.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/DesktopUtil.java
rename to gui/src/main/java/io/bitsquare/util/DesktopUtil.java
diff --git a/src/main/java/io/bitsquare/util/MessageHandler.java b/gui/src/main/java/io/bitsquare/util/MessageHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/MessageHandler.java
rename to gui/src/main/java/io/bitsquare/util/MessageHandler.java
diff --git a/src/main/java/io/bitsquare/util/Utilities.java b/gui/src/main/java/io/bitsquare/util/Utilities.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/Utilities.java
rename to gui/src/main/java/io/bitsquare/util/Utilities.java
diff --git a/src/main/java/io/bitsquare/util/Validator.java b/gui/src/main/java/io/bitsquare/util/Validator.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/Validator.java
rename to gui/src/main/java/io/bitsquare/util/Validator.java
diff --git a/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java b/gui/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
rename to gui/src/main/java/io/bitsquare/util/joptsimple/EnumValueConverter.java
diff --git a/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java b/gui/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
rename to gui/src/main/java/io/bitsquare/util/spring/JOptCommandLinePropertySource.java
diff --git a/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java b/gui/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ErrorMessageHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/ExceptionHandler.java b/gui/src/main/java/io/bitsquare/util/task/ExceptionHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ExceptionHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ExceptionHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/FaultHandler.java b/gui/src/main/java/io/bitsquare/util/task/FaultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/FaultHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/FaultHandler.java
diff --git a/src/main/java/io/bitsquare/util/task/ResultHandler.java b/gui/src/main/java/io/bitsquare/util/task/ResultHandler.java
similarity index 100%
rename from src/main/java/io/bitsquare/util/task/ResultHandler.java
rename to gui/src/main/java/io/bitsquare/util/task/ResultHandler.java
diff --git a/src/main/java/viewfx/ViewfxException.java b/gui/src/main/java/viewfx/ViewfxException.java
similarity index 100%
rename from src/main/java/viewfx/ViewfxException.java
rename to gui/src/main/java/viewfx/ViewfxException.java
diff --git a/src/main/java/viewfx/model/Activatable.java b/gui/src/main/java/viewfx/model/Activatable.java
similarity index 100%
rename from src/main/java/viewfx/model/Activatable.java
rename to gui/src/main/java/viewfx/model/Activatable.java
diff --git a/src/main/java/viewfx/model/DataModel.java b/gui/src/main/java/viewfx/model/DataModel.java
similarity index 100%
rename from src/main/java/viewfx/model/DataModel.java
rename to gui/src/main/java/viewfx/model/DataModel.java
diff --git a/src/main/java/viewfx/model/Model.java b/gui/src/main/java/viewfx/model/Model.java
similarity index 100%
rename from src/main/java/viewfx/model/Model.java
rename to gui/src/main/java/viewfx/model/Model.java
diff --git a/src/main/java/viewfx/model/ViewModel.java b/gui/src/main/java/viewfx/model/ViewModel.java
similarity index 100%
rename from src/main/java/viewfx/model/ViewModel.java
rename to gui/src/main/java/viewfx/model/ViewModel.java
diff --git a/src/main/java/viewfx/model/support/ActivatableWithDelegate.java b/gui/src/main/java/viewfx/model/support/ActivatableWithDelegate.java
similarity index 100%
rename from src/main/java/viewfx/model/support/ActivatableWithDelegate.java
rename to gui/src/main/java/viewfx/model/support/ActivatableWithDelegate.java
diff --git a/src/main/java/viewfx/model/support/WithDelegate.java b/gui/src/main/java/viewfx/model/support/WithDelegate.java
similarity index 100%
rename from src/main/java/viewfx/model/support/WithDelegate.java
rename to gui/src/main/java/viewfx/model/support/WithDelegate.java
diff --git a/src/main/java/viewfx/view/DefaultPathConvention.java b/gui/src/main/java/viewfx/view/DefaultPathConvention.java
similarity index 100%
rename from src/main/java/viewfx/view/DefaultPathConvention.java
rename to gui/src/main/java/viewfx/view/DefaultPathConvention.java
diff --git a/src/main/java/viewfx/view/FxmlView.java b/gui/src/main/java/viewfx/view/FxmlView.java
similarity index 100%
rename from src/main/java/viewfx/view/FxmlView.java
rename to gui/src/main/java/viewfx/view/FxmlView.java
diff --git a/src/main/java/viewfx/view/View.java b/gui/src/main/java/viewfx/view/View.java
similarity index 100%
rename from src/main/java/viewfx/view/View.java
rename to gui/src/main/java/viewfx/view/View.java
diff --git a/src/main/java/viewfx/view/ViewFactory.java b/gui/src/main/java/viewfx/view/ViewFactory.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewFactory.java
rename to gui/src/main/java/viewfx/view/ViewFactory.java
diff --git a/src/main/java/viewfx/view/ViewLoader.java b/gui/src/main/java/viewfx/view/ViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewLoader.java
rename to gui/src/main/java/viewfx/view/ViewLoader.java
diff --git a/src/main/java/viewfx/view/ViewPath.java b/gui/src/main/java/viewfx/view/ViewPath.java
similarity index 100%
rename from src/main/java/viewfx/view/ViewPath.java
rename to gui/src/main/java/viewfx/view/ViewPath.java
diff --git a/src/main/java/viewfx/view/Wizard.java b/gui/src/main/java/viewfx/view/Wizard.java
similarity index 100%
rename from src/main/java/viewfx/view/Wizard.java
rename to gui/src/main/java/viewfx/view/Wizard.java
diff --git a/src/main/java/viewfx/view/support/AbstractView.java b/gui/src/main/java/viewfx/view/support/AbstractView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/AbstractView.java
rename to gui/src/main/java/viewfx/view/support/AbstractView.java
diff --git a/src/main/java/viewfx/view/support/ActivatableView.java b/gui/src/main/java/viewfx/view/support/ActivatableView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/ActivatableView.java
rename to gui/src/main/java/viewfx/view/support/ActivatableView.java
diff --git a/src/main/java/viewfx/view/support/ActivatableViewAndModel.java b/gui/src/main/java/viewfx/view/support/ActivatableViewAndModel.java
similarity index 100%
rename from src/main/java/viewfx/view/support/ActivatableViewAndModel.java
rename to gui/src/main/java/viewfx/view/support/ActivatableViewAndModel.java
diff --git a/src/main/java/viewfx/view/support/CachingViewLoader.java b/gui/src/main/java/viewfx/view/support/CachingViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/support/CachingViewLoader.java
rename to gui/src/main/java/viewfx/view/support/CachingViewLoader.java
diff --git a/src/main/java/viewfx/view/support/InitializableView.java b/gui/src/main/java/viewfx/view/support/InitializableView.java
similarity index 100%
rename from src/main/java/viewfx/view/support/InitializableView.java
rename to gui/src/main/java/viewfx/view/support/InitializableView.java
diff --git a/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java b/gui/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
similarity index 100%
rename from src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
rename to gui/src/main/java/viewfx/view/support/fxml/FxmlViewLoader.java
diff --git a/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java b/gui/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
similarity index 100%
rename from src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
rename to gui/src/main/java/viewfx/view/support/guice/InjectorViewFactory.java
diff --git a/src/main/resources/bitsquare.properties b/gui/src/main/resources/bitsquare.properties
similarity index 100%
rename from src/main/resources/bitsquare.properties
rename to gui/src/main/resources/bitsquare.properties
diff --git a/src/main/resources/i18n/displayStrings.properties b/gui/src/main/resources/i18n/displayStrings.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings.properties
rename to gui/src/main/resources/i18n/displayStrings.properties
diff --git a/src/main/resources/i18n/displayStrings_de.properties b/gui/src/main/resources/i18n/displayStrings_de.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_de.properties
rename to gui/src/main/resources/i18n/displayStrings_de.properties
diff --git a/src/main/resources/i18n/displayStrings_es.properties b/gui/src/main/resources/i18n/displayStrings_es.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_es.properties
rename to gui/src/main/resources/i18n/displayStrings_es.properties
diff --git a/src/main/resources/i18n/displayStrings_sv_SE.properties b/gui/src/main/resources/i18n/displayStrings_sv_SE.properties
similarity index 100%
rename from src/main/resources/i18n/displayStrings_sv_SE.properties
rename to gui/src/main/resources/i18n/displayStrings_sv_SE.properties
diff --git a/src/main/resources/images/alert_round.png b/gui/src/main/resources/images/alert_round.png
similarity index 100%
rename from src/main/resources/images/alert_round.png
rename to gui/src/main/resources/images/alert_round.png
diff --git a/src/main/resources/images/alert_round@2x.png b/gui/src/main/resources/images/alert_round@2x.png
similarity index 100%
rename from src/main/resources/images/alert_round@2x.png
rename to gui/src/main/resources/images/alert_round@2x.png
diff --git a/src/main/resources/images/arrow_blue.png b/gui/src/main/resources/images/arrow_blue.png
similarity index 100%
rename from src/main/resources/images/arrow_blue.png
rename to gui/src/main/resources/images/arrow_blue.png
diff --git a/src/main/resources/images/arrow_blue@2x.png b/gui/src/main/resources/images/arrow_blue@2x.png
similarity index 100%
rename from src/main/resources/images/arrow_blue@2x.png
rename to gui/src/main/resources/images/arrow_blue@2x.png
diff --git a/src/main/resources/images/arrow_grey.png b/gui/src/main/resources/images/arrow_grey.png
similarity index 100%
rename from src/main/resources/images/arrow_grey.png
rename to gui/src/main/resources/images/arrow_grey.png
diff --git a/src/main/resources/images/arrow_grey@2x.png b/gui/src/main/resources/images/arrow_grey@2x.png
similarity index 100%
rename from src/main/resources/images/arrow_grey@2x.png
rename to gui/src/main/resources/images/arrow_grey@2x.png
diff --git a/src/main/resources/images/buy.png b/gui/src/main/resources/images/buy.png
similarity index 100%
rename from src/main/resources/images/buy.png
rename to gui/src/main/resources/images/buy.png
diff --git a/src/main/resources/images/buy@2x.png b/gui/src/main/resources/images/buy@2x.png
similarity index 100%
rename from src/main/resources/images/buy@2x.png
rename to gui/src/main/resources/images/buy@2x.png
diff --git a/src/main/resources/images/buy_large.png b/gui/src/main/resources/images/buy_large.png
similarity index 100%
rename from src/main/resources/images/buy_large.png
rename to gui/src/main/resources/images/buy_large.png
diff --git a/src/main/resources/images/buy_large@2x.png b/gui/src/main/resources/images/buy_large@2x.png
similarity index 100%
rename from src/main/resources/images/buy_large@2x.png
rename to gui/src/main/resources/images/buy_large@2x.png
diff --git a/src/main/resources/images/collapse.png b/gui/src/main/resources/images/collapse.png
similarity index 100%
rename from src/main/resources/images/collapse.png
rename to gui/src/main/resources/images/collapse.png
diff --git a/src/main/resources/images/collapse@2x.png b/gui/src/main/resources/images/collapse@2x.png
similarity index 100%
rename from src/main/resources/images/collapse@2x.png
rename to gui/src/main/resources/images/collapse@2x.png
diff --git a/src/main/resources/images/connection/direct.png b/gui/src/main/resources/images/connection/direct.png
similarity index 100%
rename from src/main/resources/images/connection/direct.png
rename to gui/src/main/resources/images/connection/direct.png
diff --git a/src/main/resources/images/connection/direct@2x.png b/gui/src/main/resources/images/connection/direct@2x.png
similarity index 100%
rename from src/main/resources/images/connection/direct@2x.png
rename to gui/src/main/resources/images/connection/direct@2x.png
diff --git a/src/main/resources/images/connection/nat.png b/gui/src/main/resources/images/connection/nat.png
similarity index 100%
rename from src/main/resources/images/connection/nat.png
rename to gui/src/main/resources/images/connection/nat.png
diff --git a/src/main/resources/images/connection/nat@2x.png b/gui/src/main/resources/images/connection/nat@2x.png
similarity index 100%
rename from src/main/resources/images/connection/nat@2x.png
rename to gui/src/main/resources/images/connection/nat@2x.png
diff --git a/src/main/resources/images/connection/relay.png b/gui/src/main/resources/images/connection/relay.png
similarity index 100%
rename from src/main/resources/images/connection/relay.png
rename to gui/src/main/resources/images/connection/relay.png
diff --git a/src/main/resources/images/connection/relay@2x.png b/gui/src/main/resources/images/connection/relay@2x.png
similarity index 100%
rename from src/main/resources/images/connection/relay@2x.png
rename to gui/src/main/resources/images/connection/relay@2x.png
diff --git a/src/main/resources/images/connection/synced.png b/gui/src/main/resources/images/connection/synced.png
similarity index 100%
rename from src/main/resources/images/connection/synced.png
rename to gui/src/main/resources/images/connection/synced.png
diff --git a/src/main/resources/images/connection/synced@2x.png b/gui/src/main/resources/images/connection/synced@2x.png
similarity index 100%
rename from src/main/resources/images/connection/synced@2x.png
rename to gui/src/main/resources/images/connection/synced@2x.png
diff --git a/src/main/resources/images/countries/ad.png b/gui/src/main/resources/images/countries/ad.png
similarity index 100%
rename from src/main/resources/images/countries/ad.png
rename to gui/src/main/resources/images/countries/ad.png
diff --git a/src/main/resources/images/countries/ae.png b/gui/src/main/resources/images/countries/ae.png
similarity index 100%
rename from src/main/resources/images/countries/ae.png
rename to gui/src/main/resources/images/countries/ae.png
diff --git a/src/main/resources/images/countries/af.png b/gui/src/main/resources/images/countries/af.png
similarity index 100%
rename from src/main/resources/images/countries/af.png
rename to gui/src/main/resources/images/countries/af.png
diff --git a/src/main/resources/images/countries/ag.png b/gui/src/main/resources/images/countries/ag.png
similarity index 100%
rename from src/main/resources/images/countries/ag.png
rename to gui/src/main/resources/images/countries/ag.png
diff --git a/src/main/resources/images/countries/ai.png b/gui/src/main/resources/images/countries/ai.png
similarity index 100%
rename from src/main/resources/images/countries/ai.png
rename to gui/src/main/resources/images/countries/ai.png
diff --git a/src/main/resources/images/countries/al.png b/gui/src/main/resources/images/countries/al.png
similarity index 100%
rename from src/main/resources/images/countries/al.png
rename to gui/src/main/resources/images/countries/al.png
diff --git a/src/main/resources/images/countries/am.png b/gui/src/main/resources/images/countries/am.png
similarity index 100%
rename from src/main/resources/images/countries/am.png
rename to gui/src/main/resources/images/countries/am.png
diff --git a/src/main/resources/images/countries/an.png b/gui/src/main/resources/images/countries/an.png
similarity index 100%
rename from src/main/resources/images/countries/an.png
rename to gui/src/main/resources/images/countries/an.png
diff --git a/src/main/resources/images/countries/ao.png b/gui/src/main/resources/images/countries/ao.png
similarity index 100%
rename from src/main/resources/images/countries/ao.png
rename to gui/src/main/resources/images/countries/ao.png
diff --git a/src/main/resources/images/countries/ar.png b/gui/src/main/resources/images/countries/ar.png
similarity index 100%
rename from src/main/resources/images/countries/ar.png
rename to gui/src/main/resources/images/countries/ar.png
diff --git a/src/main/resources/images/countries/as.png b/gui/src/main/resources/images/countries/as.png
similarity index 100%
rename from src/main/resources/images/countries/as.png
rename to gui/src/main/resources/images/countries/as.png
diff --git a/src/main/resources/images/countries/at.png b/gui/src/main/resources/images/countries/at.png
similarity index 100%
rename from src/main/resources/images/countries/at.png
rename to gui/src/main/resources/images/countries/at.png
diff --git a/src/main/resources/images/countries/au.png b/gui/src/main/resources/images/countries/au.png
similarity index 100%
rename from src/main/resources/images/countries/au.png
rename to gui/src/main/resources/images/countries/au.png
diff --git a/src/main/resources/images/countries/aw.png b/gui/src/main/resources/images/countries/aw.png
similarity index 100%
rename from src/main/resources/images/countries/aw.png
rename to gui/src/main/resources/images/countries/aw.png
diff --git a/src/main/resources/images/countries/ax.png b/gui/src/main/resources/images/countries/ax.png
similarity index 100%
rename from src/main/resources/images/countries/ax.png
rename to gui/src/main/resources/images/countries/ax.png
diff --git a/src/main/resources/images/countries/az.png b/gui/src/main/resources/images/countries/az.png
similarity index 100%
rename from src/main/resources/images/countries/az.png
rename to gui/src/main/resources/images/countries/az.png
diff --git a/src/main/resources/images/countries/ba.png b/gui/src/main/resources/images/countries/ba.png
similarity index 100%
rename from src/main/resources/images/countries/ba.png
rename to gui/src/main/resources/images/countries/ba.png
diff --git a/src/main/resources/images/countries/bb.png b/gui/src/main/resources/images/countries/bb.png
similarity index 100%
rename from src/main/resources/images/countries/bb.png
rename to gui/src/main/resources/images/countries/bb.png
diff --git a/src/main/resources/images/countries/bd.png b/gui/src/main/resources/images/countries/bd.png
similarity index 100%
rename from src/main/resources/images/countries/bd.png
rename to gui/src/main/resources/images/countries/bd.png
diff --git a/src/main/resources/images/countries/be.png b/gui/src/main/resources/images/countries/be.png
similarity index 100%
rename from src/main/resources/images/countries/be.png
rename to gui/src/main/resources/images/countries/be.png
diff --git a/src/main/resources/images/countries/bf.png b/gui/src/main/resources/images/countries/bf.png
similarity index 100%
rename from src/main/resources/images/countries/bf.png
rename to gui/src/main/resources/images/countries/bf.png
diff --git a/src/main/resources/images/countries/bg.png b/gui/src/main/resources/images/countries/bg.png
similarity index 100%
rename from src/main/resources/images/countries/bg.png
rename to gui/src/main/resources/images/countries/bg.png
diff --git a/src/main/resources/images/countries/bh.png b/gui/src/main/resources/images/countries/bh.png
similarity index 100%
rename from src/main/resources/images/countries/bh.png
rename to gui/src/main/resources/images/countries/bh.png
diff --git a/src/main/resources/images/countries/bi.png b/gui/src/main/resources/images/countries/bi.png
similarity index 100%
rename from src/main/resources/images/countries/bi.png
rename to gui/src/main/resources/images/countries/bi.png
diff --git a/src/main/resources/images/countries/bj.png b/gui/src/main/resources/images/countries/bj.png
similarity index 100%
rename from src/main/resources/images/countries/bj.png
rename to gui/src/main/resources/images/countries/bj.png
diff --git a/src/main/resources/images/countries/bm.png b/gui/src/main/resources/images/countries/bm.png
similarity index 100%
rename from src/main/resources/images/countries/bm.png
rename to gui/src/main/resources/images/countries/bm.png
diff --git a/src/main/resources/images/countries/bn.png b/gui/src/main/resources/images/countries/bn.png
similarity index 100%
rename from src/main/resources/images/countries/bn.png
rename to gui/src/main/resources/images/countries/bn.png
diff --git a/src/main/resources/images/countries/bo.png b/gui/src/main/resources/images/countries/bo.png
similarity index 100%
rename from src/main/resources/images/countries/bo.png
rename to gui/src/main/resources/images/countries/bo.png
diff --git a/src/main/resources/images/countries/br.png b/gui/src/main/resources/images/countries/br.png
similarity index 100%
rename from src/main/resources/images/countries/br.png
rename to gui/src/main/resources/images/countries/br.png
diff --git a/src/main/resources/images/countries/bs.png b/gui/src/main/resources/images/countries/bs.png
similarity index 100%
rename from src/main/resources/images/countries/bs.png
rename to gui/src/main/resources/images/countries/bs.png
diff --git a/src/main/resources/images/countries/bt.png b/gui/src/main/resources/images/countries/bt.png
similarity index 100%
rename from src/main/resources/images/countries/bt.png
rename to gui/src/main/resources/images/countries/bt.png
diff --git a/src/main/resources/images/countries/bv.png b/gui/src/main/resources/images/countries/bv.png
similarity index 100%
rename from src/main/resources/images/countries/bv.png
rename to gui/src/main/resources/images/countries/bv.png
diff --git a/src/main/resources/images/countries/bw.png b/gui/src/main/resources/images/countries/bw.png
similarity index 100%
rename from src/main/resources/images/countries/bw.png
rename to gui/src/main/resources/images/countries/bw.png
diff --git a/src/main/resources/images/countries/by.png b/gui/src/main/resources/images/countries/by.png
similarity index 100%
rename from src/main/resources/images/countries/by.png
rename to gui/src/main/resources/images/countries/by.png
diff --git a/src/main/resources/images/countries/bz.png b/gui/src/main/resources/images/countries/bz.png
similarity index 100%
rename from src/main/resources/images/countries/bz.png
rename to gui/src/main/resources/images/countries/bz.png
diff --git a/src/main/resources/images/countries/ca.png b/gui/src/main/resources/images/countries/ca.png
similarity index 100%
rename from src/main/resources/images/countries/ca.png
rename to gui/src/main/resources/images/countries/ca.png
diff --git a/src/main/resources/images/countries/catalonia.png b/gui/src/main/resources/images/countries/catalonia.png
similarity index 100%
rename from src/main/resources/images/countries/catalonia.png
rename to gui/src/main/resources/images/countries/catalonia.png
diff --git a/src/main/resources/images/countries/cc.png b/gui/src/main/resources/images/countries/cc.png
similarity index 100%
rename from src/main/resources/images/countries/cc.png
rename to gui/src/main/resources/images/countries/cc.png
diff --git a/src/main/resources/images/countries/cd.png b/gui/src/main/resources/images/countries/cd.png
similarity index 100%
rename from src/main/resources/images/countries/cd.png
rename to gui/src/main/resources/images/countries/cd.png
diff --git a/src/main/resources/images/countries/cf.png b/gui/src/main/resources/images/countries/cf.png
similarity index 100%
rename from src/main/resources/images/countries/cf.png
rename to gui/src/main/resources/images/countries/cf.png
diff --git a/src/main/resources/images/countries/cg.png b/gui/src/main/resources/images/countries/cg.png
similarity index 100%
rename from src/main/resources/images/countries/cg.png
rename to gui/src/main/resources/images/countries/cg.png
diff --git a/src/main/resources/images/countries/ch.png b/gui/src/main/resources/images/countries/ch.png
similarity index 100%
rename from src/main/resources/images/countries/ch.png
rename to gui/src/main/resources/images/countries/ch.png
diff --git a/src/main/resources/images/countries/ci.png b/gui/src/main/resources/images/countries/ci.png
similarity index 100%
rename from src/main/resources/images/countries/ci.png
rename to gui/src/main/resources/images/countries/ci.png
diff --git a/src/main/resources/images/countries/ck.png b/gui/src/main/resources/images/countries/ck.png
similarity index 100%
rename from src/main/resources/images/countries/ck.png
rename to gui/src/main/resources/images/countries/ck.png
diff --git a/src/main/resources/images/countries/cl.png b/gui/src/main/resources/images/countries/cl.png
similarity index 100%
rename from src/main/resources/images/countries/cl.png
rename to gui/src/main/resources/images/countries/cl.png
diff --git a/src/main/resources/images/countries/cm.png b/gui/src/main/resources/images/countries/cm.png
similarity index 100%
rename from src/main/resources/images/countries/cm.png
rename to gui/src/main/resources/images/countries/cm.png
diff --git a/src/main/resources/images/countries/cn.png b/gui/src/main/resources/images/countries/cn.png
similarity index 100%
rename from src/main/resources/images/countries/cn.png
rename to gui/src/main/resources/images/countries/cn.png
diff --git a/src/main/resources/images/countries/co.png b/gui/src/main/resources/images/countries/co.png
similarity index 100%
rename from src/main/resources/images/countries/co.png
rename to gui/src/main/resources/images/countries/co.png
diff --git a/src/main/resources/images/countries/cr.png b/gui/src/main/resources/images/countries/cr.png
similarity index 100%
rename from src/main/resources/images/countries/cr.png
rename to gui/src/main/resources/images/countries/cr.png
diff --git a/src/main/resources/images/countries/cs.png b/gui/src/main/resources/images/countries/cs.png
similarity index 100%
rename from src/main/resources/images/countries/cs.png
rename to gui/src/main/resources/images/countries/cs.png
diff --git a/src/main/resources/images/countries/cu.png b/gui/src/main/resources/images/countries/cu.png
similarity index 100%
rename from src/main/resources/images/countries/cu.png
rename to gui/src/main/resources/images/countries/cu.png
diff --git a/src/main/resources/images/countries/cv.png b/gui/src/main/resources/images/countries/cv.png
similarity index 100%
rename from src/main/resources/images/countries/cv.png
rename to gui/src/main/resources/images/countries/cv.png
diff --git a/src/main/resources/images/countries/cx.png b/gui/src/main/resources/images/countries/cx.png
similarity index 100%
rename from src/main/resources/images/countries/cx.png
rename to gui/src/main/resources/images/countries/cx.png
diff --git a/src/main/resources/images/countries/cy.png b/gui/src/main/resources/images/countries/cy.png
similarity index 100%
rename from src/main/resources/images/countries/cy.png
rename to gui/src/main/resources/images/countries/cy.png
diff --git a/src/main/resources/images/countries/cz.png b/gui/src/main/resources/images/countries/cz.png
similarity index 100%
rename from src/main/resources/images/countries/cz.png
rename to gui/src/main/resources/images/countries/cz.png
diff --git a/src/main/resources/images/countries/de.png b/gui/src/main/resources/images/countries/de.png
similarity index 100%
rename from src/main/resources/images/countries/de.png
rename to gui/src/main/resources/images/countries/de.png
diff --git a/src/main/resources/images/countries/dj.png b/gui/src/main/resources/images/countries/dj.png
similarity index 100%
rename from src/main/resources/images/countries/dj.png
rename to gui/src/main/resources/images/countries/dj.png
diff --git a/src/main/resources/images/countries/dk.png b/gui/src/main/resources/images/countries/dk.png
similarity index 100%
rename from src/main/resources/images/countries/dk.png
rename to gui/src/main/resources/images/countries/dk.png
diff --git a/src/main/resources/images/countries/dm.png b/gui/src/main/resources/images/countries/dm.png
similarity index 100%
rename from src/main/resources/images/countries/dm.png
rename to gui/src/main/resources/images/countries/dm.png
diff --git a/src/main/resources/images/countries/do.png b/gui/src/main/resources/images/countries/do.png
similarity index 100%
rename from src/main/resources/images/countries/do.png
rename to gui/src/main/resources/images/countries/do.png
diff --git a/src/main/resources/images/countries/dz.png b/gui/src/main/resources/images/countries/dz.png
similarity index 100%
rename from src/main/resources/images/countries/dz.png
rename to gui/src/main/resources/images/countries/dz.png
diff --git a/src/main/resources/images/countries/ec.png b/gui/src/main/resources/images/countries/ec.png
similarity index 100%
rename from src/main/resources/images/countries/ec.png
rename to gui/src/main/resources/images/countries/ec.png
diff --git a/src/main/resources/images/countries/ee.png b/gui/src/main/resources/images/countries/ee.png
similarity index 100%
rename from src/main/resources/images/countries/ee.png
rename to gui/src/main/resources/images/countries/ee.png
diff --git a/src/main/resources/images/countries/eg.png b/gui/src/main/resources/images/countries/eg.png
similarity index 100%
rename from src/main/resources/images/countries/eg.png
rename to gui/src/main/resources/images/countries/eg.png
diff --git a/src/main/resources/images/countries/eh.png b/gui/src/main/resources/images/countries/eh.png
similarity index 100%
rename from src/main/resources/images/countries/eh.png
rename to gui/src/main/resources/images/countries/eh.png
diff --git a/src/main/resources/images/countries/england.png b/gui/src/main/resources/images/countries/england.png
similarity index 100%
rename from src/main/resources/images/countries/england.png
rename to gui/src/main/resources/images/countries/england.png
diff --git a/src/main/resources/images/countries/er.png b/gui/src/main/resources/images/countries/er.png
similarity index 100%
rename from src/main/resources/images/countries/er.png
rename to gui/src/main/resources/images/countries/er.png
diff --git a/src/main/resources/images/countries/es.png b/gui/src/main/resources/images/countries/es.png
similarity index 100%
rename from src/main/resources/images/countries/es.png
rename to gui/src/main/resources/images/countries/es.png
diff --git a/src/main/resources/images/countries/et.png b/gui/src/main/resources/images/countries/et.png
similarity index 100%
rename from src/main/resources/images/countries/et.png
rename to gui/src/main/resources/images/countries/et.png
diff --git a/src/main/resources/images/countries/eu.png b/gui/src/main/resources/images/countries/eu.png
similarity index 100%
rename from src/main/resources/images/countries/eu.png
rename to gui/src/main/resources/images/countries/eu.png
diff --git a/src/main/resources/images/countries/fam.png b/gui/src/main/resources/images/countries/fam.png
similarity index 100%
rename from src/main/resources/images/countries/fam.png
rename to gui/src/main/resources/images/countries/fam.png
diff --git a/src/main/resources/images/countries/fi.png b/gui/src/main/resources/images/countries/fi.png
similarity index 100%
rename from src/main/resources/images/countries/fi.png
rename to gui/src/main/resources/images/countries/fi.png
diff --git a/src/main/resources/images/countries/fj.png b/gui/src/main/resources/images/countries/fj.png
similarity index 100%
rename from src/main/resources/images/countries/fj.png
rename to gui/src/main/resources/images/countries/fj.png
diff --git a/src/main/resources/images/countries/fk.png b/gui/src/main/resources/images/countries/fk.png
similarity index 100%
rename from src/main/resources/images/countries/fk.png
rename to gui/src/main/resources/images/countries/fk.png
diff --git a/src/main/resources/images/countries/fm.png b/gui/src/main/resources/images/countries/fm.png
similarity index 100%
rename from src/main/resources/images/countries/fm.png
rename to gui/src/main/resources/images/countries/fm.png
diff --git a/src/main/resources/images/countries/fo.png b/gui/src/main/resources/images/countries/fo.png
similarity index 100%
rename from src/main/resources/images/countries/fo.png
rename to gui/src/main/resources/images/countries/fo.png
diff --git a/src/main/resources/images/countries/fr.png b/gui/src/main/resources/images/countries/fr.png
similarity index 100%
rename from src/main/resources/images/countries/fr.png
rename to gui/src/main/resources/images/countries/fr.png
diff --git a/src/main/resources/images/countries/ga.png b/gui/src/main/resources/images/countries/ga.png
similarity index 100%
rename from src/main/resources/images/countries/ga.png
rename to gui/src/main/resources/images/countries/ga.png
diff --git a/src/main/resources/images/countries/gd.png b/gui/src/main/resources/images/countries/gd.png
similarity index 100%
rename from src/main/resources/images/countries/gd.png
rename to gui/src/main/resources/images/countries/gd.png
diff --git a/src/main/resources/images/countries/ge.png b/gui/src/main/resources/images/countries/ge.png
similarity index 100%
rename from src/main/resources/images/countries/ge.png
rename to gui/src/main/resources/images/countries/ge.png
diff --git a/src/main/resources/images/countries/gf.png b/gui/src/main/resources/images/countries/gf.png
similarity index 100%
rename from src/main/resources/images/countries/gf.png
rename to gui/src/main/resources/images/countries/gf.png
diff --git a/src/main/resources/images/countries/gh.png b/gui/src/main/resources/images/countries/gh.png
similarity index 100%
rename from src/main/resources/images/countries/gh.png
rename to gui/src/main/resources/images/countries/gh.png
diff --git a/src/main/resources/images/countries/gi.png b/gui/src/main/resources/images/countries/gi.png
similarity index 100%
rename from src/main/resources/images/countries/gi.png
rename to gui/src/main/resources/images/countries/gi.png
diff --git a/src/main/resources/images/countries/gl.png b/gui/src/main/resources/images/countries/gl.png
similarity index 100%
rename from src/main/resources/images/countries/gl.png
rename to gui/src/main/resources/images/countries/gl.png
diff --git a/src/main/resources/images/countries/gm.png b/gui/src/main/resources/images/countries/gm.png
similarity index 100%
rename from src/main/resources/images/countries/gm.png
rename to gui/src/main/resources/images/countries/gm.png
diff --git a/src/main/resources/images/countries/gn.png b/gui/src/main/resources/images/countries/gn.png
similarity index 100%
rename from src/main/resources/images/countries/gn.png
rename to gui/src/main/resources/images/countries/gn.png
diff --git a/src/main/resources/images/countries/gp.png b/gui/src/main/resources/images/countries/gp.png
similarity index 100%
rename from src/main/resources/images/countries/gp.png
rename to gui/src/main/resources/images/countries/gp.png
diff --git a/src/main/resources/images/countries/gq.png b/gui/src/main/resources/images/countries/gq.png
similarity index 100%
rename from src/main/resources/images/countries/gq.png
rename to gui/src/main/resources/images/countries/gq.png
diff --git a/src/main/resources/images/countries/gr.png b/gui/src/main/resources/images/countries/gr.png
similarity index 100%
rename from src/main/resources/images/countries/gr.png
rename to gui/src/main/resources/images/countries/gr.png
diff --git a/src/main/resources/images/countries/gs.png b/gui/src/main/resources/images/countries/gs.png
similarity index 100%
rename from src/main/resources/images/countries/gs.png
rename to gui/src/main/resources/images/countries/gs.png
diff --git a/src/main/resources/images/countries/gt.png b/gui/src/main/resources/images/countries/gt.png
similarity index 100%
rename from src/main/resources/images/countries/gt.png
rename to gui/src/main/resources/images/countries/gt.png
diff --git a/src/main/resources/images/countries/gu.png b/gui/src/main/resources/images/countries/gu.png
similarity index 100%
rename from src/main/resources/images/countries/gu.png
rename to gui/src/main/resources/images/countries/gu.png
diff --git a/src/main/resources/images/countries/gw.png b/gui/src/main/resources/images/countries/gw.png
similarity index 100%
rename from src/main/resources/images/countries/gw.png
rename to gui/src/main/resources/images/countries/gw.png
diff --git a/src/main/resources/images/countries/gy.png b/gui/src/main/resources/images/countries/gy.png
similarity index 100%
rename from src/main/resources/images/countries/gy.png
rename to gui/src/main/resources/images/countries/gy.png
diff --git a/src/main/resources/images/countries/hk.png b/gui/src/main/resources/images/countries/hk.png
similarity index 100%
rename from src/main/resources/images/countries/hk.png
rename to gui/src/main/resources/images/countries/hk.png
diff --git a/src/main/resources/images/countries/hm.png b/gui/src/main/resources/images/countries/hm.png
similarity index 100%
rename from src/main/resources/images/countries/hm.png
rename to gui/src/main/resources/images/countries/hm.png
diff --git a/src/main/resources/images/countries/hn.png b/gui/src/main/resources/images/countries/hn.png
similarity index 100%
rename from src/main/resources/images/countries/hn.png
rename to gui/src/main/resources/images/countries/hn.png
diff --git a/src/main/resources/images/countries/hr.png b/gui/src/main/resources/images/countries/hr.png
similarity index 100%
rename from src/main/resources/images/countries/hr.png
rename to gui/src/main/resources/images/countries/hr.png
diff --git a/src/main/resources/images/countries/ht.png b/gui/src/main/resources/images/countries/ht.png
similarity index 100%
rename from src/main/resources/images/countries/ht.png
rename to gui/src/main/resources/images/countries/ht.png
diff --git a/src/main/resources/images/countries/hu.png b/gui/src/main/resources/images/countries/hu.png
similarity index 100%
rename from src/main/resources/images/countries/hu.png
rename to gui/src/main/resources/images/countries/hu.png
diff --git a/src/main/resources/images/countries/id.png b/gui/src/main/resources/images/countries/id.png
similarity index 100%
rename from src/main/resources/images/countries/id.png
rename to gui/src/main/resources/images/countries/id.png
diff --git a/src/main/resources/images/countries/ie.png b/gui/src/main/resources/images/countries/ie.png
similarity index 100%
rename from src/main/resources/images/countries/ie.png
rename to gui/src/main/resources/images/countries/ie.png
diff --git a/src/main/resources/images/countries/il.png b/gui/src/main/resources/images/countries/il.png
similarity index 100%
rename from src/main/resources/images/countries/il.png
rename to gui/src/main/resources/images/countries/il.png
diff --git a/src/main/resources/images/countries/in.png b/gui/src/main/resources/images/countries/in.png
similarity index 100%
rename from src/main/resources/images/countries/in.png
rename to gui/src/main/resources/images/countries/in.png
diff --git a/src/main/resources/images/countries/io.png b/gui/src/main/resources/images/countries/io.png
similarity index 100%
rename from src/main/resources/images/countries/io.png
rename to gui/src/main/resources/images/countries/io.png
diff --git a/src/main/resources/images/countries/iq.png b/gui/src/main/resources/images/countries/iq.png
similarity index 100%
rename from src/main/resources/images/countries/iq.png
rename to gui/src/main/resources/images/countries/iq.png
diff --git a/src/main/resources/images/countries/ir.png b/gui/src/main/resources/images/countries/ir.png
similarity index 100%
rename from src/main/resources/images/countries/ir.png
rename to gui/src/main/resources/images/countries/ir.png
diff --git a/src/main/resources/images/countries/is.png b/gui/src/main/resources/images/countries/is.png
similarity index 100%
rename from src/main/resources/images/countries/is.png
rename to gui/src/main/resources/images/countries/is.png
diff --git a/src/main/resources/images/countries/it.png b/gui/src/main/resources/images/countries/it.png
similarity index 100%
rename from src/main/resources/images/countries/it.png
rename to gui/src/main/resources/images/countries/it.png
diff --git a/src/main/resources/images/countries/jm.png b/gui/src/main/resources/images/countries/jm.png
similarity index 100%
rename from src/main/resources/images/countries/jm.png
rename to gui/src/main/resources/images/countries/jm.png
diff --git a/src/main/resources/images/countries/jo.png b/gui/src/main/resources/images/countries/jo.png
similarity index 100%
rename from src/main/resources/images/countries/jo.png
rename to gui/src/main/resources/images/countries/jo.png
diff --git a/src/main/resources/images/countries/jp.png b/gui/src/main/resources/images/countries/jp.png
similarity index 100%
rename from src/main/resources/images/countries/jp.png
rename to gui/src/main/resources/images/countries/jp.png
diff --git a/src/main/resources/images/countries/ke.png b/gui/src/main/resources/images/countries/ke.png
similarity index 100%
rename from src/main/resources/images/countries/ke.png
rename to gui/src/main/resources/images/countries/ke.png
diff --git a/src/main/resources/images/countries/kg.png b/gui/src/main/resources/images/countries/kg.png
similarity index 100%
rename from src/main/resources/images/countries/kg.png
rename to gui/src/main/resources/images/countries/kg.png
diff --git a/src/main/resources/images/countries/kh.png b/gui/src/main/resources/images/countries/kh.png
similarity index 100%
rename from src/main/resources/images/countries/kh.png
rename to gui/src/main/resources/images/countries/kh.png
diff --git a/src/main/resources/images/countries/ki.png b/gui/src/main/resources/images/countries/ki.png
similarity index 100%
rename from src/main/resources/images/countries/ki.png
rename to gui/src/main/resources/images/countries/ki.png
diff --git a/src/main/resources/images/countries/km.png b/gui/src/main/resources/images/countries/km.png
similarity index 100%
rename from src/main/resources/images/countries/km.png
rename to gui/src/main/resources/images/countries/km.png
diff --git a/src/main/resources/images/countries/kn.png b/gui/src/main/resources/images/countries/kn.png
similarity index 100%
rename from src/main/resources/images/countries/kn.png
rename to gui/src/main/resources/images/countries/kn.png
diff --git a/src/main/resources/images/countries/kp.png b/gui/src/main/resources/images/countries/kp.png
similarity index 100%
rename from src/main/resources/images/countries/kp.png
rename to gui/src/main/resources/images/countries/kp.png
diff --git a/src/main/resources/images/countries/kr.png b/gui/src/main/resources/images/countries/kr.png
similarity index 100%
rename from src/main/resources/images/countries/kr.png
rename to gui/src/main/resources/images/countries/kr.png
diff --git a/src/main/resources/images/countries/kw.png b/gui/src/main/resources/images/countries/kw.png
similarity index 100%
rename from src/main/resources/images/countries/kw.png
rename to gui/src/main/resources/images/countries/kw.png
diff --git a/src/main/resources/images/countries/ky.png b/gui/src/main/resources/images/countries/ky.png
similarity index 100%
rename from src/main/resources/images/countries/ky.png
rename to gui/src/main/resources/images/countries/ky.png
diff --git a/src/main/resources/images/countries/kz.png b/gui/src/main/resources/images/countries/kz.png
similarity index 100%
rename from src/main/resources/images/countries/kz.png
rename to gui/src/main/resources/images/countries/kz.png
diff --git a/src/main/resources/images/countries/la.png b/gui/src/main/resources/images/countries/la.png
similarity index 100%
rename from src/main/resources/images/countries/la.png
rename to gui/src/main/resources/images/countries/la.png
diff --git a/src/main/resources/images/countries/lb.png b/gui/src/main/resources/images/countries/lb.png
similarity index 100%
rename from src/main/resources/images/countries/lb.png
rename to gui/src/main/resources/images/countries/lb.png
diff --git a/src/main/resources/images/countries/lc.png b/gui/src/main/resources/images/countries/lc.png
similarity index 100%
rename from src/main/resources/images/countries/lc.png
rename to gui/src/main/resources/images/countries/lc.png
diff --git a/src/main/resources/images/countries/li.png b/gui/src/main/resources/images/countries/li.png
similarity index 100%
rename from src/main/resources/images/countries/li.png
rename to gui/src/main/resources/images/countries/li.png
diff --git a/src/main/resources/images/countries/lk.png b/gui/src/main/resources/images/countries/lk.png
similarity index 100%
rename from src/main/resources/images/countries/lk.png
rename to gui/src/main/resources/images/countries/lk.png
diff --git a/src/main/resources/images/countries/lr.png b/gui/src/main/resources/images/countries/lr.png
similarity index 100%
rename from src/main/resources/images/countries/lr.png
rename to gui/src/main/resources/images/countries/lr.png
diff --git a/src/main/resources/images/countries/ls.png b/gui/src/main/resources/images/countries/ls.png
similarity index 100%
rename from src/main/resources/images/countries/ls.png
rename to gui/src/main/resources/images/countries/ls.png
diff --git a/src/main/resources/images/countries/lt.png b/gui/src/main/resources/images/countries/lt.png
similarity index 100%
rename from src/main/resources/images/countries/lt.png
rename to gui/src/main/resources/images/countries/lt.png
diff --git a/src/main/resources/images/countries/lu.png b/gui/src/main/resources/images/countries/lu.png
similarity index 100%
rename from src/main/resources/images/countries/lu.png
rename to gui/src/main/resources/images/countries/lu.png
diff --git a/src/main/resources/images/countries/lv.png b/gui/src/main/resources/images/countries/lv.png
similarity index 100%
rename from src/main/resources/images/countries/lv.png
rename to gui/src/main/resources/images/countries/lv.png
diff --git a/src/main/resources/images/countries/ly.png b/gui/src/main/resources/images/countries/ly.png
similarity index 100%
rename from src/main/resources/images/countries/ly.png
rename to gui/src/main/resources/images/countries/ly.png
diff --git a/src/main/resources/images/countries/ma.png b/gui/src/main/resources/images/countries/ma.png
similarity index 100%
rename from src/main/resources/images/countries/ma.png
rename to gui/src/main/resources/images/countries/ma.png
diff --git a/src/main/resources/images/countries/mc.png b/gui/src/main/resources/images/countries/mc.png
similarity index 100%
rename from src/main/resources/images/countries/mc.png
rename to gui/src/main/resources/images/countries/mc.png
diff --git a/src/main/resources/images/countries/md.png b/gui/src/main/resources/images/countries/md.png
similarity index 100%
rename from src/main/resources/images/countries/md.png
rename to gui/src/main/resources/images/countries/md.png
diff --git a/src/main/resources/images/countries/me.png b/gui/src/main/resources/images/countries/me.png
similarity index 100%
rename from src/main/resources/images/countries/me.png
rename to gui/src/main/resources/images/countries/me.png
diff --git a/src/main/resources/images/countries/mg.png b/gui/src/main/resources/images/countries/mg.png
similarity index 100%
rename from src/main/resources/images/countries/mg.png
rename to gui/src/main/resources/images/countries/mg.png
diff --git a/src/main/resources/images/countries/mh.png b/gui/src/main/resources/images/countries/mh.png
similarity index 100%
rename from src/main/resources/images/countries/mh.png
rename to gui/src/main/resources/images/countries/mh.png
diff --git a/src/main/resources/images/countries/mk.png b/gui/src/main/resources/images/countries/mk.png
similarity index 100%
rename from src/main/resources/images/countries/mk.png
rename to gui/src/main/resources/images/countries/mk.png
diff --git a/src/main/resources/images/countries/ml.png b/gui/src/main/resources/images/countries/ml.png
similarity index 100%
rename from src/main/resources/images/countries/ml.png
rename to gui/src/main/resources/images/countries/ml.png
diff --git a/src/main/resources/images/countries/mm.png b/gui/src/main/resources/images/countries/mm.png
similarity index 100%
rename from src/main/resources/images/countries/mm.png
rename to gui/src/main/resources/images/countries/mm.png
diff --git a/src/main/resources/images/countries/mn.png b/gui/src/main/resources/images/countries/mn.png
similarity index 100%
rename from src/main/resources/images/countries/mn.png
rename to gui/src/main/resources/images/countries/mn.png
diff --git a/src/main/resources/images/countries/mo.png b/gui/src/main/resources/images/countries/mo.png
similarity index 100%
rename from src/main/resources/images/countries/mo.png
rename to gui/src/main/resources/images/countries/mo.png
diff --git a/src/main/resources/images/countries/mp.png b/gui/src/main/resources/images/countries/mp.png
similarity index 100%
rename from src/main/resources/images/countries/mp.png
rename to gui/src/main/resources/images/countries/mp.png
diff --git a/src/main/resources/images/countries/mq.png b/gui/src/main/resources/images/countries/mq.png
similarity index 100%
rename from src/main/resources/images/countries/mq.png
rename to gui/src/main/resources/images/countries/mq.png
diff --git a/src/main/resources/images/countries/mr.png b/gui/src/main/resources/images/countries/mr.png
similarity index 100%
rename from src/main/resources/images/countries/mr.png
rename to gui/src/main/resources/images/countries/mr.png
diff --git a/src/main/resources/images/countries/ms.png b/gui/src/main/resources/images/countries/ms.png
similarity index 100%
rename from src/main/resources/images/countries/ms.png
rename to gui/src/main/resources/images/countries/ms.png
diff --git a/src/main/resources/images/countries/mt.png b/gui/src/main/resources/images/countries/mt.png
similarity index 100%
rename from src/main/resources/images/countries/mt.png
rename to gui/src/main/resources/images/countries/mt.png
diff --git a/src/main/resources/images/countries/mu.png b/gui/src/main/resources/images/countries/mu.png
similarity index 100%
rename from src/main/resources/images/countries/mu.png
rename to gui/src/main/resources/images/countries/mu.png
diff --git a/src/main/resources/images/countries/mv.png b/gui/src/main/resources/images/countries/mv.png
similarity index 100%
rename from src/main/resources/images/countries/mv.png
rename to gui/src/main/resources/images/countries/mv.png
diff --git a/src/main/resources/images/countries/mw.png b/gui/src/main/resources/images/countries/mw.png
similarity index 100%
rename from src/main/resources/images/countries/mw.png
rename to gui/src/main/resources/images/countries/mw.png
diff --git a/src/main/resources/images/countries/mx.png b/gui/src/main/resources/images/countries/mx.png
similarity index 100%
rename from src/main/resources/images/countries/mx.png
rename to gui/src/main/resources/images/countries/mx.png
diff --git a/src/main/resources/images/countries/my.png b/gui/src/main/resources/images/countries/my.png
similarity index 100%
rename from src/main/resources/images/countries/my.png
rename to gui/src/main/resources/images/countries/my.png
diff --git a/src/main/resources/images/countries/mz.png b/gui/src/main/resources/images/countries/mz.png
similarity index 100%
rename from src/main/resources/images/countries/mz.png
rename to gui/src/main/resources/images/countries/mz.png
diff --git a/src/main/resources/images/countries/na.png b/gui/src/main/resources/images/countries/na.png
similarity index 100%
rename from src/main/resources/images/countries/na.png
rename to gui/src/main/resources/images/countries/na.png
diff --git a/src/main/resources/images/countries/nc.png b/gui/src/main/resources/images/countries/nc.png
similarity index 100%
rename from src/main/resources/images/countries/nc.png
rename to gui/src/main/resources/images/countries/nc.png
diff --git a/src/main/resources/images/countries/ne.png b/gui/src/main/resources/images/countries/ne.png
similarity index 100%
rename from src/main/resources/images/countries/ne.png
rename to gui/src/main/resources/images/countries/ne.png
diff --git a/src/main/resources/images/countries/nf.png b/gui/src/main/resources/images/countries/nf.png
similarity index 100%
rename from src/main/resources/images/countries/nf.png
rename to gui/src/main/resources/images/countries/nf.png
diff --git a/src/main/resources/images/countries/ng.png b/gui/src/main/resources/images/countries/ng.png
similarity index 100%
rename from src/main/resources/images/countries/ng.png
rename to gui/src/main/resources/images/countries/ng.png
diff --git a/src/main/resources/images/countries/ni.png b/gui/src/main/resources/images/countries/ni.png
similarity index 100%
rename from src/main/resources/images/countries/ni.png
rename to gui/src/main/resources/images/countries/ni.png
diff --git a/src/main/resources/images/countries/nl.png b/gui/src/main/resources/images/countries/nl.png
similarity index 100%
rename from src/main/resources/images/countries/nl.png
rename to gui/src/main/resources/images/countries/nl.png
diff --git a/src/main/resources/images/countries/no.png b/gui/src/main/resources/images/countries/no.png
similarity index 100%
rename from src/main/resources/images/countries/no.png
rename to gui/src/main/resources/images/countries/no.png
diff --git a/src/main/resources/images/countries/np.png b/gui/src/main/resources/images/countries/np.png
similarity index 100%
rename from src/main/resources/images/countries/np.png
rename to gui/src/main/resources/images/countries/np.png
diff --git a/src/main/resources/images/countries/nr.png b/gui/src/main/resources/images/countries/nr.png
similarity index 100%
rename from src/main/resources/images/countries/nr.png
rename to gui/src/main/resources/images/countries/nr.png
diff --git a/src/main/resources/images/countries/nu.png b/gui/src/main/resources/images/countries/nu.png
similarity index 100%
rename from src/main/resources/images/countries/nu.png
rename to gui/src/main/resources/images/countries/nu.png
diff --git a/src/main/resources/images/countries/nz.png b/gui/src/main/resources/images/countries/nz.png
similarity index 100%
rename from src/main/resources/images/countries/nz.png
rename to gui/src/main/resources/images/countries/nz.png
diff --git a/src/main/resources/images/countries/om.png b/gui/src/main/resources/images/countries/om.png
similarity index 100%
rename from src/main/resources/images/countries/om.png
rename to gui/src/main/resources/images/countries/om.png
diff --git a/src/main/resources/images/countries/pa.png b/gui/src/main/resources/images/countries/pa.png
similarity index 100%
rename from src/main/resources/images/countries/pa.png
rename to gui/src/main/resources/images/countries/pa.png
diff --git a/src/main/resources/images/countries/pe.png b/gui/src/main/resources/images/countries/pe.png
similarity index 100%
rename from src/main/resources/images/countries/pe.png
rename to gui/src/main/resources/images/countries/pe.png
diff --git a/src/main/resources/images/countries/pf.png b/gui/src/main/resources/images/countries/pf.png
similarity index 100%
rename from src/main/resources/images/countries/pf.png
rename to gui/src/main/resources/images/countries/pf.png
diff --git a/src/main/resources/images/countries/pg.png b/gui/src/main/resources/images/countries/pg.png
similarity index 100%
rename from src/main/resources/images/countries/pg.png
rename to gui/src/main/resources/images/countries/pg.png
diff --git a/src/main/resources/images/countries/ph.png b/gui/src/main/resources/images/countries/ph.png
similarity index 100%
rename from src/main/resources/images/countries/ph.png
rename to gui/src/main/resources/images/countries/ph.png
diff --git a/src/main/resources/images/countries/pk.png b/gui/src/main/resources/images/countries/pk.png
similarity index 100%
rename from src/main/resources/images/countries/pk.png
rename to gui/src/main/resources/images/countries/pk.png
diff --git a/src/main/resources/images/countries/pl.png b/gui/src/main/resources/images/countries/pl.png
similarity index 100%
rename from src/main/resources/images/countries/pl.png
rename to gui/src/main/resources/images/countries/pl.png
diff --git a/src/main/resources/images/countries/pm.png b/gui/src/main/resources/images/countries/pm.png
similarity index 100%
rename from src/main/resources/images/countries/pm.png
rename to gui/src/main/resources/images/countries/pm.png
diff --git a/src/main/resources/images/countries/pn.png b/gui/src/main/resources/images/countries/pn.png
similarity index 100%
rename from src/main/resources/images/countries/pn.png
rename to gui/src/main/resources/images/countries/pn.png
diff --git a/src/main/resources/images/countries/pr.png b/gui/src/main/resources/images/countries/pr.png
similarity index 100%
rename from src/main/resources/images/countries/pr.png
rename to gui/src/main/resources/images/countries/pr.png
diff --git a/src/main/resources/images/countries/ps.png b/gui/src/main/resources/images/countries/ps.png
similarity index 100%
rename from src/main/resources/images/countries/ps.png
rename to gui/src/main/resources/images/countries/ps.png
diff --git a/src/main/resources/images/countries/pt.png b/gui/src/main/resources/images/countries/pt.png
similarity index 100%
rename from src/main/resources/images/countries/pt.png
rename to gui/src/main/resources/images/countries/pt.png
diff --git a/src/main/resources/images/countries/pw.png b/gui/src/main/resources/images/countries/pw.png
similarity index 100%
rename from src/main/resources/images/countries/pw.png
rename to gui/src/main/resources/images/countries/pw.png
diff --git a/src/main/resources/images/countries/py.png b/gui/src/main/resources/images/countries/py.png
similarity index 100%
rename from src/main/resources/images/countries/py.png
rename to gui/src/main/resources/images/countries/py.png
diff --git a/src/main/resources/images/countries/qa.png b/gui/src/main/resources/images/countries/qa.png
similarity index 100%
rename from src/main/resources/images/countries/qa.png
rename to gui/src/main/resources/images/countries/qa.png
diff --git a/src/main/resources/images/countries/re.png b/gui/src/main/resources/images/countries/re.png
similarity index 100%
rename from src/main/resources/images/countries/re.png
rename to gui/src/main/resources/images/countries/re.png
diff --git a/src/main/resources/images/countries/ro.png b/gui/src/main/resources/images/countries/ro.png
similarity index 100%
rename from src/main/resources/images/countries/ro.png
rename to gui/src/main/resources/images/countries/ro.png
diff --git a/src/main/resources/images/countries/rs.png b/gui/src/main/resources/images/countries/rs.png
similarity index 100%
rename from src/main/resources/images/countries/rs.png
rename to gui/src/main/resources/images/countries/rs.png
diff --git a/src/main/resources/images/countries/ru.png b/gui/src/main/resources/images/countries/ru.png
similarity index 100%
rename from src/main/resources/images/countries/ru.png
rename to gui/src/main/resources/images/countries/ru.png
diff --git a/src/main/resources/images/countries/rw.png b/gui/src/main/resources/images/countries/rw.png
similarity index 100%
rename from src/main/resources/images/countries/rw.png
rename to gui/src/main/resources/images/countries/rw.png
diff --git a/src/main/resources/images/countries/sa.png b/gui/src/main/resources/images/countries/sa.png
similarity index 100%
rename from src/main/resources/images/countries/sa.png
rename to gui/src/main/resources/images/countries/sa.png
diff --git a/src/main/resources/images/countries/sb.png b/gui/src/main/resources/images/countries/sb.png
similarity index 100%
rename from src/main/resources/images/countries/sb.png
rename to gui/src/main/resources/images/countries/sb.png
diff --git a/src/main/resources/images/countries/sc.png b/gui/src/main/resources/images/countries/sc.png
similarity index 100%
rename from src/main/resources/images/countries/sc.png
rename to gui/src/main/resources/images/countries/sc.png
diff --git a/src/main/resources/images/countries/scotland.png b/gui/src/main/resources/images/countries/scotland.png
similarity index 100%
rename from src/main/resources/images/countries/scotland.png
rename to gui/src/main/resources/images/countries/scotland.png
diff --git a/src/main/resources/images/countries/sd.png b/gui/src/main/resources/images/countries/sd.png
similarity index 100%
rename from src/main/resources/images/countries/sd.png
rename to gui/src/main/resources/images/countries/sd.png
diff --git a/src/main/resources/images/countries/se.png b/gui/src/main/resources/images/countries/se.png
similarity index 100%
rename from src/main/resources/images/countries/se.png
rename to gui/src/main/resources/images/countries/se.png
diff --git a/src/main/resources/images/countries/sg.png b/gui/src/main/resources/images/countries/sg.png
similarity index 100%
rename from src/main/resources/images/countries/sg.png
rename to gui/src/main/resources/images/countries/sg.png
diff --git a/src/main/resources/images/countries/sh.png b/gui/src/main/resources/images/countries/sh.png
similarity index 100%
rename from src/main/resources/images/countries/sh.png
rename to gui/src/main/resources/images/countries/sh.png
diff --git a/src/main/resources/images/countries/si.png b/gui/src/main/resources/images/countries/si.png
similarity index 100%
rename from src/main/resources/images/countries/si.png
rename to gui/src/main/resources/images/countries/si.png
diff --git a/src/main/resources/images/countries/sj.png b/gui/src/main/resources/images/countries/sj.png
similarity index 100%
rename from src/main/resources/images/countries/sj.png
rename to gui/src/main/resources/images/countries/sj.png
diff --git a/src/main/resources/images/countries/sk.png b/gui/src/main/resources/images/countries/sk.png
similarity index 100%
rename from src/main/resources/images/countries/sk.png
rename to gui/src/main/resources/images/countries/sk.png
diff --git a/src/main/resources/images/countries/sl.png b/gui/src/main/resources/images/countries/sl.png
similarity index 100%
rename from src/main/resources/images/countries/sl.png
rename to gui/src/main/resources/images/countries/sl.png
diff --git a/src/main/resources/images/countries/sm.png b/gui/src/main/resources/images/countries/sm.png
similarity index 100%
rename from src/main/resources/images/countries/sm.png
rename to gui/src/main/resources/images/countries/sm.png
diff --git a/src/main/resources/images/countries/sn.png b/gui/src/main/resources/images/countries/sn.png
similarity index 100%
rename from src/main/resources/images/countries/sn.png
rename to gui/src/main/resources/images/countries/sn.png
diff --git a/src/main/resources/images/countries/so.png b/gui/src/main/resources/images/countries/so.png
similarity index 100%
rename from src/main/resources/images/countries/so.png
rename to gui/src/main/resources/images/countries/so.png
diff --git a/src/main/resources/images/countries/sr.png b/gui/src/main/resources/images/countries/sr.png
similarity index 100%
rename from src/main/resources/images/countries/sr.png
rename to gui/src/main/resources/images/countries/sr.png
diff --git a/src/main/resources/images/countries/st.png b/gui/src/main/resources/images/countries/st.png
similarity index 100%
rename from src/main/resources/images/countries/st.png
rename to gui/src/main/resources/images/countries/st.png
diff --git a/src/main/resources/images/countries/sv.png b/gui/src/main/resources/images/countries/sv.png
similarity index 100%
rename from src/main/resources/images/countries/sv.png
rename to gui/src/main/resources/images/countries/sv.png
diff --git a/src/main/resources/images/countries/sy.png b/gui/src/main/resources/images/countries/sy.png
similarity index 100%
rename from src/main/resources/images/countries/sy.png
rename to gui/src/main/resources/images/countries/sy.png
diff --git a/src/main/resources/images/countries/sz.png b/gui/src/main/resources/images/countries/sz.png
similarity index 100%
rename from src/main/resources/images/countries/sz.png
rename to gui/src/main/resources/images/countries/sz.png
diff --git a/src/main/resources/images/countries/tc.png b/gui/src/main/resources/images/countries/tc.png
similarity index 100%
rename from src/main/resources/images/countries/tc.png
rename to gui/src/main/resources/images/countries/tc.png
diff --git a/src/main/resources/images/countries/td.png b/gui/src/main/resources/images/countries/td.png
similarity index 100%
rename from src/main/resources/images/countries/td.png
rename to gui/src/main/resources/images/countries/td.png
diff --git a/src/main/resources/images/countries/tf.png b/gui/src/main/resources/images/countries/tf.png
similarity index 100%
rename from src/main/resources/images/countries/tf.png
rename to gui/src/main/resources/images/countries/tf.png
diff --git a/src/main/resources/images/countries/tg.png b/gui/src/main/resources/images/countries/tg.png
similarity index 100%
rename from src/main/resources/images/countries/tg.png
rename to gui/src/main/resources/images/countries/tg.png
diff --git a/src/main/resources/images/countries/th.png b/gui/src/main/resources/images/countries/th.png
similarity index 100%
rename from src/main/resources/images/countries/th.png
rename to gui/src/main/resources/images/countries/th.png
diff --git a/src/main/resources/images/countries/tj.png b/gui/src/main/resources/images/countries/tj.png
similarity index 100%
rename from src/main/resources/images/countries/tj.png
rename to gui/src/main/resources/images/countries/tj.png
diff --git a/src/main/resources/images/countries/tk.png b/gui/src/main/resources/images/countries/tk.png
similarity index 100%
rename from src/main/resources/images/countries/tk.png
rename to gui/src/main/resources/images/countries/tk.png
diff --git a/src/main/resources/images/countries/tl.png b/gui/src/main/resources/images/countries/tl.png
similarity index 100%
rename from src/main/resources/images/countries/tl.png
rename to gui/src/main/resources/images/countries/tl.png
diff --git a/src/main/resources/images/countries/tm.png b/gui/src/main/resources/images/countries/tm.png
similarity index 100%
rename from src/main/resources/images/countries/tm.png
rename to gui/src/main/resources/images/countries/tm.png
diff --git a/src/main/resources/images/countries/tn.png b/gui/src/main/resources/images/countries/tn.png
similarity index 100%
rename from src/main/resources/images/countries/tn.png
rename to gui/src/main/resources/images/countries/tn.png
diff --git a/src/main/resources/images/countries/to.png b/gui/src/main/resources/images/countries/to.png
similarity index 100%
rename from src/main/resources/images/countries/to.png
rename to gui/src/main/resources/images/countries/to.png
diff --git a/src/main/resources/images/countries/tr.png b/gui/src/main/resources/images/countries/tr.png
similarity index 100%
rename from src/main/resources/images/countries/tr.png
rename to gui/src/main/resources/images/countries/tr.png
diff --git a/src/main/resources/images/countries/tt.png b/gui/src/main/resources/images/countries/tt.png
similarity index 100%
rename from src/main/resources/images/countries/tt.png
rename to gui/src/main/resources/images/countries/tt.png
diff --git a/src/main/resources/images/countries/tv.png b/gui/src/main/resources/images/countries/tv.png
similarity index 100%
rename from src/main/resources/images/countries/tv.png
rename to gui/src/main/resources/images/countries/tv.png
diff --git a/src/main/resources/images/countries/tw.png b/gui/src/main/resources/images/countries/tw.png
similarity index 100%
rename from src/main/resources/images/countries/tw.png
rename to gui/src/main/resources/images/countries/tw.png
diff --git a/src/main/resources/images/countries/tz.png b/gui/src/main/resources/images/countries/tz.png
similarity index 100%
rename from src/main/resources/images/countries/tz.png
rename to gui/src/main/resources/images/countries/tz.png
diff --git a/src/main/resources/images/countries/ua.png b/gui/src/main/resources/images/countries/ua.png
similarity index 100%
rename from src/main/resources/images/countries/ua.png
rename to gui/src/main/resources/images/countries/ua.png
diff --git a/src/main/resources/images/countries/ug.png b/gui/src/main/resources/images/countries/ug.png
similarity index 100%
rename from src/main/resources/images/countries/ug.png
rename to gui/src/main/resources/images/countries/ug.png
diff --git a/src/main/resources/images/countries/uk.png b/gui/src/main/resources/images/countries/uk.png
similarity index 100%
rename from src/main/resources/images/countries/uk.png
rename to gui/src/main/resources/images/countries/uk.png
diff --git a/src/main/resources/images/countries/um.png b/gui/src/main/resources/images/countries/um.png
similarity index 100%
rename from src/main/resources/images/countries/um.png
rename to gui/src/main/resources/images/countries/um.png
diff --git a/src/main/resources/images/countries/us.png b/gui/src/main/resources/images/countries/us.png
similarity index 100%
rename from src/main/resources/images/countries/us.png
rename to gui/src/main/resources/images/countries/us.png
diff --git a/src/main/resources/images/countries/uy.png b/gui/src/main/resources/images/countries/uy.png
similarity index 100%
rename from src/main/resources/images/countries/uy.png
rename to gui/src/main/resources/images/countries/uy.png
diff --git a/src/main/resources/images/countries/uz.png b/gui/src/main/resources/images/countries/uz.png
similarity index 100%
rename from src/main/resources/images/countries/uz.png
rename to gui/src/main/resources/images/countries/uz.png
diff --git a/src/main/resources/images/countries/va.png b/gui/src/main/resources/images/countries/va.png
similarity index 100%
rename from src/main/resources/images/countries/va.png
rename to gui/src/main/resources/images/countries/va.png
diff --git a/src/main/resources/images/countries/vc.png b/gui/src/main/resources/images/countries/vc.png
similarity index 100%
rename from src/main/resources/images/countries/vc.png
rename to gui/src/main/resources/images/countries/vc.png
diff --git a/src/main/resources/images/countries/ve.png b/gui/src/main/resources/images/countries/ve.png
similarity index 100%
rename from src/main/resources/images/countries/ve.png
rename to gui/src/main/resources/images/countries/ve.png
diff --git a/src/main/resources/images/countries/vg.png b/gui/src/main/resources/images/countries/vg.png
similarity index 100%
rename from src/main/resources/images/countries/vg.png
rename to gui/src/main/resources/images/countries/vg.png
diff --git a/src/main/resources/images/countries/vi.png b/gui/src/main/resources/images/countries/vi.png
similarity index 100%
rename from src/main/resources/images/countries/vi.png
rename to gui/src/main/resources/images/countries/vi.png
diff --git a/src/main/resources/images/countries/vn.png b/gui/src/main/resources/images/countries/vn.png
similarity index 100%
rename from src/main/resources/images/countries/vn.png
rename to gui/src/main/resources/images/countries/vn.png
diff --git a/src/main/resources/images/countries/vu.png b/gui/src/main/resources/images/countries/vu.png
similarity index 100%
rename from src/main/resources/images/countries/vu.png
rename to gui/src/main/resources/images/countries/vu.png
diff --git a/src/main/resources/images/countries/wales.png b/gui/src/main/resources/images/countries/wales.png
similarity index 100%
rename from src/main/resources/images/countries/wales.png
rename to gui/src/main/resources/images/countries/wales.png
diff --git a/src/main/resources/images/countries/wf.png b/gui/src/main/resources/images/countries/wf.png
similarity index 100%
rename from src/main/resources/images/countries/wf.png
rename to gui/src/main/resources/images/countries/wf.png
diff --git a/src/main/resources/images/countries/ws.png b/gui/src/main/resources/images/countries/ws.png
similarity index 100%
rename from src/main/resources/images/countries/ws.png
rename to gui/src/main/resources/images/countries/ws.png
diff --git a/src/main/resources/images/countries/ye.png b/gui/src/main/resources/images/countries/ye.png
similarity index 100%
rename from src/main/resources/images/countries/ye.png
rename to gui/src/main/resources/images/countries/ye.png
diff --git a/src/main/resources/images/countries/yt.png b/gui/src/main/resources/images/countries/yt.png
similarity index 100%
rename from src/main/resources/images/countries/yt.png
rename to gui/src/main/resources/images/countries/yt.png
diff --git a/src/main/resources/images/countries/za.png b/gui/src/main/resources/images/countries/za.png
similarity index 100%
rename from src/main/resources/images/countries/za.png
rename to gui/src/main/resources/images/countries/za.png
diff --git a/src/main/resources/images/countries/zm.png b/gui/src/main/resources/images/countries/zm.png
similarity index 100%
rename from src/main/resources/images/countries/zm.png
rename to gui/src/main/resources/images/countries/zm.png
diff --git a/src/main/resources/images/countries/zw.png b/gui/src/main/resources/images/countries/zw.png
similarity index 100%
rename from src/main/resources/images/countries/zw.png
rename to gui/src/main/resources/images/countries/zw.png
diff --git a/src/main/resources/images/expand.png b/gui/src/main/resources/images/expand.png
similarity index 100%
rename from src/main/resources/images/expand.png
rename to gui/src/main/resources/images/expand.png
diff --git a/src/main/resources/images/expand@2x.png b/gui/src/main/resources/images/expand@2x.png
similarity index 100%
rename from src/main/resources/images/expand@2x.png
rename to gui/src/main/resources/images/expand@2x.png
diff --git a/src/main/resources/images/info.png b/gui/src/main/resources/images/info.png
similarity index 100%
rename from src/main/resources/images/info.png
rename to gui/src/main/resources/images/info.png
diff --git a/src/main/resources/images/info@2x.png b/gui/src/main/resources/images/info@2x.png
similarity index 100%
rename from src/main/resources/images/info@2x.png
rename to gui/src/main/resources/images/info@2x.png
diff --git a/src/main/resources/images/logo_splash.png b/gui/src/main/resources/images/logo_splash.png
similarity index 100%
rename from src/main/resources/images/logo_splash.png
rename to gui/src/main/resources/images/logo_splash.png
diff --git a/src/main/resources/images/logo_splash@2x.png b/gui/src/main/resources/images/logo_splash@2x.png
similarity index 100%
rename from src/main/resources/images/logo_splash@2x.png
rename to gui/src/main/resources/images/logo_splash@2x.png
diff --git a/src/main/resources/images/nav/account.png b/gui/src/main/resources/images/nav/account.png
similarity index 100%
rename from src/main/resources/images/nav/account.png
rename to gui/src/main/resources/images/nav/account.png
diff --git a/src/main/resources/images/nav/account@2x.png b/gui/src/main/resources/images/nav/account@2x.png
similarity index 100%
rename from src/main/resources/images/nav/account@2x.png
rename to gui/src/main/resources/images/nav/account@2x.png
diff --git a/src/main/resources/images/nav/account_active.png b/gui/src/main/resources/images/nav/account_active.png
similarity index 100%
rename from src/main/resources/images/nav/account_active.png
rename to gui/src/main/resources/images/nav/account_active.png
diff --git a/src/main/resources/images/nav/account_active@2x.png b/gui/src/main/resources/images/nav/account_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/account_active@2x.png
rename to gui/src/main/resources/images/nav/account_active@2x.png
diff --git a/src/main/resources/images/nav/buy.png b/gui/src/main/resources/images/nav/buy.png
similarity index 100%
rename from src/main/resources/images/nav/buy.png
rename to gui/src/main/resources/images/nav/buy.png
diff --git a/src/main/resources/images/nav/buy@2x.png b/gui/src/main/resources/images/nav/buy@2x.png
similarity index 100%
rename from src/main/resources/images/nav/buy@2x.png
rename to gui/src/main/resources/images/nav/buy@2x.png
diff --git a/src/main/resources/images/nav/buy_active.png b/gui/src/main/resources/images/nav/buy_active.png
similarity index 100%
rename from src/main/resources/images/nav/buy_active.png
rename to gui/src/main/resources/images/nav/buy_active.png
diff --git a/src/main/resources/images/nav/buy_active@2x.png b/gui/src/main/resources/images/nav/buy_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/buy_active@2x.png
rename to gui/src/main/resources/images/nav/buy_active@2x.png
diff --git a/src/main/resources/images/nav/funds.png b/gui/src/main/resources/images/nav/funds.png
similarity index 100%
rename from src/main/resources/images/nav/funds.png
rename to gui/src/main/resources/images/nav/funds.png
diff --git a/src/main/resources/images/nav/funds@2x.png b/gui/src/main/resources/images/nav/funds@2x.png
similarity index 100%
rename from src/main/resources/images/nav/funds@2x.png
rename to gui/src/main/resources/images/nav/funds@2x.png
diff --git a/src/main/resources/images/nav/funds_active.png b/gui/src/main/resources/images/nav/funds_active.png
similarity index 100%
rename from src/main/resources/images/nav/funds_active.png
rename to gui/src/main/resources/images/nav/funds_active.png
diff --git a/src/main/resources/images/nav/funds_active@2x.png b/gui/src/main/resources/images/nav/funds_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/funds_active@2x.png
rename to gui/src/main/resources/images/nav/funds_active@2x.png
diff --git a/src/main/resources/images/nav/home.png b/gui/src/main/resources/images/nav/home.png
similarity index 100%
rename from src/main/resources/images/nav/home.png
rename to gui/src/main/resources/images/nav/home.png
diff --git a/src/main/resources/images/nav/home@2x.png b/gui/src/main/resources/images/nav/home@2x.png
similarity index 100%
rename from src/main/resources/images/nav/home@2x.png
rename to gui/src/main/resources/images/nav/home@2x.png
diff --git a/src/main/resources/images/nav/home_active.png b/gui/src/main/resources/images/nav/home_active.png
similarity index 100%
rename from src/main/resources/images/nav/home_active.png
rename to gui/src/main/resources/images/nav/home_active.png
diff --git a/src/main/resources/images/nav/home_active@2x.png b/gui/src/main/resources/images/nav/home_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/home_active@2x.png
rename to gui/src/main/resources/images/nav/home_active@2x.png
diff --git a/src/main/resources/images/nav/msg.png b/gui/src/main/resources/images/nav/msg.png
similarity index 100%
rename from src/main/resources/images/nav/msg.png
rename to gui/src/main/resources/images/nav/msg.png
diff --git a/src/main/resources/images/nav/msg@2x.png b/gui/src/main/resources/images/nav/msg@2x.png
similarity index 100%
rename from src/main/resources/images/nav/msg@2x.png
rename to gui/src/main/resources/images/nav/msg@2x.png
diff --git a/src/main/resources/images/nav/msg_active.png b/gui/src/main/resources/images/nav/msg_active.png
similarity index 100%
rename from src/main/resources/images/nav/msg_active.png
rename to gui/src/main/resources/images/nav/msg_active.png
diff --git a/src/main/resources/images/nav/msg_active@2x.png b/gui/src/main/resources/images/nav/msg_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/msg_active@2x.png
rename to gui/src/main/resources/images/nav/msg_active@2x.png
diff --git a/src/main/resources/images/nav/portfolio.png b/gui/src/main/resources/images/nav/portfolio.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio.png
rename to gui/src/main/resources/images/nav/portfolio.png
diff --git a/src/main/resources/images/nav/portfolio@2x.png b/gui/src/main/resources/images/nav/portfolio@2x.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio@2x.png
rename to gui/src/main/resources/images/nav/portfolio@2x.png
diff --git a/src/main/resources/images/nav/portfolio_active.png b/gui/src/main/resources/images/nav/portfolio_active.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio_active.png
rename to gui/src/main/resources/images/nav/portfolio_active.png
diff --git a/src/main/resources/images/nav/portfolio_active@2x.png b/gui/src/main/resources/images/nav/portfolio_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/portfolio_active@2x.png
rename to gui/src/main/resources/images/nav/portfolio_active@2x.png
diff --git a/src/main/resources/images/nav/sell.png b/gui/src/main/resources/images/nav/sell.png
similarity index 100%
rename from src/main/resources/images/nav/sell.png
rename to gui/src/main/resources/images/nav/sell.png
diff --git a/src/main/resources/images/nav/sell@2x.png b/gui/src/main/resources/images/nav/sell@2x.png
similarity index 100%
rename from src/main/resources/images/nav/sell@2x.png
rename to gui/src/main/resources/images/nav/sell@2x.png
diff --git a/src/main/resources/images/nav/sell_active.png b/gui/src/main/resources/images/nav/sell_active.png
similarity index 100%
rename from src/main/resources/images/nav/sell_active.png
rename to gui/src/main/resources/images/nav/sell_active.png
diff --git a/src/main/resources/images/nav/sell_active@2x.png b/gui/src/main/resources/images/nav/sell_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/sell_active@2x.png
rename to gui/src/main/resources/images/nav/sell_active@2x.png
diff --git a/src/main/resources/images/nav/settings.png b/gui/src/main/resources/images/nav/settings.png
similarity index 100%
rename from src/main/resources/images/nav/settings.png
rename to gui/src/main/resources/images/nav/settings.png
diff --git a/src/main/resources/images/nav/settings@2x.png b/gui/src/main/resources/images/nav/settings@2x.png
similarity index 100%
rename from src/main/resources/images/nav/settings@2x.png
rename to gui/src/main/resources/images/nav/settings@2x.png
diff --git a/src/main/resources/images/nav/settings_active.png b/gui/src/main/resources/images/nav/settings_active.png
similarity index 100%
rename from src/main/resources/images/nav/settings_active.png
rename to gui/src/main/resources/images/nav/settings_active.png
diff --git a/src/main/resources/images/nav/settings_active@2x.png b/gui/src/main/resources/images/nav/settings_active@2x.png
similarity index 100%
rename from src/main/resources/images/nav/settings_active@2x.png
rename to gui/src/main/resources/images/nav/settings_active@2x.png
diff --git a/src/main/resources/images/notification_logo.png b/gui/src/main/resources/images/notification_logo.png
similarity index 100%
rename from src/main/resources/images/notification_logo.png
rename to gui/src/main/resources/images/notification_logo.png
diff --git a/src/main/resources/images/notification_logo@2x.png b/gui/src/main/resources/images/notification_logo@2x.png
similarity index 100%
rename from src/main/resources/images/notification_logo@2x.png
rename to gui/src/main/resources/images/notification_logo@2x.png
diff --git a/src/main/resources/images/remove.png b/gui/src/main/resources/images/remove.png
similarity index 100%
rename from src/main/resources/images/remove.png
rename to gui/src/main/resources/images/remove.png
diff --git a/src/main/resources/images/remove@2x.png b/gui/src/main/resources/images/remove@2x.png
similarity index 100%
rename from src/main/resources/images/remove@2x.png
rename to gui/src/main/resources/images/remove@2x.png
diff --git a/src/main/resources/images/sell.png b/gui/src/main/resources/images/sell.png
similarity index 100%
rename from src/main/resources/images/sell.png
rename to gui/src/main/resources/images/sell.png
diff --git a/src/main/resources/images/sell@2x.png b/gui/src/main/resources/images/sell@2x.png
similarity index 100%
rename from src/main/resources/images/sell@2x.png
rename to gui/src/main/resources/images/sell@2x.png
diff --git a/src/main/resources/images/sell_large.png b/gui/src/main/resources/images/sell_large.png
similarity index 100%
rename from src/main/resources/images/sell_large.png
rename to gui/src/main/resources/images/sell_large.png
diff --git a/src/main/resources/images/sell_large@2x.png b/gui/src/main/resources/images/sell_large@2x.png
similarity index 100%
rename from src/main/resources/images/sell_large@2x.png
rename to gui/src/main/resources/images/sell_large@2x.png
diff --git a/src/main/resources/images/system_tray_icon.png b/gui/src/main/resources/images/system_tray_icon.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon.png
rename to gui/src/main/resources/images/system_tray_icon.png
diff --git a/src/main/resources/images/system_tray_icon@2x.png b/gui/src/main/resources/images/system_tray_icon@2x.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon@2x.png
rename to gui/src/main/resources/images/system_tray_icon@2x.png
diff --git a/src/main/resources/images/system_tray_icon_linux.png b/gui/src/main/resources/images/system_tray_icon_linux.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon_linux.png
rename to gui/src/main/resources/images/system_tray_icon_linux.png
diff --git a/src/main/resources/images/system_tray_icon_windows.png b/gui/src/main/resources/images/system_tray_icon_windows.png
similarity index 100%
rename from src/main/resources/images/system_tray_icon_windows.png
rename to gui/src/main/resources/images/system_tray_icon_windows.png
diff --git a/src/main/resources/images/task_bar_icon_linux.png b/gui/src/main/resources/images/task_bar_icon_linux.png
similarity index 100%
rename from src/main/resources/images/task_bar_icon_linux.png
rename to gui/src/main/resources/images/task_bar_icon_linux.png
diff --git a/src/main/resources/images/task_bar_icon_windows.png b/gui/src/main/resources/images/task_bar_icon_windows.png
similarity index 100%
rename from src/main/resources/images/task_bar_icon_windows.png
rename to gui/src/main/resources/images/task_bar_icon_windows.png
diff --git a/src/main/resources/images/tick.png b/gui/src/main/resources/images/tick.png
similarity index 100%
rename from src/main/resources/images/tick.png
rename to gui/src/main/resources/images/tick.png
diff --git a/src/main/resources/images/tick@2x.png b/gui/src/main/resources/images/tick@2x.png
similarity index 100%
rename from src/main/resources/images/tick@2x.png
rename to gui/src/main/resources/images/tick@2x.png
diff --git a/src/main/resources/images/update/update_available.png b/gui/src/main/resources/images/update/update_available.png
similarity index 100%
rename from src/main/resources/images/update/update_available.png
rename to gui/src/main/resources/images/update/update_available.png
diff --git a/src/main/resources/images/update/update_available@2x.png b/gui/src/main/resources/images/update/update_available@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_available@2x.png
rename to gui/src/main/resources/images/update/update_available@2x.png
diff --git a/src/main/resources/images/update/update_failed.png b/gui/src/main/resources/images/update/update_failed.png
similarity index 100%
rename from src/main/resources/images/update/update_failed.png
rename to gui/src/main/resources/images/update/update_failed.png
diff --git a/src/main/resources/images/update/update_failed@2x.png b/gui/src/main/resources/images/update/update_failed@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_failed@2x.png
rename to gui/src/main/resources/images/update/update_failed@2x.png
diff --git a/src/main/resources/images/update/update_in_progress.png b/gui/src/main/resources/images/update/update_in_progress.png
similarity index 100%
rename from src/main/resources/images/update/update_in_progress.png
rename to gui/src/main/resources/images/update/update_in_progress.png
diff --git a/src/main/resources/images/update/update_in_progress@2x.png b/gui/src/main/resources/images/update/update_in_progress@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_in_progress@2x.png
rename to gui/src/main/resources/images/update/update_in_progress@2x.png
diff --git a/src/main/resources/images/update/update_up_to_date.png b/gui/src/main/resources/images/update/update_up_to_date.png
similarity index 100%
rename from src/main/resources/images/update/update_up_to_date.png
rename to gui/src/main/resources/images/update/update_up_to_date.png
diff --git a/src/main/resources/images/update/update_up_to_date@2x.png b/gui/src/main/resources/images/update/update_up_to_date@2x.png
similarity index 100%
rename from src/main/resources/images/update/update_up_to_date@2x.png
rename to gui/src/main/resources/images/update/update_up_to_date@2x.png
diff --git a/src/main/resources/images/window_icon.png b/gui/src/main/resources/images/window_icon.png
similarity index 100%
rename from src/main/resources/images/window_icon.png
rename to gui/src/main/resources/images/window_icon.png
diff --git a/src/main/resources/images/window_icon@2x.png b/gui/src/main/resources/images/window_icon@2x.png
similarity index 100%
rename from src/main/resources/images/window_icon@2x.png
rename to gui/src/main/resources/images/window_icon@2x.png
diff --git a/src/main/resources/logback.xml b/gui/src/main/resources/logback.xml
similarity index 100%
rename from src/main/resources/logback.xml
rename to gui/src/main/resources/logback.xml
diff --git a/src/main/resources/wallet/checkpoints b/gui/src/main/resources/wallet/checkpoints
similarity index 100%
rename from src/main/resources/wallet/checkpoints
rename to gui/src/main/resources/wallet/checkpoints
diff --git a/src/main/resources/wallet/checkpoints.testnet b/gui/src/main/resources/wallet/checkpoints.testnet
similarity index 100%
rename from src/main/resources/wallet/checkpoints.testnet
rename to gui/src/main/resources/wallet/checkpoints.testnet
diff --git a/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java b/gui/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
rename to gui/src/test/java/io/bitsquare/app/BitsquareEnvironmentTests.java
diff --git a/src/test/java/io/bitsquare/btc/RestrictionsTest.java b/gui/src/test/java/io/bitsquare/btc/RestrictionsTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/btc/RestrictionsTest.java
rename to gui/src/test/java/io/bitsquare/btc/RestrictionsTest.java
diff --git a/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java b/gui/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
rename to gui/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewModelTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java b/gui/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/BSFormatterTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java b/gui/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java
diff --git a/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java b/gui/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
rename to gui/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java
diff --git a/src/test/java/io/bitsquare/msg/TomP2PTests.java b/gui/src/test/java/io/bitsquare/msg/TomP2PTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/msg/TomP2PTests.java
rename to gui/src/test/java/io/bitsquare/msg/TomP2PTests.java
diff --git a/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java b/gui/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
rename to gui/src/test/java/io/bitsquare/msg/tomp2p/TomP2PNodeTest.java
diff --git a/src/test/java/io/bitsquare/network/NodeTests.java b/gui/src/test/java/io/bitsquare/network/NodeTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/network/NodeTests.java
rename to gui/src/test/java/io/bitsquare/network/NodeTests.java
diff --git a/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java b/gui/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
similarity index 100%
rename from src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
rename to gui/src/test/java/io/bitsquare/network/tomp2p/TomP2PPeerTest.java
diff --git a/src/test/java/io/bitsquare/util/Repeat.java b/gui/src/test/java/io/bitsquare/util/Repeat.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/Repeat.java
rename to gui/src/test/java/io/bitsquare/util/Repeat.java
diff --git a/src/test/java/io/bitsquare/util/RepeatRule.java b/gui/src/test/java/io/bitsquare/util/RepeatRule.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/RepeatRule.java
rename to gui/src/test/java/io/bitsquare/util/RepeatRule.java
diff --git a/src/test/java/io/bitsquare/util/RepeatRuleTests.java b/gui/src/test/java/io/bitsquare/util/RepeatRuleTests.java
similarity index 100%
rename from src/test/java/io/bitsquare/util/RepeatRuleTests.java
rename to gui/src/test/java/io/bitsquare/util/RepeatRuleTests.java
diff --git a/src/test/java/net/tomp2p/dht/UtilsDHT2.java b/gui/src/test/java/net/tomp2p/dht/UtilsDHT2.java
similarity index 100%
rename from src/test/java/net/tomp2p/dht/UtilsDHT2.java
rename to gui/src/test/java/net/tomp2p/dht/UtilsDHT2.java
diff --git a/src/test/java/viewfx/view/support/CachingViewLoaderTests.java b/gui/src/test/java/viewfx/view/support/CachingViewLoaderTests.java
similarity index 100%
rename from src/test/java/viewfx/view/support/CachingViewLoaderTests.java
rename to gui/src/test/java/viewfx/view/support/CachingViewLoaderTests.java
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$Malformed.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxController.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$MissingFxmlViewAnnotation.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests$WellFormed.fxml
diff --git a/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java b/gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
similarity index 100%
rename from src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
rename to gui/src/test/java/viewfx/view/support/fxml/FxmlViewLoaderTests.java
diff --git a/package/linux.sh b/package/linux.sh
deleted file mode 100755
index 5b32e45b48..0000000000
--- a/package/linux.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-set -e
-
-version=$1
-jar=$2
-mainClass=$3
-
-javapackager -deploy \
- -BappVersion=$version \
- -Bcategory=Finance \
- -BlicenseType=GPLv3 \
- -Bemail=info@bitsquare.io \
- -native deb \
- -name Bitsquare \
- -title Bitsquare \
- -vendor Bitsquare \
- -outdir build \
- -appclass $mainClass \
- -srcfiles $jar \
- -outfile Bitsquare
-
-# -Bicon=client/icons/icon.png \
diff --git a/package/mac.sh b/package/mac.sh
deleted file mode 100755
index d8f0882c28..0000000000
--- a/package/mac.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-set -e
-
-version=$1
-jar=$2
-mainClass=$3
-
-$JAVA_HOME/bin/javapackager \
- -deploy \
- -BappVersion=$version \
- -Bmac.CFBundleIdentifier=bitsquare \
- -Bmac.CFBundleName=Bitsquare \
- -Bruntime="$JAVA_HOME/../../" \
- -native dmg \
- -name Bitsquare \
- -title Bitsquare \
- -vendor Bitsquare \
- -outdir build \
- -srcfiles $jar \
- -appclass $mainClass \
- -outfile Bitsquare
-
-#-Bicon=client/icons/mac.icns \
diff --git a/package/macosx/Bitsquare.icns b/package/macosx/Bitsquare.icns
new file mode 100644
index 0000000000..5464bb5b61
Binary files /dev/null and b/package/macosx/Bitsquare.icns differ
diff --git a/src/deploy/package/shortcut-128.png b/package/macosx/Bitsquare.iconset/icon_128x128.png
similarity index 100%
rename from src/deploy/package/shortcut-128.png
rename to package/macosx/Bitsquare.iconset/icon_128x128.png
diff --git a/src/deploy/package/shortcut-128@2x.png b/package/macosx/Bitsquare.iconset/icon_128x128@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-128@2x.png
rename to package/macosx/Bitsquare.iconset/icon_128x128@2x.png
diff --git a/src/deploy/package/shortcut-16.png b/package/macosx/Bitsquare.iconset/icon_16x16.png
similarity index 100%
rename from src/deploy/package/shortcut-16.png
rename to package/macosx/Bitsquare.iconset/icon_16x16.png
diff --git a/src/deploy/package/shortcut-16@2x.png b/package/macosx/Bitsquare.iconset/icon_16x16@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-16@2x.png
rename to package/macosx/Bitsquare.iconset/icon_16x16@2x.png
diff --git a/src/deploy/package/shortcut-256.png b/package/macosx/Bitsquare.iconset/icon_256x256.png
similarity index 100%
rename from src/deploy/package/shortcut-256.png
rename to package/macosx/Bitsquare.iconset/icon_256x256.png
diff --git a/src/deploy/package/shortcut-256@2x.png b/package/macosx/Bitsquare.iconset/icon_256x256@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-256@2x.png
rename to package/macosx/Bitsquare.iconset/icon_256x256@2x.png
diff --git a/src/deploy/package/shortcut-32.png b/package/macosx/Bitsquare.iconset/icon_32x32.png
similarity index 100%
rename from src/deploy/package/shortcut-32.png
rename to package/macosx/Bitsquare.iconset/icon_32x32.png
diff --git a/src/deploy/package/shortcut-32@2x.png b/package/macosx/Bitsquare.iconset/icon_32x32@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-32@2x.png
rename to package/macosx/Bitsquare.iconset/icon_32x32@2x.png
diff --git a/src/deploy/package/shortcut-512.png b/package/macosx/Bitsquare.iconset/icon_512x512.png
similarity index 100%
rename from src/deploy/package/shortcut-512.png
rename to package/macosx/Bitsquare.iconset/icon_512x512.png
diff --git a/src/deploy/package/shortcut-512@2x.png b/package/macosx/Bitsquare.iconset/icon_512x512@2x.png
similarity index 100%
rename from src/deploy/package/shortcut-512@2x.png
rename to package/macosx/Bitsquare.iconset/icon_512x512@2x.png
diff --git a/package/msvcp100.dll b/package/msvcp100.dll
deleted file mode 100644
index 68fa0d31ad..0000000000
Binary files a/package/msvcp100.dll and /dev/null differ
diff --git a/package/msvcr100.dll b/package/msvcr100.dll
deleted file mode 100644
index b1c3a5e77c..0000000000
Binary files a/package/msvcr100.dll and /dev/null differ
diff --git a/package/windows.bat b/package/windows.bat
deleted file mode 100644
index 5c99e767cd..0000000000
--- a/package/windows.bat
+++ /dev/null
@@ -1 +0,0 @@
-"c:\Program Files\Java\jdk1.8.0_20\bin\javapackager.exe" -deploy -BappVersion=0.1.1-SNAPSHOT -native exe -name Bitsquare -title Bitsquare -vendor Bitsquare -outdir build -appclass io.bitsquare.app.gui.BitsquareAppMain -srcfiles "build\libs\bitsquare-0.1.1-SNAPSHOT-app.jar" -outfile Bitsquare -Bruntime="c:\Program Files\Java\jdk1.8.0_20\jre"
diff --git a/package/windows/Bitsquare.iss b/package/windows/Bitsquare.iss
deleted file mode 100644
index eacc9a7f22..0000000000
--- a/package/windows/Bitsquare.iss
+++ /dev/null
@@ -1,75 +0,0 @@
-;This file will be executed next to the application bundle image
-;I.e. current directory will contain folder Bitsquare with application files
-[Setup]
-AppId={{bitsquare}}
-AppName=Bitsquare
-AppVersion=0.1.1
-AppVerName=Bitsquare 0.1.1
-AppPublisher=Bitsquare
-AppComments=Bitsquare
-AppCopyright=Copyright (C) 2014
-AppPublisherURL=https://bitsquare.io
-AppSupportURL=https://bitsquare.io
-;AppUpdatesURL=http://java.com/
-DefaultDirName={localappdata}\Bitsquare
-DisableStartupPrompt=Yes
-DisableDirPage=Yes
-DisableProgramGroupPage=Yes
-DisableReadyPage=Yes
-DisableFinishedPage=Yes
-DisableWelcomePage=Yes
-DefaultGroupName=Bitsquare
-;Optional License
-LicenseFile=
-;WinXP or above
-MinVersion=0,5.1
-OutputBaseFilename=Bitsquare-0.1.1
-Compression=lzma
-SolidCompression=yes
-PrivilegesRequired=lowest
-SetupIconFile=Bitsquare\Bitsquare.ico
-UninstallDisplayIcon={app}\Bitsquare.ico
-UninstallDisplayName=Bitsquare
-WizardImageStretch=No
-WizardSmallImageFile=Bitsquare-setup-icon.bmp
-ArchitecturesInstallIn64BitMode=x64
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Files]
-Source: "Bitsquare\Bitsquare.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "Bitsquare\runtime\jre\bin\plugin2\msvcr100.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "Bitsquare\runtime\jre\bin\msvcp100.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "Bitsquare\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
-
-[Icons]
-Name: "{group}\Bitsquare"; Filename: "{app}\Bitsquare.exe"; IconFilename: "{app}\Bitsquare.ico"; Check: returnTrue()
-Name: "{commondesktop}\Bitsquare"; Filename: "{app}\Bitsquare.exe"; IconFilename: "{app}\Bitsquare.ico"; Check: returnFalse()
-
-[Run]
-Filename: "{app}\Bitsquare.exe"; Description: "{cm:LaunchProgram,Bitsquare}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
-Filename: "{app}\Bitsquare.exe"; Parameters: "-install -svcName ""Bitsquare"" -svcDesc ""Bitsquare"" -mainExe ""Bitsquare.exe"" "; Check: returnFalse()
-
-[UninstallRun]
-Filename: "{app}\Bitsquare.exe "; Parameters: "-uninstall -svcName Bitsquare -stopOnUninstall"; Check: returnFalse()
-
-[Code]
-function returnTrue(): Boolean;
-begin
- Result := True;
-end;
-
-function returnFalse(): Boolean;
-begin
- Result := False;
-end;
-
-function InitializeSetup(): Boolean;
-begin
-// Possible future improvements:
-// if version less or same => just launch app
-// if upgrade => check if same app is running and wait for it to exit
-// Add pack200/unpack200 support?
- Result := True;
-end;
diff --git a/pom.xml b/pom.xml
new file mode 100755
index 0000000000..0bb602ef1b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ io.bitsquare
+ parent
+ pom
+ 0.1.1-SNAPSHOT
+ The decentralized bitcoin exchange
+ https://bitsquare.io
+
+
+ bitsquare.io
+
+
+
+
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ http://www.gnu.org/licenses/agpl-3.0.html
+ repo
+
+
+
+
+ GitHub
+ https://github.com/bitsquare/bitsquare/issues
+
+
+
+ scm:git:https://github.com/bitsquare/bitsquare
+ scm:git:https://github.com/bitsquare/bitsquare
+ scm:git:https://github.com/bitsquare/bitsquare
+
+
+
+ UTF-8
+
+
+
+ gui
+ common
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+
+
+
+
+
+
+
+
+
+
+ sonatype-oss-snapshot
+
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ repository.tomp2p.net
+ http://tomp2p.net/dev/mvn
+
+
+
+
+
+ org.bitcoinj
+ bitcoinj-core
+ 0.12.2
+
+
+
+
+ com.google.guava
+ guava
+ 16.0.1
+
+
+
+ junit
+ junit
+ 4.11
+
+
+ org.mockito
+ mockito-core
+ 1.10.19
+
+
+ org.springframework
+ spring-test
+ 4.1.1.RELEASE
+
+
+
+
\ No newline at end of file
diff --git a/src/deploy/package/shortcut-64.png b/src/deploy/package/shortcut-64.png
deleted file mode 100644
index d32b9b6f77..0000000000
Binary files a/src/deploy/package/shortcut-64.png and /dev/null differ
diff --git a/src/deploy/package/shortcut-64@2x.png b/src/deploy/package/shortcut-64@2x.png
deleted file mode 100644
index fda27db215..0000000000
Binary files a/src/deploy/package/shortcut-64@2x.png and /dev/null differ
diff --git a/src/main/java/io/bitsquare/app/gui/ExampleApp.java b/src/main/java/io/bitsquare/app/gui/ExampleApp.java
deleted file mode 100644
index 5bf508d61a..0000000000
--- a/src/main/java/io/bitsquare/app/gui/ExampleApp.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * This file is part of Bitsquare.
- *
- * Bitsquare is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * Bitsquare is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with Bitsquare. If not, see .
- */
-
-package io.bitsquare.app.gui;
-
-import org.bitcoinj.utils.BriefLogFormatter;
-
-import com.google.common.util.concurrent.Uninterruptibles;
-
-import java.io.IOException;
-
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.FileHandler;
-
-import javafx.application.Application;
-import javafx.geometry.Insets;
-import javafx.geometry.Pos;
-import javafx.scene.*;
-import javafx.scene.control.*;
-import javafx.scene.layout.*;
-import javafx.stage.Stage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.vinumeris.updatefx.AppDirectory;
-import com.vinumeris.updatefx.Crypto;
-import com.vinumeris.updatefx.UpdateFX;
-import com.vinumeris.updatefx.UpdateSummary;
-import com.vinumeris.updatefx.Updater;
-import org.bouncycastle.math.ec.ECPoint;
-
-// TODO remove it after we have impl. UpdateFX.
-// Let it here for reference and for easier test setup for the moment.
-public class ExampleApp extends Application {
- private static final Logger log = LoggerFactory.getLogger(ExampleApp.class);
- public static int VERSION = 3;
-
- public static void main(String[] args) throws IOException {
- // We want to store updates in our app dir so must init that here.
- AppDirectory.initAppDir("UpdateFX Example App");
- setupLogging();
- // re-enter at realMain, but possibly running a newer version of the software i.e. after this point the
- // rest of this code may be ignored.
- UpdateFX.bootstrap(ExampleApp.class, AppDirectory.dir(), args);
- }
-
- public static void realMain(String[] args) {
- launch(args);
- }
-
- private static java.util.logging.Logger logger;
-
- private static void setupLogging() throws IOException {
- logger = java.util.logging.Logger.getLogger("");
- logger.getHandlers()[0].setFormatter(new BriefLogFormatter());
- FileHandler handler = new FileHandler(AppDirectory.dir().resolve("log.txt").toString(), true);
- handler.setFormatter(new BriefLogFormatter());
- logger.addHandler(handler);
- }
-
- @Override
- public void start(Stage primaryStage) throws Exception {
- // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
- Thread.currentThread().setContextClassLoader(ExampleApp.class.getClassLoader());
- // Must be done twice for the times when we come here via realMain.
- AppDirectory.initAppDir("UpdateFX Example App");
-
- log.info("Hello World! This is version " + VERSION);
-
- ProgressIndicator indicator = showGiantProgressWheel(primaryStage);
-
- List pubkeys = Crypto.decode("028B41BDDCDCAD97B6AE088FEECA16DC369353B717E13319370C729CB97D677A11",
- // wallet_1
- "031E3D80F21A4D10D385A32ABEDC300DACBEDBC839FBA58376FBD5D791D806BA68"); // wallet
-
- Updater updater = new Updater("http://localhost:8000/", "ExampleApp/" + VERSION, VERSION,
- AppDirectory.dir(), UpdateFX.findCodePath(ExampleApp.class),
- pubkeys, 1) {
- @Override
- protected void updateProgress(long workDone, long max) {
- super.updateProgress(workDone, max);
- // Give UI a chance to show.
- Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
- }
- };
-
- indicator.progressProperty().bind(updater.progressProperty());
-
- log.info("Checking for updates!");
- updater.setOnSucceeded(event -> {
- try {
- UpdateSummary summary = updater.get();
- if (summary.descriptions.size() > 0) {
- log.info("One liner: {}", summary.descriptions.get(0).getOneLiner());
- log.info("{}", summary.descriptions.get(0).getDescription());
- }
- if (summary.highestVersion > VERSION) {
- log.info("Restarting to get version " + summary.highestVersion);
- if (UpdateFX.getVersionPin(AppDirectory.dir()) == 0)
- UpdateFX.restartApp();
- }
- } catch (Throwable e) {
- log.error("oops", e);
- }
- });
- updater.setOnFailed(event -> {
- log.error("Update error: {}", updater.getException());
- updater.getException().printStackTrace();
- });
-
- indicator.setOnMouseClicked(ev -> UpdateFX.restartApp());
-
- new Thread(updater, "UpdateFX Thread").start();
-
- primaryStage.show();
- }
-
- private ProgressIndicator showGiantProgressWheel(Stage stage) {
- ProgressIndicator indicator = new ProgressIndicator();
- BorderPane borderPane = new BorderPane(indicator);
- borderPane.setMinWidth(640);
- borderPane.setMinHeight(480);
- Button pinButton = new Button();
- pinButton.setText("Pin to version 1");
- pinButton.setOnAction(event -> {
- UpdateFX.pinToVersion(AppDirectory.dir(), 1);
- UpdateFX.restartApp();
- });
- HBox box = new HBox(new Label("Version " + VERSION), pinButton);
- box.setSpacing(10);
- box.setAlignment(Pos.CENTER_LEFT);
- box.setPadding(new Insets(10));
- borderPane.setTop(box);
- Scene scene = new Scene(borderPane);
- stage.setScene(scene);
- return indicator;
- }
-}
diff --git a/todo.txt b/todo.txt
new file mode 100644
index 0000000000..22851e2d37
--- /dev/null
+++ b/todo.txt
@@ -0,0 +1,196 @@
+- add/remove listeners
+- Popup
+- text, fine tuning
+- sys tray icon more contrast
+- icon grey darker
+
+
+- confirm spinner hi cpu usage
+- mem leaks? cleanup
+- deposit screen -> wallet overview?
+sync not stopping bug
+- notification pane from mhearn
+
+usability test maria:
+- min amount unclear
+- volume unclear (wording)
+- question mark not recognized
+- collateral missing word for refunding
+- add EUR to fee (0,001 BTC (appr. 0,40 EUR)
+- prefill price and min amount
+- hint to edit volume
+- link button for address ? open weblink icon?
+- fill price prompt text with latest best price
+
+
+prio list:
+
+- app
+- when closing window but not app. make sure all messaging works as well and is independent from gui
+- improve tx creation and make p2sh
+- mailbox needed if trader leaves after deposit tx.
+- 2. use trade case
+- messaging
+
+
+GUI: (10 PD)
+- Buy/Sell: header filter, cleanup, 1 PD
+- Create offer: cleanup 0,5 PD -> DONE
+- Settings: adv. settings 0,5 PD
+- Message: arbitrator chat, notifications 1 PD
+- History -> move to funds: transactions 0,5 PD -> DONE
+- Orders: pending trades, closed trades 1 PD -> DONE
+- Trade process!!!!!! 2 PD -> DONE
+- Overview: balance, latest trades, news 2 PD
+- Network sync: test, cleanup 0,5 PD -> DONE
+- Notification 0,5 PD -> DONE
+
+
+Other GUI stuff: (5 PD)
+- Popups 2 PD -> part. done
+- Bank IDs 1 PD
+- All inputs, generic component with error feedback 1 PD -> DONE
+- Formatter 0,5 PD -> DONE
+- Check for multi threading, locks 1 PD
+
+
+Code quality: (5 PD)
+- Unit tests 3 PD
+- param checks 1 PD
+- qa tools 1 PD
+- usage of annotations ?
+
+BTC domain: (15 PD)
+- Trade process: find pattern, msg objects 4 PD -> part. done
+- Use P2SH 2 PD
+- Improve Tx building, msg passing 2 PD
+- Verifications: fee, contract, bank account 4 PD
+- Fee payment 3 PD
+
+Domain optimisations: (6 PD)
+- Use protobuffer 2 PD
+- Use DB 2 PD
+- Use system storage locations 0,5 PD -> DONE
+- Backup 0,5 PD
+- Password protection 1 PD
+
+
+Messaging/DHT: (23 PD)
+- Investigate other solutions 3 PD -> DONE
+- Bootstrapping 2 PD
+- Clients on server 3 PD
+- Test stability 4 PD
+- Get arrays working 2 PD -> DONE
+- Broadcast/Multicast 2 PD
+- Right management 1 PD -> DONE
+- Security 3 PD
+- Privacy 3 PD
+
+
+Arbitration system: (11 PD)
+- Register Arbitrator 1 PD
+- Select Arbitrator 0,5 PD
+- Contact Arbitrator 0,5 PD
+- Rate Arbitrator 0,5 PD
+- Chat with Arbitrator 1 PD
+- Arbitrator deposit MS handling 2 PD
+- Arbitrator refund 1 PD
+- Arbitrator complaint 1 PD
+- Fraud report 2 PD
+- DHT storage, rating 1 PD
+- Blacklist 1 PD
+
+
+Misc: (16 PD)
+- Maven builds 2 PD -> DONE
+- App packager 2 PD -> DONE
+- Test diff. OS 2 PD -> DONE
+- Daemon, System tray, GUI client? 8 PD -> DONE
+- Bootstrap daemon app 2 PD -> DONE/CANCELED
+
+
+Sum: 92 PD -> 4 Months
+
+
+feedback joachim:
+- create new BUY(SELL) offer
+- Balance edit feld weg, alle font gleich, 2 balances: total, available
+- no content in table text
+- collateral
+- editable/non edit nicht klar
+- min amount BTC
+- totals amount
+- 1024/768
+- mehr text infos trade prozess
+- system warning msg after half trade period is reached to both traders
+- contact arbitrator, disabled? warning, info mit fees
+- totals textfeld triggerered amount tx value when edited - 2 sided editing of amount/total
+
+
+feedback 2 joachim:
+
+SETUP:
+- trading account -> account
+- pref. lists -> scroll and select newly added entry
+- setup: remove manage BA -> add BA
+- continue -> done
+- setup buttons: sub title weg
+- "not registered" info text -> " now registered..."
+- popup: close -> ok, copy kein button sondernd hyperlink
+- address: open wallet
+
+orederbook:
+- filter links über table, optional
+- create rechts über buy buttons
+
+create offer:
+- ? icon -> text link
+- popup explaining collateral and trade wallet
+- mining fee statt btc network fee
+
+tkae offer:
+- if range = 0 -> weg
+- Accept statt take ?
+
+
+trade proc.:
+- checkbox: i confirm that i received 800 eur in my BA. dann button "payout"
+- withdraw button + address am ende
+- friendly text explaining all
+- select weg
+- tx id -> text link "open in block expl."
+- eur betrag fehlt!
+- I confirm that I have made the bank tx/payment
+
+feedback roman:
+
+- registrierung inklar
+- tx id block infor unklar
+- min amount ?
+- sec. deposit fehlt erklärung
+- funds/withdraw not found
+- withdraw gesamtbetrag fehlt
+
+feedback lloyd:
+- password validator missing
+- selecting 2 time the same in restrictions lists not causing feedback warning
+- add should jump to entry
+- type letter should jump to entry in dropdown
+- jersey, isle of main, ... missing
+- continue button not disabled if no arbitrator selected
+- popups not working on his machine
+- edit 2, account continue does not save it
+- bank account with same bank name-> nickname
+- put restrictions bank account countries to bank account section -> one bank account has set of acc. countries
+- is label in tx public?
+- close tab deactivate when money is added (take offer, create offer)
+- ba change not updateing in create offer
+- bank accoutn should be in create offfer/takeOffer screen
+- nr. of confirmations display explicit
+- more text above clear info!
+- amount copy without EUR
+- bug in payout?
+- if too much paid in its additional sec. deposit -> extra reputation
+- mining fee explicit in withdrawal
+- orderbook table mixed currencies? bank account/currency in filter
+-
\ No newline at end of file
diff --git a/updatefx/updatefx-app-1.2.jar b/updatefx/updatefx-app-1.2.jar
new file mode 100644
index 0000000000..7a07da2fac
Binary files /dev/null and b/updatefx/updatefx-app-1.2.jar differ