Prechádzať zdrojové kódy

remove notification, if eventView is focused

Armin Schrenk 6 mesiacov pred
rodič
commit
1f60d9f5e8

+ 8 - 1
src/main/java/org/cryptomator/ui/eventview/EventViewModule.java

@@ -12,7 +12,9 @@ import org.cryptomator.ui.common.FxmlLoaderFactory;
 import org.cryptomator.ui.common.FxmlScene;
 import org.cryptomator.ui.common.StageFactory;
 
+import javax.inject.Named;
 import javax.inject.Provider;
+import javafx.beans.property.BooleanProperty;
 import javafx.scene.Scene;
 import javafx.stage.Modality;
 import javafx.stage.Stage;
@@ -25,12 +27,17 @@ abstract class EventViewModule {
 	@Provides
 	@EventViewScoped
 	@EventViewWindow
-	static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle) {
+	static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle, @Named("unreadEventsAvailable") BooleanProperty unreadEvents) {
 		Stage stage = factory.create();
 		stage.setHeight(498);
 		stage.setTitle(resourceBundle.getString("eventView.title"));
 		stage.setResizable(true);
 		stage.initModality(Modality.NONE);
+		stage.focusedProperty().addListener((_,_,isFocused) -> {
+			if(isFocused) {
+				unreadEvents.setValue(false);
+			}
+		});
 		return stage;
 	}
 

+ 10 - 0
src/main/java/org/cryptomator/ui/fxapp/FxApplicationModule.java

@@ -20,6 +20,9 @@ import org.cryptomator.ui.unlock.UnlockComponent;
 import org.cryptomator.ui.updatereminder.UpdateReminderComponent;
 import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
 
+import javax.inject.Named;
+import javafx.beans.property.BooleanProperty;
+import javafx.beans.property.SimpleBooleanProperty;
 import javafx.scene.image.Image;
 import java.io.IOException;
 import java.io.InputStream;
@@ -74,4 +77,11 @@ abstract class FxApplicationModule {
 		return factory.create();
 	}
 
+	@Provides
+	@FxApplicationScoped
+	@Named("unreadEventsAvailable")
+	static BooleanProperty provideUnreadEventsAvailable() {
+		return new SimpleBooleanProperty(false);
+	}
+
 }

+ 5 - 3
src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java

@@ -1,12 +1,12 @@
 package org.cryptomator.ui.mainwindow;
 
 import org.apache.commons.lang3.SystemUtils;
-import org.cryptomator.event.FileSystemEventRegistry;
 import org.cryptomator.common.settings.Settings;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.common.vaults.VaultListManager;
 import org.cryptomator.cryptofs.CryptoFileSystemProvider;
 import org.cryptomator.cryptofs.DirStructure;
+import org.cryptomator.event.FileSystemEventRegistry;
 import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.common.VaultService;
@@ -17,6 +17,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.BooleanProperty;
@@ -96,7 +97,8 @@ public class VaultListController implements FxController {
 						FxApplicationWindows appWindows, //
 						Settings settings, //
 						Dialogs dialogs, //
-						FileSystemEventRegistry fileSystemEventRegistry) {
+						FileSystemEventRegistry fileSystemEventRegistry, //
+						@Named("unreadEventsAvailable") BooleanProperty unreadEvents) {
 		this.mainWindow = mainWindow;
 		this.vaults = vaults;
 		this.selectedVault = selectedVault;
@@ -110,7 +112,7 @@ public class VaultListController implements FxController {
 
 		this.emptyVaultList = Bindings.isEmpty(vaults);
 		this.fileSystemEventRegistry = fileSystemEventRegistry;
-		this.newEventsPresent = new SimpleBooleanProperty(false);
+		this.newEventsPresent = unreadEvents;
 		fileSystemEventRegistry.addListener((MapChangeListener<? super FileSystemEventRegistry.Key, ? super FileSystemEventRegistry.Value>) change -> {
 			if (change.wasAdded()) {
 				newEventsPresent.setValue(true);