Replaced TransformationList by simpler List with listener, because Property Extractor didn't work properly

This commit is contained in:
Sebastian Stenzel
2019-08-29 23:18:03 +02:00
parent 4a02bf529d
commit 57553bbda1
7 changed files with 60 additions and 141 deletions
@@ -54,7 +54,6 @@ import org.cryptomator.ui.model.AppLaunchEvent;
import org.cryptomator.ui.model.AutoUnlocker;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultFactory;
import org.cryptomator.common.vaults.VaultList;
import org.cryptomator.ui.model.upgrade.UpgradeStrategies;
import org.cryptomator.ui.model.upgrade.UpgradeStrategy;
import org.cryptomator.ui.util.DialogBuilderUtil;
@@ -112,7 +111,7 @@ public class MainController implements ViewController {
@Inject
public MainController(@Named("mainWindow") Stage mainWindow, ExecutorService executorService, @Named("launchEventQueue") BlockingQueue<AppLaunchEvent> launchEventQueue, ExitUtil exitUtil, Localization localization,
VaultFactory vaultFactoy, ViewControllerLoader viewControllerLoader, UpgradeStrategies upgradeStrategies, VaultList vaults, AutoUnlocker autoUnlocker) {
VaultFactory vaultFactoy, ViewControllerLoader viewControllerLoader, UpgradeStrategies upgradeStrategies, ObservableList<Vault> vaults, AutoUnlocker autoUnlocker) {
this.mainWindow = mainWindow;
this.executorService = executorService;
this.launchEventQueue = launchEventQueue;
@@ -5,13 +5,13 @@
*******************************************************************************/
package org.cryptomator.ui.model;
import javafx.collections.ObservableList;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultList;
import org.cryptomator.common.vaults.Volume;
import org.cryptomator.ui.fxapp.FxApplicationScoped;
import org.cryptomator.cryptolib.api.CryptoException;
import org.cryptomator.keychain.KeychainAccess;
import org.cryptomator.keychain.KeychainAccessException;
import org.cryptomator.ui.fxapp.FxApplicationScoped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,11 +33,11 @@ public class AutoUnlocker {
private static final int NAP_TIME_MILLIS = 500;
private final Optional<KeychainAccess> keychainAccess;
private final VaultList vaults;
private final ObservableList<Vault> vaults;
private final ExecutorService executor;
@Inject
public AutoUnlocker(Optional<KeychainAccess> keychainAccess, VaultList vaults, ExecutorService executor) {
public AutoUnlocker(Optional<KeychainAccess> keychainAccess, ObservableList<Vault> vaults, ExecutorService executor) {
this.keychainAccess = keychainAccess;
this.vaults = vaults;
this.executor = executor;
@@ -1,10 +1,13 @@
package org.cryptomator.ui.traymenu;
import javafx.application.Platform;
import javafx.beans.Observable;
import javafx.collections.ObservableList;
import org.cryptomator.common.settings.Settings;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.ui.fxapp.FxApplication;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Named;
@@ -23,6 +26,8 @@ import java.util.function.Consumer;
@TrayMenuScoped
class TrayMenuController {
private static final Logger LOG = LoggerFactory.getLogger(TrayMenuController.class);
private final ResourceBundle resourceBundle;
private final FxApplicationStarter fxApplicationStarter;
@@ -69,8 +74,12 @@ class TrayMenuController {
}
private void vaultListChanged(@SuppressWarnings("unused") Observable observable) {
assert Platform.isFxApplicationThread();
rebuildMenu();
allVaultsAreLocked.set(vaults.stream().allMatch(Vault::isLocked));
boolean allLocked = vaults.stream().allMatch(Vault::isLocked);
// TODO remove logging
LOG.warn("allLocked: {}", allLocked);
allVaultsAreLocked.set(allLocked);
}
private void rebuildMenu() {