tabular-data-monitor-widget/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTreeDataGenerator.java

83 lines
2.7 KiB
Java

package org.gcube.portlets.user.td.monitorwidget.client.details.tree;
import java.util.ArrayList;
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
import org.gcube.portlets.user.td.gwtservice.shared.task.JobS;
import org.gcube.portlets.user.td.gwtservice.shared.task.TaskS;
import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsJobS;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.i18n.client.DateTimeFormat;
/**
*
* @author giancarlo email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class MonitorTreeDataGenerator {
protected DateTimeFormat sdf = DateTimeFormat
.getFormat("yyyy-MM-dd HH:mm:ss");
protected MonitorFolderDto root;
public MonitorTreeDataGenerator(OperationMonitor operationMonitor) {
Log.debug("MonitorTreeDataGenerator");
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
if (operationMonitor!=null && operationMonitor.getTask() != null) {
TaskS task = operationMonitor.getTask();
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
for (JobS job : task.getJobs()) {
ArrayList<MonitorBaseDto> validations = new ArrayList<MonitorBaseDto>();
for (ValidationsJobS v : job.getValidationsJobS()) {
MonitorValidationJobSDto validationDto = new MonitorValidationJobSDto(
task.getId() + "-" + job.getId() + "-" + v.getId(),
v.getWorkerState(), v.getProgress(),
v.getDescription(), v.getErrorMessage(),
v.getHumanReadableStatus(), job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(), job.getDescription(),
job.getWorkerState().toString(), job.getHumaReadableStatus(),job.getProgress(),
validations);
jobs.add(foldJob);
}
MonitorFolderDto foldTask = new MonitorFolderDto("task",
task.getId(), task.getId()+" [Date:"+sdf.format(task.getStartTime())+"]", task
.getState().toString(), "",task.getProgress(), jobs);
childrens.add(foldTask);
root = new MonitorFolderDto("root", "-1", "root", "root", "",0,
childrens);
Log.debug("Generated root");
//printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
childrens);
Log.debug("Generated root without childrens");
}
}
public MonitorFolderDto getRoot() {
return root;
}
protected void printRecorsive(MonitorFolderDto root) {
for (MonitorBaseDto base : root.getChildrens()) {
Log.debug("+++");
Log.debug("Children:[id=" +base.getId() +", toString="+base.toString()+"]");
if (base instanceof MonitorFolderDto) {
printRecorsive((MonitorFolderDto) base);
}
Log.debug("---");
}
}
}