diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java b/src/main/java/io/bitsquare/app/gui/BitsquareApp.java index 6e7bddf4f0..188c30ada9 100644 --- a/src/main/java/io/bitsquare/app/gui/BitsquareApp.java +++ b/src/main/java/io/bitsquare/app/gui/BitsquareApp.java @@ -90,12 +90,9 @@ public class BitsquareApp extends Application { User persistedUser = (User) persistence.read(user); user.applyPersistedUser(persistedUser); - applicationPreferences.applyPersistedSettings((ApplicationPreferences) persistence - .read(applicationPreferences.getClass().getName())); accountSettings.applyPersistedAccountSettings((AccountSettings) persistence .read(accountSettings.getClass().getName())); - // load the main view and create the main scene ViewLoader.setInjector(injector); diff --git a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesModel.java b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesModel.java index c1849529bb..7ad9643b19 100644 --- a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesModel.java +++ b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesModel.java @@ -18,22 +18,45 @@ package io.bitsquare.gui.main.preferences.application; import io.bitsquare.gui.UIModel; +import io.bitsquare.preferences.ApplicationPreferences; import com.google.inject.Inject; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; +import javafx.beans.value.ChangeListener; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; class ApplicationPreferencesModel extends UIModel { private static final Logger log = LoggerFactory.getLogger(ApplicationPreferencesModel.class); + private final ApplicationPreferences applicationPreferences; + + final ObservableList btcDenominations; + final BooleanProperty useAnimations = new SimpleBooleanProperty(); + final BooleanProperty useEffects = new SimpleBooleanProperty(); + final StringProperty btcDenomination = new SimpleStringProperty(); + + private ChangeListener useAnimationsListener; + private ChangeListener useEffectsListener; + private ChangeListener btcDenominationListener; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor /////////////////////////////////////////////////////////////////////////////////////////// @Inject - ApplicationPreferencesModel() { + ApplicationPreferencesModel(ApplicationPreferences applicationPreferences) { + this.applicationPreferences = applicationPreferences; + + btcDenominations = FXCollections.observableArrayList(applicationPreferences.getBtcDenominations()); } @@ -45,18 +68,36 @@ class ApplicationPreferencesModel extends UIModel { public void initialize() { super.initialize(); + + useAnimationsListener = (ov, oldValue, newValue) -> applicationPreferences + .setUseAnimations(newValue); + useEffectsListener = (ov, oldValue, newValue) -> applicationPreferences + .setUseEffects(newValue); + btcDenominationListener = (ov, oldValue, newValue) -> applicationPreferences + .setBtcDenomination(newValue); } @Override public void activate() { super.activate(); + useAnimations.set(applicationPreferences.getUseAnimations()); + useEffects.set(applicationPreferences.getUseEffects()); + btcDenomination.set(applicationPreferences.getBtcDenomination()); + + useAnimations.addListener(useAnimationsListener); + useEffects.addListener(useEffectsListener); + btcDenomination.addListener(btcDenominationListener); + } @Override public void deactivate() { super.deactivate(); + useAnimations.removeListener(useAnimationsListener); + useEffects.removeListener(useEffectsListener); + btcDenomination.removeListener(btcDenominationListener); } @SuppressWarnings("EmptyMethod") @@ -66,19 +107,5 @@ class ApplicationPreferencesModel extends UIModel { } - /////////////////////////////////////////////////////////////////////////////////////////// - // Methods - /////////////////////////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Getters - /////////////////////////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Private - /////////////////////////////////////////////////////////////////////////////////////////// - } diff --git a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesPM.java b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesPM.java index df7d53aaac..f70df1657a 100644 --- a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesPM.java +++ b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesPM.java @@ -21,6 +21,10 @@ import io.bitsquare.gui.PresentationModel; import com.google.inject.Inject; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.StringProperty; +import javafx.collections.ObservableList; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +69,22 @@ public class ApplicationPreferencesPM extends PresentationModel getBtcDenominationItems() { + return model.btcDenominations; + } + + BooleanProperty useAnimations() { + return model.useAnimations; + } + + BooleanProperty useEffects() { + return model.useEffects; + } + + StringProperty btcDenomination() { + return model.btcDenomination; + } + /////////////////////////////////////////////////////////////////////////////////////////// // Methods diff --git a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesView.fxml b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesView.fxml index 1377224c9f..9c052c2106 100644 --- a/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesView.fxml +++ b/src/main/java/io/bitsquare/gui/main/preferences/application/ApplicationPreferencesView.fxml @@ -18,11 +18,53 @@ --> + + - + - + + + + + + + + + + + + +