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

refactoring

parent ff40fe1a
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment