From b28507056327d34b9008da9a9091f1f7f0495c69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Wed, 7 Mar 2018 11:27:09 +0100
Subject: [PATCH] iss1026: TaskComputationView

---
 .../ui/TaskComputationControl.java            | 58 +++++++++++++++++++
 .../ui/TaskComputationView.fxml               | 40 +++++++++++++
 2 files changed, 98 insertions(+)
 create mode 100644 haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java
 create mode 100644 haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationView.fxml

diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java
new file mode 100644
index 00000000..a80ffed9
--- /dev/null
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java
@@ -0,0 +1,58 @@
+package cz.it4i.fiji.haas_spim_benchmark.ui;
+
+import java.awt.Window;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import cz.it4i.fiji.haas.ui.CloseableControl;
+import cz.it4i.fiji.haas.ui.InitiableControl;
+import cz.it4i.fiji.haas.ui.JavaFXRoutines;
+import cz.it4i.fiji.haas_spim_benchmark.core.TaskComputation;
+import cz.it4i.fiji.haas_spim_benchmark.ui.TaskComputationAdapter.ObservableLog;
+import javafx.scene.Node;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TabPane;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.Priority;
+
+public class TaskComputationControl extends TabPane implements CloseableControl, InitiableControl {
+	@SuppressWarnings("unused")
+	private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas_spim_benchmark.ui.TaskComputationControl.class);
+
+	private final TaskComputationAdapter adapter;
+	
+	public TaskComputationControl(TaskComputation computation) {
+		JavaFXRoutines.initRootAndController("TaskComputationView.fxml", this);
+		adapter = new TaskComputationAdapter(computation);
+		
+	}
+	
+	@Override
+	public void init(Window parameter) {
+		RemoteFilesInfoControl infoControl=  new RemoteFilesInfoControl(adapter.getOutputs());
+		infoControl.init(parameter);
+		addTab("Output files", infoControl);
+		for (ObservableLog log: adapter.getLogs()) {
+			LogViewControl logViewControl = new LogViewControl();
+			logViewControl.setObservable(log.getContent());
+			addTab(log.getName(), logViewControl);
+		}
+	}
+
+	private void addTab(String title, Node control) {
+		Tab t = new Tab(title);
+		t.setClosable(false);
+		HBox hbox = new HBox();
+		HBox.setHgrow(control, Priority.ALWAYS);
+		hbox.getChildren().add(control);
+		t.setContent(hbox);
+		getTabs().add(t);
+	}
+	@Override
+	public void close() {
+		adapter.close();
+	}
+
+	
+}
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationView.fxml b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationView.fxml
new file mode 100644
index 00000000..f7daf956
--- /dev/null
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationView.fxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import cz.it4i.fiji.haas_spim_benchmark.ui.LogViewControl?>
+<?import cz.it4i.fiji.haas_spim_benchmark.ui.SPIMPipelineProgressViewController?>
+<?import javafx.scene.control.Tab?>
+<?import javafx.scene.control.TabPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+
+
+<fx:root type="TabPane" xmlns:fx="http://javafx.com/fxml/1"
+	xmlns="http://javafx.com/javafx/8.0.65" fx:controller="cz.it4i.fiji.haas_spim_benchmark.ui.TaskComputationControl">
+	<tabs>
+		<Tab closable="false" text="Progress">
+			<content>
+				<HBox>
+					<SPIMPipelineProgressViewController fx:id="progressView"
+						HBox.hgrow="ALWAYS" />
+
+				</HBox>
+			</content>
+		</Tab>
+		<Tab closable="false" text="Snakemake output">
+			<content>
+				<HBox>
+					<LogViewControl fx:id="errorOutput" HBox.hgrow="ALWAYS" />
+
+				</HBox>
+			</content>
+		</Tab>
+		<Tab closable="false" text="Other output">
+			<content>
+				<HBox>
+					<LogViewControl fx:id="standardOutput" HBox.hgrow="ALWAYS" />
+				</HBox>
+			</content>
+
+		</Tab>
+	</tabs>
+</fx:root>
-- 
GitLab