docs: private Color[] getColorCodings(ALTaskThread thread) {
      	if (thread == null) {
      		return null;
      	}
      	
      	ALMainTask task = (ALMainTask) thread.getTask();
      	
      	List<ALTaskThread> subtaskThreads = task.getSubtaskThreads();
      	
      	if (subtaskThreads.size() == 0) {
      		// no hierarchical thread, e.g. ALPrequentialEvaluationTask
      		return new Color[]{task.getColorCoding()};
      	}
      	
      	
      	if (task.getClass() == ALPartitionEvaluationTask.class) {
      		// if the task is a cross validation task, it displays the mean
      		// over the underlying params. The color coding therefore 
      		// corresponds to the color coding of each of its subtasks.
      		return getColorCodings(subtaskThreads.get(0));
      	}
      	
      	Color[] colors = new Color[subtaskThreads.size()];
      	for (int i = 0; i < subtaskThreads.size(); i++) {
      		ALMainTask subtask = (ALMainTask) subtaskThreads.get(i).getTask();
      		colors[i] = subtask.getColorCoding();
      	}
      	return colors;
      }