From 7ea82a3f6a0197946def89ddcb254f06d3478dbe Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Thu, 28 Aug 2014 18:12:34 +0000 Subject: [PATCH] Updated OperationMonitor git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@99337 82a268e6-3cf1-43bd-a215-b396298e98cf --- MonitorWidgetTD.launch | 16 ++ pom.xml | 1 + .../monitorwidget/client/MonitorDialog.java | 160 +++++++++++++++--- .../client/MonitorWidgetEntry.java | 57 ++++++- .../client/details/MonitorDetailPanel.java | 111 +++++++++--- .../client/details/tree/MonitorFolderDto.java | 23 ++- .../tree/MonitorTreeDataGenerator.java | 14 +- .../client/resources/MonitorWidgetTD.css | 3 + .../td/monitorwidget/MonitorWidgetTD.gwt.xml | 61 ++++--- src/main/webapp/WEB-INF/web.xml | 2 +- 10 files changed, 360 insertions(+), 88 deletions(-) create mode 100644 MonitorWidgetTD.launch create mode 100644 src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/MonitorWidgetTD.css diff --git a/MonitorWidgetTD.launch b/MonitorWidgetTD.launch new file mode 100644 index 0000000..fc49153 --- /dev/null +++ b/MonitorWidgetTD.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 43f17dd..b627b99 100644 --- a/pom.xml +++ b/pom.xml @@ -289,4 +289,5 @@ + war diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorDialog.java b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorDialog.java index 4cfc698..a1c50e4 100644 --- a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/MonitorDialog.java @@ -6,23 +6,31 @@ import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpire import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession; import org.gcube.portlets.user.td.monitorwidget.client.details.MonitorDetailPanel; +import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import com.allen_sauer.gwt.log.client.Log; import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; +import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode; import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.widget.core.client.FramedPanel; import com.sencha.gxt.widget.core.client.ProgressBar; import com.sencha.gxt.widget.core.client.Window; import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.button.ToolButton; +import com.sencha.gxt.widget.core.client.container.FlowLayoutContainer; +import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; +import com.sencha.gxt.widget.core.client.container.MarginData; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; +import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; +import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; +import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; -import com.sencha.gxt.widget.core.client.form.FieldSet; /** * AddColumnProgressDialog is a Dialog that show progress of AddColumn @@ -34,12 +42,16 @@ import com.sencha.gxt.widget.core.client.form.FieldSet; public class MonitorDialog extends Window implements MonitorUpdaterListener { public static final int STATUS_POLLING_DELAY = 1000; - private static final String WIDTH = "400px"; - private static final String HEIGHT = "120px"; + private static final String WIDTH = "520px"; + private static final String HEIGHT = "378px"; + private static final String PANELWIDTH = "500px"; + private static final String PANELHEIGHT = "308px"; private EventBus eventBus; private String taskId; private MonitorUpdater progressUpdater; - private TextButton ok; + private TextButton btnOk; + private TextButton btnBackground; + private TextButton btnAbort; private TRId trId; private String reason; private String details; @@ -69,24 +81,32 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { setBodyBorder(false); setResizable(true); setModal(true); + setClosable(false); setHeadingText("Progress"); } protected void create(){ FramedPanel panel = new FramedPanel(); + panel.setWidth(PANELWIDTH); + panel.setHeight(PANELHEIGHT); panel.setHeaderVisible(false); panel.setBodyBorder(false); VerticalLayoutContainer v = new VerticalLayoutContainer(); - - ProgressBar progressBar = new ProgressBar(); + /*FlowLayoutContainer progressDetailContainer = new FlowLayoutContainer(); + progressDetailContainer.setScrollMode(ScrollMode.AUTO); + MarginData layoutData = new MarginData(new Margins(5, 5, 5, 5));*/ - FieldSet detailsSet = new FieldSet(); + + ProgressBar progressBar = new ProgressBar(); + progressBar.setWidth("498px"); + + /*FieldSet detailsSet = new FieldSet(); detailsSet.setHeadingText("Details"); - detailsSet.setCollapsible(true); + detailsSet.setCollapsible(true);*/ monitorDetailPanel=new MonitorDetailPanel(eventBus); - detailsSet.add(monitorDetailPanel); + //detailsSet.add(monitorDetailPanel); /*TextField @@ -101,33 +121,107 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { RootPanel.get().add(v); */ - ok = new TextButton("OK"); - ok.addSelectHandler(new SelectHandler() { + btnOk = new TextButton("Ok"); + btnOk.setWidth("70px"); + //btnOk.setIcon(ResourceBundle.INSTANCE.ok()); + //btnOk.setIconAlign(IconAlign.RIGHT); + btnOk.setTitle("Ok"); + + + btnOk.addSelectHandler(new SelectHandler() { public void onSelect(SelectEvent event) { updateInvocation(); } }); - - v.add(progressBar, - new VerticalLayoutData(1, 1, new Margins(5, 5, 5, 5))); - v.add(detailsSet,new VerticalLayoutData(1, 1, new Margins(5, 5, 5, 5))); + btnBackground = new TextButton("Background"); + btnBackground.setWidth("70px"); + //btnOk.setIcon(ResourceBundle.INSTANCE.ok()); + //btnOk.setIconAlign(IconAlign.RIGHT); + btnBackground.setTitle("Background"); + + + btnBackground.addSelectHandler(new SelectHandler() { + + public void onSelect(SelectEvent event) { + startBackground(); + + } + + + }); + + + btnAbort = new TextButton("Abort"); + btnAbort.setWidth("70px"); + //btnOk.setIcon(ResourceBundle.INSTANCE.ok()); + //btnOk.setIconAlign(IconAlign.RIGHT); + btnAbort.setTitle("Abort"); + + + btnAbort.addSelectHandler(new SelectHandler() { + + public void onSelect(SelectEvent event) { + startAbort(); + + } + }); + + + HBoxLayoutContainer flowButton = new HBoxLayoutContainer(); + flowButton.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); + flowButton.setPack(BoxLayoutPack.CENTER); + + flowButton.add(btnOk, new BoxLayoutData(new Margins(0, 4, 0, 4))); + flowButton.add(btnBackground, new BoxLayoutData(new Margins(0, 4, 0, 4))); + flowButton.add(btnAbort, new BoxLayoutData(new Margins(0, 4, 0, 4))); + + + v.add(progressBar, + new VerticalLayoutData(1, -1, new Margins(5, 5, 5, 5))); + + v.add(monitorDetailPanel,new VerticalLayoutData(1, -1, new Margins(5, 5, 5, 5))); + + v.add(flowButton, new VerticalLayoutData(1, 36, + new Margins(5, 5, 5, 5))); + + /*progressDetailContainer.add(progressBar, layoutData); + progressDetailContainer.add(monitorDetailPanel, layoutData);*/ panel.add(v); - panel.addButton(ok); add(panel); - + + + + + + //panel.addButton(btnOk); + + + /* OperationMonitorSession operationMonitorSession = new OperationMonitorSession( taskId); progressUpdater = new MonitorUpdater(operationMonitorSession); progressUpdater.addListener(new MonitorBarUpdater(progressBar)); progressUpdater.addListener(this); - progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY); + progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY);*/ show(); - ok.setVisible(false); + //ok.setVisible(false); + } + + protected void startAbort() { + // TODO Auto-generated method stub + close(); + + } + + protected void startBackground() { + // TODO Auto-generated method stub + close(); + } public void addProgressDialogListener(MonitorDialogListener listener) { @@ -143,6 +237,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { if(monitorDetailPanel!=null){ monitorDetailPanel.update(operationMonitor); } + forceLayout(); } @@ -151,7 +246,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { if(monitorDetailPanel!=null){ monitorDetailPanel.update(operationMonitor); } - + forceLayout(); } @Override @@ -169,15 +264,17 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { public void monitorFailed(Throwable caught, String reason, String details, OperationMonitor operationMonitor) { if(monitorDetailPanel!=null){ monitorDetailPanel.update(operationMonitor); + } + forceLayout(); if (caught instanceof TDGWTSessionExpiredException) { eventBus.fireEvent(new SessionExpiredEvent( SessionExpiredType.EXPIREDONSERVER)); } else { fireOperationFailed(caught,reason,details); hide(); - } + } public void updateInvocation() { @@ -198,8 +295,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { this.trId = trId; this.reason = reason; this.details = details; - ok.setVisible(true); - + btnOk.setVisible(true); + forceLayout(); } @Override @@ -207,6 +304,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { if(monitorDetailPanel!=null){ monitorDetailPanel.update(operationMonitor); } + forceLayout(); } @@ -215,7 +313,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { if(monitorDetailPanel!=null){ monitorDetailPanel.update(operationMonitor); } - + forceLayout(); } @@ -263,7 +361,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { */ @Override protected void initTools() { - if (backgroundBtnEnabled) { + /*if (backgroundBtnEnabled) { backgroundBtn = new ToolButton(ToolButton.CLOSE); backgroundBtn.setToolTip("Put in the background"); backgroundBtn.addSelectHandler(new SelectHandler() { @@ -275,16 +373,17 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { }); header.addTool(backgroundBtn); - } + }*/ super.initTools(); + /* closeBtn.addSelectHandler(new SelectHandler() { public void onSelect(SelectEvent event) { close(); } - }); + });*/ } @@ -293,6 +392,11 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener { } - + public void updateOperationMonitor(OperationMonitor operationMonitor){ + if(monitorDetailPanel!=null){ + monitorDetailPanel.update(operationMonitor); + } + forceLayout(); + } } 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 506afb2..47023ae 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 @@ -1,19 +1,64 @@ package org.gcube.portlets.user.td.monitorwidget.client; +import java.util.ArrayList; +import java.util.Date; + +import org.gcube.portlets.user.td.gwtservice.shared.UIOperationsId; +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.State; +import org.gcube.portlets.user.td.gwtservice.shared.task.TaskS; +import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsJobS; +import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState; + +import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.core.client.EntryPoint; import com.google.web.bindery.event.shared.SimpleEventBus; /** * - * @author "Giancarlo Panichi" - * email: g.panichi@isti.cnr.it - * + * @author "Giancarlo Panichi" email: g.panichi@isti.cnr.it + * */ -public class MonitorWidgetEntry implements EntryPoint { +public class MonitorWidgetEntry implements EntryPoint { public void onModuleLoad() { - SimpleEventBus eventBus=new SimpleEventBus(); - MonitorDialog monitorWidget= new MonitorDialog("taskId",eventBus); + Log.debug("Test MonitorWidget"); + SimpleEventBus eventBus = new SimpleEventBus(); + MonitorDialog monitorWidget = new MonitorDialog("1", eventBus); monitorWidget.show(); + OperationMonitor operationMonitor = new OperationMonitor("1", + UIOperationsId.EditRow); + operationMonitor.setTask(createTaskForTest()); + monitorWidget.updateOperationMonitor(operationMonitor); + + } + + private TaskS createTaskForTest() { + ArrayList validationsJobs = new ArrayList(); + ValidationsJobS validationJobS = new ValidationsJobS("1", + WorkerState.IN_PROGRESS, 0.5f, "Row Validate", null, + "Validation in progress"); + validationsJobs.add(validationJobS); + + ArrayList jobs = new ArrayList(); + JobS job1 = new JobS("1", 0.8f, "Edit Row Job for Human", + "Edit Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); + jobs.add(job1); + + JobS job2 = new JobS("2", 0.3f, "Add Row Job for Human", + "Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); + jobs.add(job2); + + JobS job3 = new JobS("3", 0.72f, "Delete Job for Human", + "Delete Row Job", WorkerState.IN_PROGRESS, null, validationsJobs); + jobs.add(job3); + + TaskS task = new TaskS("1", 0.3f, State.IN_PROGRESS, null, "default", + new Date(), null, jobs); + + return task; + } } 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 500aafb..dc29e4d 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 @@ -5,6 +5,8 @@ import java.util.List; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor; import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsTasksMetadata; +import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState; +import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerStateParser; 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.MonitorTreeDataGenerator; @@ -22,7 +24,7 @@ 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.dom.ScrollSupport.ScrollMode; +import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.data.shared.IconProvider; import com.sencha.gxt.data.shared.ModelKeyProvider; import com.sencha.gxt.data.shared.TreeStore; @@ -45,8 +47,10 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar; import com.sencha.gxt.widget.core.client.treegrid.TreeGrid; public class MonitorDetailPanel extends FramedPanel { - protected String WIDTH = "380px"; - protected String HEIGHT = "200px"; + protected static final String WIDTH = "498px"; + protected static final String HEIGHT = "256px"; + protected static final String GRIDHEIGHT = "212px"; + protected MonitorDetailPanel thisPanel; protected Menu contextMenu; @@ -90,9 +94,9 @@ public class MonitorDetailPanel extends FramedPanel { if (tree != null) { remove(tree); } - if(operationMonitor!=null){ - createTreeData(); - } + + createTreeData(); + } protected void init() { @@ -110,7 +114,7 @@ public class MonitorDetailPanel extends FramedPanel { protected void create() { con = new VerticalLayoutContainer(); - con.setScrollMode(ScrollMode.AUTO); + //con.setScrollMode(ScrollMode.AUTO); store = new TreeStore(new KeyProvider()); @@ -136,34 +140,42 @@ public class MonitorDetailPanel extends FramedPanel { } }); - ColumnConfig cc2 = new ColumnConfig( - new ValueProvider() { + ColumnConfig cc2 = new ColumnConfig( + new ValueProvider() { @Override - public Double getValue(MonitorBaseDto object) { - Double d = null; + public String getValue(MonitorBaseDto object) { + String state = null; if (object instanceof MonitorValidationJobSDto) { - Float f = ((MonitorValidationJobSDto) object).getProgress(); - d = new Double(f); + state = ((MonitorValidationJobSDto) object).getWorkerState().toString(); } - return d; + if (object instanceof MonitorFolderDto) { + state = ((MonitorFolderDto) object).getState(); + } + return state; } @Override - public void setValue(MonitorBaseDto object, Double value) { + public void setValue(MonitorBaseDto object, String value) { if (object instanceof MonitorValidationJobSDto) { + WorkerState workerState=WorkerStateParser.parse(value); ((MonitorValidationJobSDto) object) - .setProgress(value.floatValue()); + .setWorkerState(workerState); + + } + if (object instanceof MonitorFolderDto) { + ((MonitorFolderDto) object) + .setState(value); } } @Override public String getPath() { - return "progress"; + return "status"; } - }, 140, "Progress"); - cc2.setHeader("Progress"); - + }, 100, "Status"); + cc2.setHeader("Status"); + /* ProgressBarCell progress = new ProgressBarCell() { @Override public boolean handlesSelection() { @@ -173,10 +185,60 @@ public class MonitorDetailPanel extends FramedPanel { progress.setProgressText("{0}% Complete"); progress.setWidth(140); cc2.setCell(progress); + */ + ColumnConfig cc3 = new ColumnConfig( + new ValueProvider() { + @Override + public Double getValue(MonitorBaseDto object) { + Double d = null; + if (object instanceof MonitorValidationJobSDto) { + Float f = ((MonitorValidationJobSDto) object).getProgress(); + d = new Double(f); + } + if (object instanceof MonitorFolderDto) { + Float f = ((MonitorFolderDto) object).getProgress(); + d = new Double(f); + } + + return d; + } + + @Override + public void setValue(MonitorBaseDto object, Double value) { + if (object instanceof MonitorValidationJobSDto) { + ((MonitorValidationJobSDto) object) + .setProgress(value.floatValue()); + } + if (object instanceof MonitorFolderDto) { + ((MonitorFolderDto) object) + .setProgress(value.floatValue()); + } + } + + @Override + public String getPath() { + return "progress"; + } + }, 100, "Progress"); + cc3.setHeader("Progress"); + + ProgressBarCell progress = new ProgressBarCell() { + @Override + public boolean handlesSelection() { + return true; + } + }; + progress.setProgressText("{0}% Complete"); + progress.setWidth(110); + cc3.setCell(progress); + + + List> l = new ArrayList>(); l.add(cc1); l.add(cc2); + l.add(cc3); ColumnModel cm = new ColumnModel(l); tree = new TreeGrid(store, cm, cc1); @@ -185,6 +247,8 @@ public class MonitorDetailPanel extends FramedPanel { tree.setLoadMask(true); tree.setColumnResize(true); tree.getView().setAutoExpandColumn(cc1); + tree.setHeight(GRIDHEIGHT); + IconProvider iconProvider = new IconProvider() { @@ -258,11 +322,11 @@ public class MonitorDetailPanel extends FramedPanel { }); toolBar.add(btnCollapseAll); - con.add(toolBar, new VerticalLayoutData(1, -1)); - con.add(tree, new VerticalLayoutData(1, -1)); + con.add(toolBar, new VerticalLayoutData(1, -1,new Margins(0))); + con.add(tree, new VerticalLayoutData(1, -1, new Margins(0))); add(con, new MarginData(0)); - + forceLayout(); } @@ -279,6 +343,7 @@ public class MonitorDetailPanel extends FramedPanel { public void update(OperationMonitor operationMonitor) { this.operationMonitor = operationMonitor; draw(); + } 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 6831c14..ea084d6 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 @@ -14,16 +14,21 @@ public class MonitorFolderDto extends MonitorBaseDto { protected String description; protected ArrayList childrens; protected String type; + protected String state; + protected float progress; public MonitorFolderDto(){ } - public MonitorFolderDto(String type,String id,String description, ArrayList childrens){ + public MonitorFolderDto(String type,String id,String description, String state, float progress, ArrayList childrens){ super(id); this.type=type; this.description=description; + this.state=state; + this.progress=progress; this.childrens=childrens; + } @@ -52,6 +57,22 @@ public class MonitorFolderDto extends MonitorBaseDto { this.description = description; } + public float getProgress() { + return progress; + } + + public void setProgress(float progress) { + this.progress = progress; + } + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } @Override public String toString() { 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 3e33bc4..564a77b 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 @@ -25,7 +25,7 @@ public class MonitorTreeDataGenerator { public MonitorTreeDataGenerator(OperationMonitor operationMonitor) { Log.debug("MonitorTreeDataGenerator"); ArrayList childrens = new ArrayList(); - if (operationMonitor.getTask() != null) { + if (operationMonitor!=null && operationMonitor.getTask() != null) { TaskS task = operationMonitor.getTask(); ArrayList jobs = new ArrayList(); for (JobS job : task.getJobs()) { @@ -42,19 +42,23 @@ public class MonitorTreeDataGenerator { } MonitorFolderDto foldJob = new MonitorFolderDto("job", task.getId() + "-" + job.getId(), job.getDescription(), + job.getWorkerState().toString(), job.getProgress(), validations); jobs.add(foldJob); } MonitorFolderDto foldTask = new MonitorFolderDto("task", - task.getId(), sdf.format(task.getStartTime()), jobs); + task.getId(), sdf.format(task.getStartTime()), task + .getState().toString(), task.getProgress(), jobs); childrens.add(foldTask); - root = new MonitorFolderDto("root", "-1", "root", childrens); + root = new MonitorFolderDto("root", "-1", "root", "root", 0, + childrens); Log.debug("Generated root"); - // printRecorsive(root); + printRecorsive(root); } else { - root = new MonitorFolderDto("root", "-1", "root", childrens); + root = new MonitorFolderDto("root", "-1", "root", "root", 0, + childrens); Log.debug("Generated root without childrens"); } } diff --git a/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/MonitorWidgetTD.css b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/MonitorWidgetTD.css new file mode 100644 index 0000000..d44d232 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/monitorwidget/client/resources/MonitorWidgetTD.css @@ -0,0 +1,3 @@ +@CHARSET "UTF-8"; + + diff --git a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/MonitorWidgetTD.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/MonitorWidgetTD.gwt.xml index a3ee09e..179a03d 100644 --- a/src/main/resources/org/gcube/portlets/user/td/monitorwidget/MonitorWidgetTD.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/td/monitorwidget/MonitorWidgetTD.gwt.xml @@ -1,31 +1,44 @@ - - + + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 9aa6ade..d587c16 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -26,7 +26,7 @@ jUnitHostImpl - UnionWizardWidgets/junithost/* + /MonitorWidgetTD/junithost/*