Przeglądaj źródła

Prepare strucutre and classes for lock workflow

Armin Schrenk 4 lat temu
rodzic
commit
c44911dcac

+ 7 - 0
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<Stage> owner) {
+		Platform.runLater(() -> {
+			//TODO
+			LOG.debug("Locking vault {}", vault.getDisplayName());
+		});
+	}
+
 	public void showQuitWindow(QuitResponse response) {
 		Platform.runLater(() -> {
 			quitWindowBuilderProvider.get().quitResponse(response).build().showQuitWindow();

+ 39 - 0
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<Boolean> 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<Stage> owner);
+
+		LockComponent build();
+	}
+}

+ 5 - 0
main/ui/src/main/java/org/cryptomator/ui/lock/LockForcedController.java

@@ -0,0 +1,5 @@
+package org.cryptomator.ui.lock;
+
+public class LockForcedController {
+
+}

+ 8 - 0
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 {
+
+}

+ 13 - 0
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 {
+
+}

+ 14 - 0
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 {
+
+}

+ 11 - 0
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<Boolean> {
+
+	@Override
+	protected Boolean call() throws Exception {
+		return true;
+	}
+}