From 1d953b39f62d2d19b7c520941b4f2f509cadd8db Mon Sep 17 00:00:00 2001
From: Jan Kozusznik <jan@kozusznik.cz>
Date: Wed, 31 Jan 2018 00:40:16 +0100
Subject: [PATCH] enable decoration

---
 .../java/cz/it4i/fiji/haas/ui/FXFrame.java    |  7 ++--
 .../SPIMPipelineProgressViewController.java   | 32 +++++++++++++++----
 2 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
index 47b16deb..88eb57a4 100644
--- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java
@@ -55,9 +55,10 @@ public class FXFrame<C extends FXFrame.Controller> extends JDialog {
 		}
 		
 		@SuppressWarnings("unchecked")
-		static public <U,T extends ObservableValue<U>> void setCellValueFactory(TableView<T> tableView,int index, Function<U, String> mapper) {
-			((TableColumn<T, String>) tableView.getColumns().get(index))
-					.setCellValueFactory(f -> new ObservableValueAdapter<U, String>(f.getValue(), mapper));
+		static public <U,T extends ObservableValue<U>,V> void setCellValueFactory(TableView<T> tableView,int index, Function<U, V> mapper) {
+			((TableColumn<T, V>) tableView.getColumns().get(index))
+					.setCellValueFactory(f -> new ObservableValueAdapter<U, V>(f.getValue(), mapper));
+			//((TableColumn<T, String>) tableView.getColumns().get(index)).setCellFactory(f->f.set);
 
 		}
 	}
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java
index 4689fdd8..c69cc997 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java
@@ -10,12 +10,14 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import cz.it4i.fiji.haas.ui.FXFrame;
+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.Constants;
 import cz.it4i.fiji.haas_spim_benchmark.core.Task;
 import cz.it4i.fiji.haas_spim_benchmark.core.TaskComputation;
 import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
+import javafx.scene.control.TableCell;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.TableView;
 
@@ -47,6 +49,7 @@ public class SPIMPipelineProgressViewController implements FXFrame.Controller {
 		this.job = job;
 	}
 
+	@SuppressWarnings("unchecked")
 	private void fillTable() {
 		List<Task> tasks = job.getTasks();
 		if (tasks == null) {
@@ -64,15 +67,32 @@ public class SPIMPipelineProgressViewController implements FXFrame.Controller {
 
 			for (TaskComputation tc : computations) {
 				this.tasks.getColumns().add(new TableColumn<>(tc.getTimepoint() + ""));
-				int index = i;
-				FXFrame.Controller.setCellValueFactory(this.tasks, i, (Function<Task, String>) v -> {
-					List<TaskComputation> items = v.getComputations();
-					if (items.size() >= index) {
-						return "";
+				int index = i++;
+
+				FXFrame.Controller.setCellValueFactory(this.tasks, index, (Function<Task, JobState>) v -> {
+					if (v.getComputations().size() >= index) {
+						return v.getComputations().get(index - 1).getState();
 					} else {
-						return v.getComputations().get(index).getState().toString();
+						return null;
+					}
+				});
+				((TableColumn<ObservableValue<Task>, JobState>)this.tasks.getColumns().get(index)).setCellFactory(column->new TableCell<ObservableValue<Task>,JobState>(){
+					@Override
+			        protected void updateItem(JobState state, boolean empty) {
+						if (state == null || empty) {
+			                setText(null);
+			                setStyle("");
+			            } else {
+			                // Format date.
+			                setText(state + "");
+			                if(state == JobState.Unknown) {
+			                	setStyle("-fx-background-color: yellow");
+			                }
+			            }
+						
 					}
 				});
+
 			}
 
 			this.tasks.getItems()
-- 
GitLab