mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-17 10:11:27 +00:00
Trigger list change events when a vault changes its state, thus removing need for additional state listeners
This commit is contained in:
@@ -10,6 +10,7 @@ import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import javafx.beans.binding.Binding;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
@@ -48,9 +49,11 @@ public abstract class CommonsModule {
|
||||
return settingsProvider.get();
|
||||
}
|
||||
|
||||
@Binds
|
||||
@Provides
|
||||
@Singleton
|
||||
abstract ObservableList<Vault> bindVaultList(VaultList vaultList);
|
||||
static ObservableList<Vault> provideVaultList(VaultList vaultList) {
|
||||
return FXCollections.observableList(vaultList, Vault::observables);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
|
||||
@@ -85,14 +85,7 @@ class TrayMenuController {
|
||||
|
||||
private Menu buildSubmenu(Vault vault) {
|
||||
Menu submenu = new Menu(vault.getDisplayableName());
|
||||
vault.stateProperty().addListener(observable -> rebuildSubmenu(submenu, vault));
|
||||
rebuildSubmenu(submenu, vault);
|
||||
return submenu;
|
||||
}
|
||||
|
||||
private void rebuildSubmenu(Menu submenu, Vault vault) {
|
||||
submenu.removeAll();
|
||||
|
||||
|
||||
// TODO add action listeners
|
||||
if (vault.isLocked()) {
|
||||
MenuItem unlockItem = new MenuItem("TODO unlock");
|
||||
@@ -105,6 +98,8 @@ class TrayMenuController {
|
||||
MenuItem revealItem = new MenuItem("TODO reveal");
|
||||
submenu.add(revealItem);
|
||||
}
|
||||
|
||||
return submenu;
|
||||
}
|
||||
|
||||
private ActionListener createActionListenerForVault(Vault vault, Consumer<Vault> consumer) {
|
||||
|
||||
Reference in New Issue
Block a user