Rescued from formatMilliseconds() from ProcessorResultsComponent
diff --git a/taverna-monitor-view/src/main/java/org/apache/taverna/workbench/views/monitor/progressreport/WorkflowRunProgressTreeTableModel.java b/taverna-monitor-view/src/main/java/org/apache/taverna/workbench/views/monitor/progressreport/WorkflowRunProgressTreeTableModel.java
index a778eed..2c1640a 100644
--- a/taverna-monitor-view/src/main/java/org/apache/taverna/workbench/views/monitor/progressreport/WorkflowRunProgressTreeTableModel.java
+++ b/taverna-monitor-view/src/main/java/org/apache/taverna/workbench/views/monitor/progressreport/WorkflowRunProgressTreeTableModel.java
@@ -18,8 +18,8 @@
import static java.util.Collections.nCopies;
import static org.apache.taverna.workbench.views.monitor.progressreport.WorkflowRunProgressTreeTableModel.Column.values;
-import static org.apache.taverna.workbench.views.results.processor.ProcessorResultsComponent.formatMilliseconds;
+import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -57,7 +57,29 @@
public static final String ITERATIONS = "Queued iterations";
public static final String ITERATIONS_DONE = "Completed iterations";
public static final String ITERATIONS_FAILED = "Iterations with errors";
+ private static final String HOURS = "h";
+ private static final String MINUTES = "m";
+ private static final String SECONDS = "s";
+ private static final String MILLISECONDS = "ms";
+
+ public static String formatMilliseconds(long timeInMiliseconds) {
+ double timeInSeconds;
+ if (timeInMiliseconds < 1000)
+ return timeInMiliseconds + " " + MILLISECONDS;
+ NumberFormat numberFormat = NumberFormat.getNumberInstance();
+ numberFormat.setMaximumFractionDigits(1);
+ numberFormat.setMinimumFractionDigits(1);
+ timeInSeconds = timeInMiliseconds / 1000.0;
+ if (timeInSeconds < 60)
+ return numberFormat.format(timeInSeconds) + " " + SECONDS;
+ double timeInMinutes = timeInSeconds / 60.0;
+ if (timeInMinutes < 60)
+ return numberFormat.format(timeInMinutes) + " " + MINUTES;
+ double timeInHours = timeInMinutes / 60.0;
+ return numberFormat.format(timeInHours) + " " + HOURS;
+ }
+
public enum Column {
NAME("Name", TreeTableModel.class), STATUS("Status"), ITERATIONS_QUEUED(
"Queued iterations"), ITERATIONS_DONE("Iterations done"), ITERATIONS_FAILED(
@@ -140,6 +162,7 @@
return nodeForObject.get(workflowObject);
}
+
public void setColumnValues(StatusReport<?, ?> report, List<Object> columns) {
if (report instanceof WorkflowReport) {
WorkflowReport workflowReport = (WorkflowReport) report;