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: g.panichi@isti.cnr.it * */ 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 childrens = new ArrayList(); if (operationMonitor!=null && operationMonitor.getTask() != null) { TaskS task = operationMonitor.getTask(); ArrayList jobs = new ArrayList(); for (JobS job : task.getJobs()) { ArrayList validations = new ArrayList(); 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("---"); } } }