Skip to content
Snippets Groups Projects
Commit d2a12c25 authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

refactoring

parent ff40fe1a
Branches
Tags
No related merge requests found
......@@ -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;
......
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;
}
};
}
package cz.it4i.fiji.haas;
import org.scijava.log.LogService;
interface ImageJGate {
LogService getLog();
}
......@@ -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() {
......
......@@ -103,6 +103,11 @@ public class JobManager {
return job.getEndTime().getTime().toString();
}
public void downloadData() {
job.download();
fireValueChangedEvent();
}
@Override
public JobInfo getValue() {
return this;
......
......@@ -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;
......
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));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment