diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorWidgetEntry.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorWidgetEntry.java index a5f895f..e94be77 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorWidgetEntry.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorWidgetEntry.java @@ -6,6 +6,7 @@ import java.util.Date; import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor; 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.JobSClassifier; import org.gcube.portlets.user.td.gwtservice.shared.task.State; import org.gcube.portlets.user.td.gwtservice.shared.task.TaskS; import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsJobS; @@ -135,28 +136,28 @@ public class MonitorWidgetEntry implements EntryPoint { validationsJobs.add(validationJobS); ArrayList jobs = new ArrayList(); - JobS job1 = new JobS("1", genProgress(), "Edit Row Job for Human", + JobS job1 = new JobS("1", genProgress(), "Edit Row Job for Human",JobSClassifier.PROCESSING, "Edit Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job1); - JobS job2 = new JobS("2", genProgress(), "Add Row Job for Human", + JobS job2 = new JobS("2", genProgress(), "Add Row Job for Human",JobSClassifier.PROCESSING, "Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job2); - JobS job3 = new JobS("3", genProgress(), "Delete Job for Human", + JobS job3 = new JobS("3", genProgress(), "Delete Job for Human",JobSClassifier.PROCESSING, "Delete Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job3); - JobS job4 = new JobS("4", genProgress(), "Edit Row Job for Human", + JobS job4 = new JobS("4", genProgress(), "Edit Row Job for Human",JobSClassifier.PROCESSING, "Edit Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job4); - JobS job5 = new JobS("5", genProgress(), "Add Row Job for Human", + JobS job5 = new JobS("5", genProgress(), "Add Row Job for Human",JobSClassifier.PROCESSING, "Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job5); - JobS job6 = new JobS("6", genProgress(), "Delete Job for Human", + JobS job6 = new JobS("6", genProgress(), "Delete Job for Human",JobSClassifier.PROCESSING, "Delete Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); jobs.add(job6); diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/MonitorDetailPanel.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/MonitorDetailPanel.java index cd2c7f3..555af3a 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/MonitorDetailPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/MonitorDetailPanel.java @@ -4,10 +4,13 @@ import java.util.ArrayList; import java.util.List; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor; +import org.gcube.portlets.user.td.gwtservice.shared.task.JobSClassifier; import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState; import org.gcube.portlets.user.td.monitorwidget.client.custom.ExtendedTreeGridView; import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorBaseDto; import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorFolderDto; +import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorJobSDto; +import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorTaskSDto; import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorTreeDataGenerator; import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorValidationJobSDto; import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle; @@ -16,13 +19,15 @@ import org.gcube.portlets.user.td.monitorwidget.client.utils.UtilsGXT3; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.cell.client.AbstractCell; import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; -import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.web.bindery.event.shared.EventBus; import com.sencha.gxt.cell.core.client.ProgressBarCell; import com.sencha.gxt.core.client.ToStringValueProvider; import com.sencha.gxt.core.client.ValueProvider; +import com.sencha.gxt.core.client.XTemplates; import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.data.shared.IconProvider; import com.sencha.gxt.data.shared.ModelKeyProvider; @@ -52,7 +57,17 @@ public class MonitorDetailPanel extends FramedPanel { private static final int CC2WIDTH = 100; private static final int CC3WIDTH = 140; private static final int CC4WIDTH = 100; + + interface DtoTemplates extends XTemplates { + @XTemplate("{value}") + SafeHtml format(String id, String value); + /*"" + SafeHtmlUtils.htmlEscape(value) + + ""*/ + + + } private VerticalLayoutContainer con; @@ -107,9 +122,36 @@ public class MonitorDetailPanel extends FramedPanel { @Override public void render(Context context, String value, SafeHtmlBuilder sb) { - sb.appendHtmlConstant("" - + SafeHtmlUtils.htmlEscape(value) + ""); + String key = (String) context.getKey(); + MonitorBaseDto d = store.findModelWithKey(key); + DtoTemplates dtoTemplates = GWT.create(DtoTemplates.class); + + if (d instanceof MonitorTaskSDto) { + sb.append(dtoTemplates.format("Task", value)); + } else { + if (d instanceof MonitorJobSDto) { + MonitorJobSDto jobSDto = (MonitorJobSDto) d; + + String label = jobSDto.getJobClassfier().getLabel(); + String response; + if (label == null||label.isEmpty()) { + response = "Job"; + } else { + response = "Job "+label; + } + + sb.append(dtoTemplates.format(response, value)); + } else { + if (d instanceof MonitorValidationJobSDto) { + sb.append(dtoTemplates.format("Validation", value)); + } else{ + sb.append(dtoTemplates.format("", value)); + } + } + } + + + } }); @@ -259,20 +301,56 @@ public class MonitorDetailPanel extends FramedPanel { public ImageResource getIcon(MonitorBaseDto model) { ImageResource img = null; if (model instanceof MonitorFolderDto) { - String type = ((MonitorFolderDto) model).getType(); - if (type.compareTo("job") == 0) { - img = ResourceBundle.INSTANCE.cog(); + if (model instanceof MonitorJobSDto) { + MonitorJobSDto jobSDto = (MonitorJobSDto) model; + JobSClassifier jobClassifier = jobSDto + .getJobClassfier(); + if (jobClassifier == null) { + img = ResourceBundle.INSTANCE.cog(); + } else { + switch (jobClassifier) { + case DATAVALIDATION: + img = ResourceBundle.INSTANCE + .cogDataValidation(); + break; + case POSTPROCESSING: + img = ResourceBundle.INSTANCE + .cogPostprocessing(); + break; + case PREPROCESSING: + img = ResourceBundle.INSTANCE + .cogPreprocessing(); + break; + case PROCESSING: + img = ResourceBundle.INSTANCE.cog(); + break; + case UNKNOWN: + img = ResourceBundle.INSTANCE.cog(); + break; + default: + img = ResourceBundle.INSTANCE.cog(); + break; + + } + + } + } else { - if (type.compareTo("task") == 0) { + if (model instanceof MonitorTaskSDto) { img = ResourceBundle.INSTANCE.basket(); } else { } } } else { - img = ResourceBundle.INSTANCE.tableValidation(); + if (model instanceof MonitorValidationJobSDto) { + img = ResourceBundle.INSTANCE.tableValidation(); + } else { + img = ResourceBundle.INSTANCE.tableValidation(); + } } - return img; + return img; + } }; tree.setIconProvider(iconProvider); diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorFolderDto.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorFolderDto.java index 1643e6d..0fccb75 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorFolderDto.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorFolderDto.java @@ -11,14 +11,14 @@ import java.util.ArrayList; public class MonitorFolderDto extends MonitorBaseDto { private static final long serialVersionUID = 4644048540524701598L; - private String description; - private ArrayList childrens; - private String type; - private String state; - private String humanReadableStatus; - private float progress; - private String startTime; - private String endTime; + protected String description; + protected ArrayList childrens; + protected String type; + protected String state; + protected String humanReadableStatus; + protected float progress; + protected String startTime; + protected String endTime; public MonitorFolderDto(){ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorJobSDto.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorJobSDto.java new file mode 100644 index 0000000..d8075a0 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorJobSDto.java @@ -0,0 +1,42 @@ +package org.gcube.portlets.user.td.monitorwidget.client.details.tree; + +import java.util.ArrayList; + +import org.gcube.portlets.user.td.gwtservice.shared.task.JobSClassifier; + +/** + * + * @author giancarlo + * email: g.panichi@isti.cnr.it + * + */ +public class MonitorJobSDto extends MonitorFolderDto { + + private static final long serialVersionUID = 4644048540524701598L; + private JobSClassifier jobClassifier; + + public MonitorJobSDto(){ + super(); + } + + public MonitorJobSDto(String type,String id, JobSClassifier jobClassifier,String description, String state, + String humanReadableStatus, float progress, ArrayList childrens){ + super(type, id, description, state,humanReadableStatus,progress, childrens); + this.jobClassifier=jobClassifier; + + } + + public JobSClassifier getJobClassfier() { + return jobClassifier; + } + + public void setJobClassfier(JobSClassifier jobClassfier) { + this.jobClassifier = jobClassfier; + } + + @Override + public String toString() { + return description; + } + +} diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTaskSDto.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTaskSDto.java new file mode 100644 index 0000000..e45bd1a --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTaskSDto.java @@ -0,0 +1,29 @@ +package org.gcube.portlets.user.td.monitorwidget.client.details.tree; + +import java.util.ArrayList; + +/** + * + * @author giancarlo email: g.panichi@isti.cnr.it + * + */ +public class MonitorTaskSDto extends MonitorFolderDto { + + private static final long serialVersionUID = 4644048540524701598L; + + public MonitorTaskSDto() { + super(); + } + + public MonitorTaskSDto(String type, String id, String description, + String state, String humanReadableStatus, float progress, + ArrayList childrens) { + super(type, id, description, state, humanReadableStatus, progress, + childrens); + + } + + + +} diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTreeDataGenerator.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTreeDataGenerator.java index a17df18..578b75a 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTreeDataGenerator.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorTreeDataGenerator.java @@ -50,14 +50,14 @@ public class MonitorTreeDataGenerator { validations.add(validationDto); } - MonitorFolderDto foldJob = new MonitorFolderDto("job", - task.getId() + "-" + job.getId(), + MonitorJobSDto foldJob = new MonitorJobSDto("job", + task.getId() + "-" + job.getId(),job.getJobClassifier(), job.getDescription(), job.getWorkerState() .toString(), job.getHumaReadableStatus(), job.getProgress(), validations); jobs.add(foldJob); } - MonitorFolderDto foldTask = new MonitorFolderDto("task", + MonitorTaskSDto foldTask = new MonitorTaskSDto("task", task.getId(), operationMonitor.getOperationId() .toString(), task.getState().toString(), "", task.getProgress(), jobs); @@ -108,8 +108,8 @@ public class MonitorTreeDataGenerator { validations.add(validationDto); } - MonitorFolderDto foldJob = new MonitorFolderDto("job", - task.getId() + "-" + job.getId(), + MonitorJobSDto foldJob = new MonitorJobSDto("job", + task.getId() + "-" + job.getId(),job.getJobClassifier(), job.getDescription(), job.getWorkerState() .toString(), job.getHumaReadableStatus(), job.getProgress(), validations); @@ -165,15 +165,16 @@ public class MonitorTreeDataGenerator { validations.add(validationDto); } - MonitorFolderDto foldJob = new MonitorFolderDto( + MonitorJobSDto foldJob = new MonitorJobSDto( "job", task.getId() + "-" + job.getId(), + job.getJobClassifier(), job.getDescription(), job.getWorkerState() .toString(), job.getHumaReadableStatus(), job.getProgress(), validations); jobs.add(foldJob); } - MonitorFolderDto foldTask = new MonitorFolderDto( + MonitorTaskSDto foldTask = new MonitorTaskSDto( "task", task.getId(), operationMonitor .getOperationId().toString(), task .getState().toString(), "", diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorValidationJobSDto.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorValidationJobSDto.java index 4edc5b8..900fcc0 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorValidationJobSDto.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/details/tree/MonitorValidationJobSDto.java @@ -66,6 +66,8 @@ public class MonitorValidationJobSDto extends MonitorBaseDto { this.progress = progress; } + + public String getDescription() { return description; } diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/ResourceBundle.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/ResourceBundle.java index adbeb8d..3fe38a9 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/ResourceBundle.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/ResourceBundle.java @@ -3,6 +3,7 @@ package org.gcube.portlets.user.td.monitorwidget.client.resources; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ClientBundle.Source; public interface ResourceBundle extends ClientBundle { @@ -35,7 +36,25 @@ public interface ResourceBundle extends ClientBundle { @Source("cog_32.png") ImageResource cog32(); - + + @Source("cog-preprocessing.png") + ImageResource cogPreprocessing(); + + @Source("cog-preprocessing_32.png") + ImageResource cogPreprocessing32(); + + @Source("cog-postprocessing.png") + ImageResource cogPostprocessing(); + + @Source("cog-postprocessing_32.png") + ImageResource cogPostprocessing32(); + + @Source("cog-datavalidation.png") + ImageResource cogDataValidation(); + + @Source("cog-datavalidation_32.png") + ImageResource cogDataValidation32(); + @Source("basket.png") ImageResource basket(); diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png new file mode 100644 index 0000000..b3a8ef5 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png new file mode 100644 index 0000000..480b24d Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png new file mode 100644 index 0000000..3d5d402 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png new file mode 100644 index 0000000..6185ee7 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png new file mode 100644 index 0000000..e7655d2 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png differ diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png new file mode 100644 index 0000000..2cc7bf9 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png new file mode 100644 index 0000000..b3a8ef5 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png new file mode 100644 index 0000000..480b24d Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-datavalidation_32.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png new file mode 100644 index 0000000..3d5d402 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png new file mode 100644 index 0000000..6185ee7 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-postprocessing_32.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png new file mode 100644 index 0000000..e7655d2 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing.png differ diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png new file mode 100644 index 0000000..2cc7bf9 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/client/resources/cog-preprocessing_32.png differ