From d2a12c25fcbea187affa4580bb76efc495c0d893 Mon Sep 17 00:00:00 2001 From: Jan Kozusznik <jan@kozusznik.cz> Date: Thu, 16 Nov 2017 22:14:22 +0100 Subject: [PATCH] refactoring --- .../cz/it4i/fiji/haas/CheckStatusOfHaaS.java | 2 +- .../java/cz/it4i/fiji/haas/CommandBase.java | 21 -------- .../java/cz/it4i/fiji/haas/ImageJGate.java | 8 --- .../src/main/java/cz/it4i/fiji/haas/Job.java | 12 ++++- .../java/cz/it4i/fiji/haas/JobManager.java | 5 ++ .../java/cz/it4i/fiji/haas/RunWithHaaS.java | 2 +- .../haas/ui/CheckStatusOfHaaSController.java | 52 +++++++++---------- 7 files changed, 44 insertions(+), 58 deletions(-) delete mode 100644 haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java delete mode 100644 haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java index c448de1c..984cde4f 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CheckStatusOfHaaS.java @@ -25,7 +25,7 @@ import net.imagej.ImageJ; * */ @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Check status of HaaS") -public class CheckStatusOfHaaS extends CommandBase implements Command { +public class CheckStatusOfHaaS implements Command { @Parameter private LogService log; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java deleted file mode 100644 index 835b0ff5..00000000 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/CommandBase.java +++ /dev/null @@ -1,21 +0,0 @@ -package cz.it4i.fiji.haas; - -import org.scijava.log.LogService; -import org.scijava.plugin.Parameter; - -class CommandBase { - @Parameter - private LogService _log; - - protected ImageJGate getGate() { - return gate; - } - - private ImageJGate gate = new ImageJGate() { - - @Override - public LogService getLog() { - return _log; - } - }; -} diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java deleted file mode 100644 index 1a5ce21a..00000000 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ImageJGate.java +++ /dev/null @@ -1,8 +0,0 @@ -package cz.it4i.fiji.haas; - -import org.scijava.log.LogService; - -interface ImageJGate { - - LogService getLog(); -} diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java index 895a73ed..f6d89146 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java @@ -13,6 +13,9 @@ import java.util.EnumSet; import java.util.Properties; import java.util.function.Supplier; +import org.scijava.log.LogService; +import org.scijava.plugin.Parameter; + import cz.it4i.fiji.haas_java_client.HaaSClient; import cz.it4i.fiji.haas_java_client.JobInfo; import cz.it4i.fiji.haas_java_client.JobState; @@ -31,6 +34,9 @@ public class Job { private static String JOB_INFO_FILE = ".jobinfo"; + @Parameter + private LogService log; + private Path jobDir; private Supplier<HaaSClient> haasClientSupplier; @@ -79,7 +85,6 @@ public class Job { } synchronized public void updateState() throws IOException { - long jobId = getJobId(); JobState actualState = updateJobInfo().getState(); if (EnumSet.of(JobState.Failed, JobState.Finished, JobState.Canceled).contains(actualState) && state != actualState) { @@ -98,6 +103,11 @@ public class Job { } haasClientSupplier.get().download(getJobId(), jobDir); needsDownload = false; + try { + saveJobinfo(); + } catch (IOException e) { + log.error(e); + } } public JobState getState() { diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java index 193e41d6..2a6cd6c5 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java @@ -103,6 +103,11 @@ public class JobManager { return job.getEndTime().getTime().toString(); } + public void downloadData() { + job.download(); + fireValueChangedEvent(); + } + @Override public JobInfo getValue() { return this; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java index 2728790b..bbae5503 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/RunWithHaaS.java @@ -21,7 +21,7 @@ import net.imagej.ImageJ; * */ @Plugin(type = Command.class, headless = true, menuPath = "Plugins>Run with HaaS") -public class RunWithHaaS extends CommandBase implements Command { +public class RunWithHaaS implements Command { @Parameter private LogService log; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java index 55b671ab..68b31a1e 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/CheckStatusOfHaaSController.java @@ -1,7 +1,5 @@ package cz.it4i.fiji.haas.ui; - - import java.util.function.Function; import org.scijava.log.LogService; @@ -19,59 +17,61 @@ import javafx.scene.control.TableView; import javafx.scene.input.ContextMenuEvent; public class CheckStatusOfHaaSController { - - + @Parameter private LogService logService; - + @FXML private TableView<JobInfo> jobs; - + public CheckStatusOfHaaSController() { - + } - + public void addJob(JobInfo job) { jobs.getItems().add(job); } - + public void init() { + initTable(); + initMenu(); + } + + private void initMenu() { ContextMenu cm = new ContextMenu(); MenuItem download = new MenuItem("Download"); + download.setOnAction(ev->jobs.getSelectionModel().getSelectedItem().downloadData()); cm.getItems().add(download); - setCellValueFactory(0,j->j.getId().toString()); - setCellValueFactory(1,j->j.getState().toString() + (j.needsDownload()?" - needs download":"")); - setCellValueFactory(2,j->j.getStartTime().toString()); - setCellValueFactory(3,j->j.getEndTime().toString()); jobs.setContextMenu(cm); jobs.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() { @Override public void handle(ContextMenuEvent event) { - if(jobs.getSelectionModel().getSelectedCells().size() < 1) { + if (jobs.getSelectionModel().getSelectedCells().size() < 1) { return; } - int row = jobs.getSelectionModel().getSelectedCells().get(0).getRow(); + JobInfo job = jobs.getSelectionModel().getSelectedItem(); - if(0 >= row && row < jobs.getItems().size() && jobs.getItems().get(row).needsDownload()) { + if (job != null && job.needsDownload()) { download.setDisable(false); } else { download.setDisable(true); } - - } }); - logService.info("init"); } - - @SuppressWarnings("unchecked") - private void setCellValueFactory(int index, Function<JobInfo,String> mapper) { - ((TableColumn<JobInfo, String>)jobs.getColumns().get(index)).setCellValueFactory(f->getObservableValue(f, mapper)); - + + private void initTable() { + setCellValueFactory(0, j -> j.getId().toString()); + setCellValueFactory(1, j -> j.getState().toString() + (j.needsDownload() ? " - needs download" : "")); + setCellValueFactory(2, j -> j.getStartTime().toString()); + setCellValueFactory(3, j -> j.getEndTime().toString()); } - private ObservableValue<String> getObservableValue(CellDataFeatures<JobInfo, String> feature, Function<JobInfo,String> mapper) { - return new ObservableValueAdapter<JobInfo,String>(feature.getValue(), mapper); + @SuppressWarnings("unchecked") + private void setCellValueFactory(int index, Function<JobInfo, String> mapper) { + ((TableColumn<JobInfo, String>) jobs.getColumns().get(index)) + .setCellValueFactory(f -> new ObservableValueAdapter<JobInfo, String>(f.getValue(), mapper)); + } } -- GitLab