diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java similarity index 93% rename from haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java rename to haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java index 55482b231ac630c813e11e29b509364763f237f7..a6f3529b1e19a1359026642f6f3fc4b42abe33f1 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java @@ -12,10 +12,10 @@ import cz.it4i.fiji.haas.ui.UpdatableObservableValue; import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.BenchmarkJob; import net.imagej.updater.util.Progress; -public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob> { +public class ObservableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob> { public static final Logger log = LoggerFactory - .getLogger(cz.it4i.fiji.haas_spim_benchmark.core.UpdatableBenchmarkJob.class); + .getLogger(cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob.class); private P_TransferProgress downloadProgress = new P_TransferProgress(val -> getValue().setDownloaded(val), () -> getValue().isDownloaded(), () -> getValue().needsDownload()); @@ -34,7 +34,7 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob public Float getRemainingPercents(); } - public UpdatableBenchmarkJob(BenchmarkJob wrapped, Function<BenchmarkJob, UpdateStatus> updateFunction, + public ObservableBenchmarkJob(BenchmarkJob wrapped, Function<BenchmarkJob, UpdateStatus> updateFunction, Function<BenchmarkJob, Object> stateProvider, Executor executorUI) { super(wrapped, updateFunction, stateProvider); this.executor = executorUI; diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java index 6ea924eb1b36419d44e62b76dc4ec2f852f57e5e..5ff82e646d1621008cbaa27fddd8e966571897d2 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java @@ -34,8 +34,8 @@ import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager; import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.BenchmarkJob; import cz.it4i.fiji.haas_spim_benchmark.core.Constants; import cz.it4i.fiji.haas_spim_benchmark.core.FXFrameExecutorService; -import cz.it4i.fiji.haas_spim_benchmark.core.UpdatableBenchmarkJob; -import cz.it4i.fiji.haas_spim_benchmark.core.UpdatableBenchmarkJob.TransferProgress; +import cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob; +import cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob.TransferProgress; import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.scene.control.TableColumn; @@ -47,7 +47,7 @@ import net.imagej.updater.util.Progress; public class BenchmarkSPIMController extends BorderPane implements CloseableControl, InitiableControl { @FXML - private TableView<UpdatableBenchmarkJob> jobs; + private TableView<ObservableBenchmarkJob> jobs; private BenchmarkJobManager manager; @@ -99,17 +99,17 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont } private void initMenu() { - TableViewContextMenu<UpdatableBenchmarkJob> menu = new TableViewContextMenu<>(jobs); + TableViewContextMenu<ObservableBenchmarkJob> menu = new TableViewContextMenu<>(jobs); menu.addItem("Create job", x -> executeWSCallAsync("Creating job", p -> manager.createJob()), j -> true); menu.addItem("Start job", job -> executeWSCallAsync("Starting job", p -> { job.getValue().startJob(p); - registry.get(job.getValue()).update(); + job.getValue().update(); }), job -> JavaFXRoutines.notNullValue(job, j -> j.getState() == JobState.Configuring || j.getState() == JobState.Finished || j.getState() == JobState.Failed)); menu.addItem("Cancel job", job -> executeWSCallAsync("Canceling job", p -> { job.getValue().cancelJob(); - registry.get(job.getValue()).update(); + job.getValue().update(); }), job -> JavaFXRoutines.notNullValue(job, j -> j.getState() == JobState.Running)); menu.addItem("Execution details", job -> { @@ -194,13 +194,14 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont try { List<BenchmarkJob> jobs = new LinkedList<>(manager.getJobs()); jobs.sort((bj1, bj2) -> (int) (bj1.getId() - bj2.getId())); - Set<ObservableValue<BenchmarkJob>> actual = new HashSet<>(this.jobs.getItems()); for (BenchmarkJob bj : jobs) { registry.addIfAbsent(bj); } registry.update(); + Set<ObservableValue<BenchmarkJob>> actual = new HashSet<>(this.jobs.getItems()); + executorServiceFX.execute(() -> { - for (UpdatableBenchmarkJob value : registry.getAllItems()) { + for (ObservableBenchmarkJob value : registry.getAllItems()) { if (!actual.contains(value)) { this.jobs.getItems().add(value); } @@ -249,11 +250,11 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont @SuppressWarnings("unchecked") private void setCellValueFactoryCompletable(int index, Function<BenchmarkJob, CompletableFuture<String>> mapper) { JavaFXRoutines.setCellValueFactory(jobs, index, mapper); - ((TableColumn<UpdatableBenchmarkJob, CompletableFuture<String>>) jobs.getColumns().get(index)) + ((TableColumn<ObservableBenchmarkJob, CompletableFuture<String>>) jobs.getColumns().get(index)) .setCellFactory( - column -> new JavaFXRoutines.TableCellAdapter<UpdatableBenchmarkJob, CompletableFuture<String>>( - new JavaFXRoutines.FutureValueUpdater<UpdatableBenchmarkJob, String, CompletableFuture<String>>( - new JavaFXRoutines.StringValueUpdater<UpdatableBenchmarkJob>(), + column -> new JavaFXRoutines.TableCellAdapter<ObservableBenchmarkJob, CompletableFuture<String>>( + new JavaFXRoutines.FutureValueUpdater<ObservableBenchmarkJob, String, CompletableFuture<String>>( + new JavaFXRoutines.StringValueUpdater<ObservableBenchmarkJob>(), executorServiceFX))); } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java index 034bd85d9a7ef7afc830bdf84983409830816093..f6d83b6a90eb3773bdd29595a8b92c8910782a23 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java @@ -12,10 +12,10 @@ import cz.it4i.fiji.haas.ui.ObservableValueRegistry; import cz.it4i.fiji.haas.ui.UpdatableObservableValue.UpdateStatus; import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.BenchmarkJob; -import cz.it4i.fiji.haas_spim_benchmark.core.UpdatableBenchmarkJob; +import cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob; import javafx.beans.value.ObservableValue; -public class ObservableBenchmarkJobRegistry extends ObservableValueRegistry<BenchmarkJob,UpdatableBenchmarkJob> { +public class ObservableBenchmarkJobRegistry extends ObservableValueRegistry<BenchmarkJob,ObservableBenchmarkJob> { @SuppressWarnings("unused") private static Logger log = LoggerFactory @@ -30,26 +30,26 @@ public class ObservableBenchmarkJobRegistry extends ObservableValueRegistry<Benc } @Override - public UpdatableBenchmarkJob addIfAbsent(BenchmarkJob value) { - return (UpdatableBenchmarkJob) super.addIfAbsent(value); + public ObservableBenchmarkJob addIfAbsent(BenchmarkJob value) { + return (ObservableBenchmarkJob) super.addIfAbsent(value); } @Override - public UpdatableBenchmarkJob get(BenchmarkJob value) { - return (UpdatableBenchmarkJob) super.get(value); + public ObservableBenchmarkJob get(BenchmarkJob value) { + return (ObservableBenchmarkJob) super.get(value); } @Override protected ObservableValue<BenchmarkJob> remove(BenchmarkJob value) { - UpdatableBenchmarkJob result = (UpdatableBenchmarkJob) super.remove(value); + ObservableBenchmarkJob result = (ObservableBenchmarkJob) super.remove(value); result.removed(); return result; } @Override - protected UpdatableBenchmarkJob constructObservableValue(BenchmarkJob v, + protected ObservableBenchmarkJob constructObservableValue(BenchmarkJob v, Function<BenchmarkJob, UpdateStatus> updateFunction, Function<BenchmarkJob, Object> stateProvider) { - return new UpdatableBenchmarkJob(v, updateFunction, stateProvider, executorUI); + return new ObservableBenchmarkJob(v, updateFunction, stateProvider, executorUI); }