From c44911dcac8a3936a27b789466de0c03a6978837 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 18 Nov 2020 17:16:58 +0100 Subject: [PATCH] Prepare strucutre and classes for lock workflow --- .../cryptomator/ui/fxapp/FxApplication.java | 7 ++++ .../cryptomator/ui/lock/LockComponent.java | 39 +++++++++++++++++++ .../ui/lock/LockForcedController.java | 5 +++ .../org/cryptomator/ui/lock/LockModule.java | 8 ++++ .../org/cryptomator/ui/lock/LockScoped.java | 13 +++++++ .../org/cryptomator/ui/lock/LockWindow.java | 14 +++++++ .../org/cryptomator/ui/lock/LockWorkflow.java | 11 ++++++ 7 files changed, 97 insertions(+) create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockComponent.java create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockForcedController.java create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockModule.java create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockScoped.java create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockWindow.java create mode 100644 main/ui/src/main/java/org/cryptomator/ui/lock/LockWorkflow.java diff --git a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java index 650254649..643d7827d 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java +++ b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java @@ -107,6 +107,13 @@ public class FxApplication extends Application { }); } + public void startLockWorkflow(Vault vault, Optional owner) { + Platform.runLater(() -> { + //TODO + LOG.debug("Locking vault {}", vault.getDisplayName()); + }); + } + public void showQuitWindow(QuitResponse response) { Platform.runLater(() -> { quitWindowBuilderProvider.get().quitResponse(response).build().showQuitWindow(); diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockComponent.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockComponent.java new file mode 100644 index 000000000..a348d4807 --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockComponent.java @@ -0,0 +1,39 @@ +package org.cryptomator.ui.lock; + +import dagger.BindsInstance; +import dagger.Subcomponent; +import org.cryptomator.common.vaults.Vault; + +import javax.inject.Named; +import javafx.stage.Stage; +import java.util.Optional; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; + + +@LockScoped +@Subcomponent(modules = {LockModule.class}) +public interface LockComponent { + + ExecutorService defaultExecutorService(); + + LockWorkflow lockWorkflow(); + + default Future startUnlockWorkflow() { + LockWorkflow workflow = lockWorkflow(); + defaultExecutorService().submit(workflow); + return workflow; + } + + @Subcomponent.Builder + interface Builder { + + @BindsInstance + LockComponent.Builder vault(@LockWindow Vault vault); + + @BindsInstance + LockComponent.Builder owner(@Named("lockWindowOwner") Optional owner); + + LockComponent build(); + } +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockForcedController.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockForcedController.java new file mode 100644 index 000000000..a5746082d --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockForcedController.java @@ -0,0 +1,5 @@ +package org.cryptomator.ui.lock; + +public class LockForcedController { + +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockModule.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockModule.java new file mode 100644 index 000000000..a4ccc97cd --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockModule.java @@ -0,0 +1,8 @@ +package org.cryptomator.ui.lock; + +import dagger.Module; + +@Module +public class LockModule { + +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockScoped.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockScoped.java new file mode 100644 index 000000000..68d05f6e0 --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockScoped.java @@ -0,0 +1,13 @@ +package org.cryptomator.ui.lock; + +import javax.inject.Scope; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Scope +@Documented +@Retention(RetentionPolicy.RUNTIME) +@interface LockScoped { + +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockWindow.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockWindow.java new file mode 100644 index 000000000..10d6445ab --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockWindow.java @@ -0,0 +1,14 @@ +package org.cryptomator.ui.lock; + +import javax.inject.Qualifier; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Qualifier +@Documented +@Retention(RUNTIME) +@interface LockWindow { + +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/lock/LockWorkflow.java b/main/ui/src/main/java/org/cryptomator/ui/lock/LockWorkflow.java new file mode 100644 index 000000000..b038fea4b --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/lock/LockWorkflow.java @@ -0,0 +1,11 @@ +package org.cryptomator.ui.lock; + +import javafx.concurrent.Task; + +public class LockWorkflow extends Task { + + @Override + protected Boolean call() throws Exception { + return true; + } +}