Updated Background Monitor
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@99734 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
56b5816023
commit
4e4accb98e
1
pom.xml
1
pom.xml
|
@ -289,4 +289,5 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
<packaging>war</packaging>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -53,11 +53,19 @@ public class MonitorUpdater extends Timer implements MonitorDialogEventUIListene
|
||||||
+ result);
|
+ result);
|
||||||
|
|
||||||
if(result.isInBackground()){
|
if(result.isInBackground()){
|
||||||
|
Log.debug("Operation is in background");
|
||||||
cancel();
|
cancel();
|
||||||
fireMonitorPutInBackground();
|
fireMonitorPutInBackground();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(result.isAbort()){
|
||||||
|
Log.debug("Operation is aborted");
|
||||||
|
cancel();
|
||||||
|
fireMonitorAborted();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
switch (result.getTask().getState()) {
|
switch (result.getTask().getState()) {
|
||||||
case INITIALIZING:
|
case INITIALIZING:
|
||||||
Log.info("Initializing...");
|
Log.info("Initializing...");
|
||||||
|
|
|
@ -10,6 +10,8 @@ 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.TaskS;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsJobS;
|
import org.gcube.portlets.user.td.gwtservice.shared.task.ValidationsJobS;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState;
|
import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.background.MonitorBackgroundDialog;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.background.MonitorBackgroundInfoDialog;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.core.client.EntryPoint;
|
import com.google.gwt.core.client.EntryPoint;
|
||||||
|
@ -26,37 +28,95 @@ import com.google.web.bindery.event.shared.SimpleEventBus;
|
||||||
public class MonitorWidgetEntry implements EntryPoint {
|
public class MonitorWidgetEntry implements EntryPoint {
|
||||||
|
|
||||||
private MonitorDialog monitorWidget;
|
private MonitorDialog monitorWidget;
|
||||||
|
private MonitorBackgroundDialog monitorBackgroundWidget;
|
||||||
|
private MonitorBackgroundInfoDialog monitorBackgroundInfoWidget;
|
||||||
|
private SimpleEventBus eventBus;
|
||||||
|
|
||||||
|
protected enum TestShow {
|
||||||
|
MONITORWIDGET, MONITORBACKGROUNDWIDGET, MONITORBACKGROUNDINFOWIDGET
|
||||||
|
};
|
||||||
|
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
Log.debug("Test MonitorWidget");
|
TestShow testShow = TestShow.MONITORBACKGROUNDWIDGET;
|
||||||
SimpleEventBus eventBus = new SimpleEventBus();
|
Timer elapsedTimer;
|
||||||
monitorWidget = new MonitorDialog("1", eventBus);
|
|
||||||
monitorWidget.show();
|
|
||||||
|
|
||||||
Timer elapsedTimer = new Timer () {
|
|
||||||
public void run() {
|
|
||||||
showElapsed();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.debug("Start Time:"+System.currentTimeMillis());
|
|
||||||
|
|
||||||
// Schedule the timer for every 1/2 second (500 milliseconds)
|
switch (testShow) {
|
||||||
elapsedTimer.scheduleRepeating(3000);
|
case MONITORWIDGET:
|
||||||
|
Log.debug("Test MonitorWidget");
|
||||||
|
eventBus = new SimpleEventBus();
|
||||||
|
monitorWidget = new MonitorDialog("1", eventBus);
|
||||||
|
monitorWidget.show();
|
||||||
|
|
||||||
|
elapsedTimer = new Timer() {
|
||||||
|
public void run() {
|
||||||
|
showElapsed();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Log.debug("Start Time:" + System.currentTimeMillis());
|
||||||
|
|
||||||
|
// Schedule the timer for every 1/2 second (500 milliseconds)
|
||||||
|
elapsedTimer.scheduleRepeating(3000);
|
||||||
|
break;
|
||||||
|
case MONITORBACKGROUNDWIDGET:
|
||||||
|
Log.debug("Test MonitorBackgroundWidget");
|
||||||
|
eventBus = new SimpleEventBus();
|
||||||
|
monitorBackgroundWidget = new MonitorBackgroundDialog(eventBus);
|
||||||
|
monitorBackgroundWidget.show();
|
||||||
|
|
||||||
|
elapsedTimer = new Timer() {
|
||||||
|
public void run() {
|
||||||
|
showBackgroundElapsed();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Log.debug("Start Time:" + System.currentTimeMillis());
|
||||||
|
|
||||||
|
// Schedule the timer for every 1/2 second (500 milliseconds)
|
||||||
|
elapsedTimer.scheduleRepeating(3000);
|
||||||
|
break;
|
||||||
|
case MONITORBACKGROUNDINFOWIDGET:
|
||||||
|
eventBus = new SimpleEventBus();
|
||||||
|
showBackgroundInfoWidget();
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showElapsed(){
|
private void showElapsed() {
|
||||||
OperationMonitor operationMonitor = new OperationMonitor("1",
|
OperationMonitor operationMonitor = new OperationMonitor("1",
|
||||||
UIOperationsId.EditRow);
|
UIOperationsId.EditRow);
|
||||||
operationMonitor.setTask(createTaskForTest());
|
operationMonitor.setTask(createTaskForTest("1"));
|
||||||
monitorWidget.updateOperationMonitor(operationMonitor);
|
monitorWidget.updateOperationMonitor(operationMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showBackgroundElapsed() {
|
||||||
private TaskS createTaskForTest() {
|
ArrayList<OperationMonitor> backgroundOperationMonitorList = new ArrayList<OperationMonitor>();
|
||||||
|
|
||||||
|
for (int i = 0; i < 20; i++) {
|
||||||
|
|
||||||
|
OperationMonitor operationMonitor = new OperationMonitor(String.valueOf(i),
|
||||||
|
UIOperationsId.EditRow);
|
||||||
|
operationMonitor.setTask(createTaskForTest(String.valueOf(i)));
|
||||||
|
|
||||||
|
backgroundOperationMonitorList.add(operationMonitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
monitorBackgroundWidget
|
||||||
|
.updateBackgroundOperationMonitor(backgroundOperationMonitorList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showBackgroundInfoWidget() {
|
||||||
|
OperationMonitor operationMonitor = new OperationMonitor("1",
|
||||||
|
UIOperationsId.EditRow);
|
||||||
|
operationMonitor.setTask(createTaskForTest("1"));
|
||||||
|
monitorBackgroundInfoWidget = new MonitorBackgroundInfoDialog(
|
||||||
|
operationMonitor, eventBus);
|
||||||
|
monitorBackgroundInfoWidget.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private TaskS createTaskForTest(String taskId) {
|
||||||
|
|
||||||
ArrayList<ValidationsJobS> validationsJobs = new ArrayList<ValidationsJobS>();
|
ArrayList<ValidationsJobS> validationsJobs = new ArrayList<ValidationsJobS>();
|
||||||
ValidationsJobS validationJobS = new ValidationsJobS("1",
|
ValidationsJobS validationJobS = new ValidationsJobS("1",
|
||||||
WorkerState.IN_PROGRESS, genProgress(), "Row Validate", null,
|
WorkerState.IN_PROGRESS, genProgress(), "Row Validate", null,
|
||||||
|
@ -71,28 +131,42 @@ public class MonitorWidgetEntry implements EntryPoint {
|
||||||
JobS job2 = new JobS("2", genProgress(), "Add Row Job for Human",
|
JobS job2 = new JobS("2", genProgress(), "Add Row Job for Human",
|
||||||
"Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
|
"Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
|
||||||
jobs.add(job2);
|
jobs.add(job2);
|
||||||
|
|
||||||
JobS job3 = new JobS("3", genProgress(), "Delete Job for Human",
|
JobS job3 = new JobS("3", genProgress(), "Delete Job for Human",
|
||||||
"Delete Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
|
"Delete Row Job", WorkerState.IN_PROGRESS, null,
|
||||||
|
validationsJobs);
|
||||||
jobs.add(job3);
|
jobs.add(job3);
|
||||||
|
|
||||||
TaskS task = new TaskS("1", genProgress(), State.IN_PROGRESS, null, "default",
|
JobS job4 = new JobS("4", genProgress(), "Edit Row Job for Human",
|
||||||
new Date(), null, jobs);
|
"Edit Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
|
||||||
|
jobs.add(job4);
|
||||||
|
|
||||||
|
JobS job5 = new JobS("5", genProgress(), "Add Row Job for Human",
|
||||||
|
"Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
|
||||||
|
jobs.add(job5);
|
||||||
|
|
||||||
|
JobS job6 = new JobS("6", genProgress(), "Delete Job for Human",
|
||||||
|
"Delete Row Job", WorkerState.IN_PROGRESS, null,
|
||||||
|
validationsJobs);
|
||||||
|
jobs.add(job6);
|
||||||
|
|
||||||
|
TaskS task = new TaskS(taskId, genProgress(), State.IN_PROGRESS, null,
|
||||||
|
"default", new Date(), null, jobs);
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private float genProgress(){
|
private float genProgress() {
|
||||||
float fperc;
|
float fperc;
|
||||||
int perc=Random.nextInt(100);
|
int perc = Random.nextInt(100);
|
||||||
if(perc==0){
|
if (perc == 0) {
|
||||||
fperc=0f;
|
fperc = 0f;
|
||||||
} else {
|
} else {
|
||||||
fperc= new Float(perc)/100;
|
fperc = new Float(perc) / 100;
|
||||||
}
|
}
|
||||||
Log.debug("ProgressSet: "+fperc);
|
// Log.debug("ProgressSet: " + fperc);
|
||||||
return fperc;
|
return fperc;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.web.bindery.event.shared.EventBus;
|
import com.google.web.bindery.event.shared.EventBus;
|
||||||
import com.sencha.gxt.widget.core.client.Window;
|
import com.sencha.gxt.widget.core.client.Window;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Background Operations Monitor
|
* Background Operations Monitor
|
||||||
|
@ -11,23 +18,22 @@ import com.sencha.gxt.widget.core.client.Window;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class MonitorBackgroundDialog extends Window {
|
public class MonitorBackgroundDialog extends Window {
|
||||||
|
|
||||||
private static final String WIDTH = "400px";
|
protected static final String WIDTH = "400px";
|
||||||
private static final String HEIGHT = "520px";
|
protected static final String HEIGHT = "520px";
|
||||||
|
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
protected MonitorBackgroundPanel monitorBackgroundPanel;
|
protected MonitorBackgroundPanel monitorBackgroundPanel;
|
||||||
|
|
||||||
public MonitorBackgroundDialog(EventBus eventBus) {
|
public MonitorBackgroundDialog(EventBus eventBus) {
|
||||||
|
super();
|
||||||
|
Log.debug("MonitorBackgroundDialog");
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
|
|
||||||
initWindow();
|
initWindow();
|
||||||
create();
|
create();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initWindow(){
|
protected void initWindow() {
|
||||||
setWidth(WIDTH);
|
setWidth(WIDTH);
|
||||||
setHeight(HEIGHT);
|
setHeight(HEIGHT);
|
||||||
setBodyBorder(false);
|
setBodyBorder(false);
|
||||||
|
@ -36,42 +42,38 @@ public class MonitorBackgroundDialog extends Window {
|
||||||
setClosable(true);
|
setClosable(true);
|
||||||
setHeadingText("Background Operations Monitor");
|
setHeadingText("Background Operations Monitor");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void create(){
|
protected void create() {
|
||||||
monitorBackgroundPanel = new MonitorBackgroundPanel(eventBus);
|
monitorBackgroundPanel = new MonitorBackgroundPanel(this, eventBus);
|
||||||
add(monitorBackgroundPanel);
|
add(monitorBackgroundPanel);
|
||||||
show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void initTools() {
|
protected void initTools() {
|
||||||
/*if (backgroundBtnEnabled) {
|
|
||||||
backgroundBtn = new ToolButton(ToolButton.CLOSE);
|
|
||||||
backgroundBtn.setToolTip("Put in the background");
|
|
||||||
backgroundBtn.addSelectHandler(new SelectHandler() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelect(SelectEvent event) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
header.addTool(backgroundBtn);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
super.initTools();
|
|
||||||
|
|
||||||
closeBtn.setVisible(false);
|
|
||||||
/*
|
/*
|
||||||
|
* if (backgroundBtnEnabled) { backgroundBtn = new
|
||||||
|
* ToolButton(ToolButton.CLOSE);
|
||||||
|
* backgroundBtn.setToolTip("Put in the background");
|
||||||
|
* backgroundBtn.addSelectHandler(new SelectHandler() {
|
||||||
|
*
|
||||||
|
* @Override public void onSelect(SelectEvent event) { hide(); } });
|
||||||
|
*
|
||||||
|
* header.addTool(backgroundBtn); }
|
||||||
|
*/
|
||||||
|
|
||||||
|
super.initTools();
|
||||||
|
|
||||||
|
closeBtn.setVisible(true);
|
||||||
|
|
||||||
closeBtn.addSelectHandler(new SelectHandler() {
|
closeBtn.addSelectHandler(new SelectHandler() {
|
||||||
|
|
||||||
public void onSelect(SelectEvent event) {
|
public void onSelect(SelectEvent event) {
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
});*/
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,6 +81,12 @@ public class MonitorBackgroundDialog extends Window {
|
||||||
hide();
|
hide();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void updateBackgroundOperationMonitor(ArrayList<OperationMonitor> operationMonitorList) {
|
||||||
|
if (monitorBackgroundPanel != null) {
|
||||||
|
monitorBackgroundPanel.operationMonitorListUpdated(operationMonitorList);
|
||||||
|
}
|
||||||
|
forceLayout();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.web.bindery.event.shared.EventBus;
|
||||||
|
import com.sencha.gxt.widget.core.client.Window;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Background Operations Monitor
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MonitorBackgroundInfoDialog extends Window {
|
||||||
|
|
||||||
|
private static final String WIDTH = "640px";
|
||||||
|
private static final String HEIGHT = "378px";
|
||||||
|
|
||||||
|
protected EventBus eventBus;
|
||||||
|
protected MonitorBackgroundInfoPanel monitorBackgroundInfoPanel;
|
||||||
|
protected OperationMonitor operationMonitor;
|
||||||
|
|
||||||
|
public MonitorBackgroundInfoDialog(OperationMonitor operationMonitor, EventBus eventBus) {
|
||||||
|
super();
|
||||||
|
Log.debug("MonitorBackgroundInfoDialog");
|
||||||
|
this.eventBus = eventBus;
|
||||||
|
this.operationMonitor =operationMonitor;
|
||||||
|
initWindow();
|
||||||
|
create();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void initWindow() {
|
||||||
|
setWidth(WIDTH);
|
||||||
|
setHeight(HEIGHT);
|
||||||
|
setBodyBorder(false);
|
||||||
|
setResizable(false);
|
||||||
|
setModal(false);
|
||||||
|
setClosable(true);
|
||||||
|
setHeadingText("Info Operation");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void create() {
|
||||||
|
monitorBackgroundInfoPanel = new MonitorBackgroundInfoPanel(this, operationMonitor,eventBus);
|
||||||
|
add(monitorBackgroundInfoPanel);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void initTools() {
|
||||||
|
|
||||||
|
super.initTools();
|
||||||
|
|
||||||
|
closeBtn.setVisible(true);
|
||||||
|
|
||||||
|
closeBtn.addSelectHandler(new SelectHandler() {
|
||||||
|
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void close() {
|
||||||
|
hide();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,399 @@
|
||||||
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
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.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;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorValidationJobSDto;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.cell.client.AbstractCell;
|
||||||
|
import com.google.gwt.resources.client.ImageResource;
|
||||||
|
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.util.Margins;
|
||||||
|
import com.sencha.gxt.data.shared.IconProvider;
|
||||||
|
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||||
|
import com.sencha.gxt.data.shared.TreeStore;
|
||||||
|
import com.sencha.gxt.widget.core.client.FramedPanel;
|
||||||
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||||
|
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.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent.CollapseItemHandler;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent.ExpandItemHandler;
|
||||||
|
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.grid.ColumnConfig;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
|
||||||
|
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
||||||
|
import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
|
protected static final String WIDTH = "618px";
|
||||||
|
protected static final String HEIGHT = "370px";
|
||||||
|
protected static final String HEIGHTGRID ="300px";
|
||||||
|
|
||||||
|
protected static final int CC1WIDTH = 168;
|
||||||
|
protected static final int CC2WIDTH = 100;
|
||||||
|
protected static final int CC3WIDTH = 140;
|
||||||
|
protected static final int CC4WIDTH = 100;
|
||||||
|
|
||||||
|
protected MonitorBackgroundInfoDialog parent;
|
||||||
|
protected MonitorBackgroundInfoPanel thisPanel;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected TRId trId;
|
||||||
|
protected VerticalLayoutContainer con;
|
||||||
|
protected ValidationsTasksMetadata validationsTasksMetadata;
|
||||||
|
|
||||||
|
protected MonitorTreeDataGenerator gen;
|
||||||
|
protected TreeStore<MonitorBaseDto> store;
|
||||||
|
protected TreeGrid<MonitorBaseDto> tree;
|
||||||
|
protected OperationMonitor operationMonitor;
|
||||||
|
|
||||||
|
protected EventBus eventBus;
|
||||||
|
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
||||||
|
|
||||||
|
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
||||||
|
@Override
|
||||||
|
public String getKey(MonitorBaseDto item) {
|
||||||
|
return (item instanceof MonitorFolderDto ? "f-" : "v-")
|
||||||
|
+ item.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MonitorBackgroundInfoPanel(MonitorBackgroundInfoDialog parent,
|
||||||
|
OperationMonitor operationMonitor, EventBus eventBus) {
|
||||||
|
super();
|
||||||
|
this.parent = parent;
|
||||||
|
this.operationMonitor=operationMonitor;
|
||||||
|
this.eventBus = eventBus;
|
||||||
|
forceLayoutOnResize = true;
|
||||||
|
init();
|
||||||
|
create();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void init() {
|
||||||
|
setWidth(WIDTH);
|
||||||
|
setHeight(HEIGHT);
|
||||||
|
setHeaderVisible(false);
|
||||||
|
setBodyBorder(false);
|
||||||
|
setResize(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void create() {
|
||||||
|
con = new VerticalLayoutContainer();
|
||||||
|
// con.setScrollMode(ScrollMode.AUTO);
|
||||||
|
|
||||||
|
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
|
||||||
|
|
||||||
|
addChildrensToStore();
|
||||||
|
|
||||||
|
|
||||||
|
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
|
||||||
|
new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH,
|
||||||
|
"Task");
|
||||||
|
cc1.setHeader("Task");
|
||||||
|
cc1.setCell(new AbstractCell<String>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Context context, String value, SafeHtmlBuilder sb) {
|
||||||
|
sb.appendHtmlConstant("<span title='"
|
||||||
|
+ SafeHtmlUtils.htmlEscape(value) + "'>" + value
|
||||||
|
+ "</span>");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ColumnConfig<MonitorBaseDto, String> cc2 = new ColumnConfig<MonitorBaseDto, String>(
|
||||||
|
new ValueProvider<MonitorBaseDto, String>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValue(MonitorBaseDto object) {
|
||||||
|
String state = null;
|
||||||
|
if (object instanceof MonitorValidationJobSDto) {
|
||||||
|
state = ((MonitorValidationJobSDto) object)
|
||||||
|
.getWorkerState().toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
if (object instanceof MonitorFolderDto) {
|
||||||
|
state = ((MonitorFolderDto) object).getState();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValue(MonitorBaseDto object, String value) {
|
||||||
|
if (object instanceof MonitorValidationJobSDto) {
|
||||||
|
WorkerState workerState = WorkerStateParser.parse(value);
|
||||||
|
((MonitorValidationJobSDto) object)
|
||||||
|
.setWorkerState(workerState);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (object instanceof MonitorFolderDto) {
|
||||||
|
((MonitorFolderDto) object).setState(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPath() {
|
||||||
|
return "status";
|
||||||
|
}
|
||||||
|
}, CC2WIDTH, "Status");
|
||||||
|
cc2.setHeader("Status");
|
||||||
|
|
||||||
|
ColumnConfig<MonitorBaseDto, String> cc3 = new ColumnConfig<MonitorBaseDto, String>(
|
||||||
|
new ValueProvider<MonitorBaseDto, String>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValue(MonitorBaseDto object) {
|
||||||
|
String state = null;
|
||||||
|
if (object instanceof MonitorValidationJobSDto) {
|
||||||
|
state = ((MonitorValidationJobSDto) object).getHumanReadableStatus();
|
||||||
|
}
|
||||||
|
if (object instanceof MonitorFolderDto) {
|
||||||
|
state = ((MonitorFolderDto) object)
|
||||||
|
.getHumanReadableStatus();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValue(MonitorBaseDto object, String value) {
|
||||||
|
if (object instanceof MonitorValidationJobSDto) {
|
||||||
|
((MonitorValidationJobSDto) object)
|
||||||
|
.setHumanReadableStatus(value);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (object instanceof MonitorFolderDto) {
|
||||||
|
((MonitorFolderDto) object)
|
||||||
|
.setHumanReadableStatus(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPath() {
|
||||||
|
return "humanreadablestatus";
|
||||||
|
}
|
||||||
|
}, CC3WIDTH, "Human Readble");
|
||||||
|
cc3.setHeader("Human Readble");
|
||||||
|
|
||||||
|
ColumnConfig<MonitorBaseDto, Double> cc4 = new ColumnConfig<MonitorBaseDto, Double>(
|
||||||
|
new ValueProvider<MonitorBaseDto, Double>() {
|
||||||
|
|
||||||
|
@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";
|
||||||
|
}
|
||||||
|
}, CC4WIDTH, "Progress");
|
||||||
|
cc4.setHeader("Progress");
|
||||||
|
|
||||||
|
ProgressBarCell progress = new ProgressBarCell() {
|
||||||
|
@Override
|
||||||
|
public boolean handlesSelection() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
progress.setProgressText("{0}% Complete");
|
||||||
|
progress.setWidth(110);
|
||||||
|
|
||||||
|
cc4.setCell(progress);
|
||||||
|
|
||||||
|
List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>();
|
||||||
|
l.add(cc1);
|
||||||
|
l.add(cc2);
|
||||||
|
l.add(cc3);
|
||||||
|
l.add(cc4);
|
||||||
|
ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l);
|
||||||
|
|
||||||
|
tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1);
|
||||||
|
tree.getView().setAutoFill(true);
|
||||||
|
tree.setBorders(false);
|
||||||
|
tree.setLoadMask(true);
|
||||||
|
tree.setColumnResize(true);
|
||||||
|
tree.getView().setAutoExpandColumn(cc1);
|
||||||
|
tree.setHeight(HEIGHTGRID);
|
||||||
|
tree.setAutoExpand(true);
|
||||||
|
|
||||||
|
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
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();
|
||||||
|
} else {
|
||||||
|
if (type.compareTo("task") == 0) {
|
||||||
|
img = ResourceBundle.INSTANCE.basket();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
img = ResourceBundle.INSTANCE.tableValidation();
|
||||||
|
}
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
tree.setIconProvider(iconProvider);
|
||||||
|
|
||||||
|
tree.addExpandHandler(new ExpandItemHandler<MonitorBaseDto>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExpand(ExpandItemEvent<MonitorBaseDto> event) {
|
||||||
|
forceLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tree.addCollapseHandler(new CollapseItemHandler<MonitorBaseDto>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCollapse(CollapseItemEvent<MonitorBaseDto> event) {
|
||||||
|
forceLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
ToolBar toolBar = new ToolBar();
|
||||||
|
|
||||||
|
TextButton btnExpandAll = new TextButton();
|
||||||
|
btnExpandAll.setIcon(ResourceBundle.INSTANCE.magnifierZoomIn());
|
||||||
|
btnExpandAll.setToolTip("Expand All");
|
||||||
|
btnExpandAll.addSelectHandler(new SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
tree.expandAll();
|
||||||
|
forceLayout();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
toolBar.add(btnExpandAll);
|
||||||
|
|
||||||
|
TextButton btnCollapseAll = new TextButton();
|
||||||
|
btnCollapseAll.setIcon(ResourceBundle.INSTANCE.magnifierZoomOut());
|
||||||
|
btnCollapseAll.setToolTip("Collapse All");
|
||||||
|
btnCollapseAll.addSelectHandler(new SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
tree.collapseAll();
|
||||||
|
forceLayout();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
toolBar.add(btnCollapseAll);
|
||||||
|
|
||||||
|
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();
|
||||||
|
tree.expandAll();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected void close() {
|
||||||
|
if (parent != null) {
|
||||||
|
parent.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void addChildrensToStore() {
|
||||||
|
gen = new MonitorTreeDataGenerator();
|
||||||
|
try {
|
||||||
|
MonitorFolderDto root = gen.getRoot(operationMonitor);
|
||||||
|
Log.debug("root childrens " + root.getChildrens().size());
|
||||||
|
for (MonitorBaseDto base : root.getChildrens()) {
|
||||||
|
Log.debug("Check children: " + base);
|
||||||
|
|
||||||
|
store.add(base);
|
||||||
|
if (base instanceof MonitorFolderDto) {
|
||||||
|
processFolder((MonitorFolderDto) base);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.error("Error adding childrens to store :"
|
||||||
|
+ e.getLocalizedMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processFolder(MonitorFolderDto folder) {
|
||||||
|
for (MonitorBaseDto child : folder.getChildrens()) {
|
||||||
|
store.add(folder, child);
|
||||||
|
if (child instanceof MonitorFolderDto) {
|
||||||
|
processFolder((MonitorFolderDto) child);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
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.ValidationsTasksMetadata;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState;
|
import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState;
|
||||||
|
@ -12,10 +13,16 @@ import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorFolde
|
||||||
import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorTreeDataGenerator;
|
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.details.tree.MonitorValidationJobSDto;
|
||||||
import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle;
|
import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.utils.UtilsGXT3;
|
||||||
|
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 org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.cell.client.AbstractCell;
|
import com.google.gwt.cell.client.AbstractCell;
|
||||||
import com.google.gwt.cell.client.Cell.Context;
|
import com.google.gwt.cell.client.Cell.Context;
|
||||||
|
import com.google.gwt.event.logical.shared.SelectionEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.SelectionHandler;
|
||||||
import com.google.gwt.resources.client.ImageResource;
|
import com.google.gwt.resources.client.ImageResource;
|
||||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||||
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
||||||
|
@ -23,12 +30,12 @@ import com.google.web.bindery.event.shared.EventBus;
|
||||||
import com.sencha.gxt.cell.core.client.ProgressBarCell;
|
import com.sencha.gxt.cell.core.client.ProgressBarCell;
|
||||||
import com.sencha.gxt.core.client.ToStringValueProvider;
|
import com.sencha.gxt.core.client.ToStringValueProvider;
|
||||||
import com.sencha.gxt.core.client.ValueProvider;
|
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.core.client.util.Margins;
|
||||||
import com.sencha.gxt.data.shared.IconProvider;
|
import com.sencha.gxt.data.shared.IconProvider;
|
||||||
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||||
import com.sencha.gxt.data.shared.TreeStore;
|
import com.sencha.gxt.data.shared.TreeStore;
|
||||||
import com.sencha.gxt.widget.core.client.FramedPanel;
|
import com.sencha.gxt.widget.core.client.FramedPanel;
|
||||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
|
||||||
import com.sencha.gxt.widget.core.client.container.MarginData;
|
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.VerticalLayoutContainer;
|
||||||
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
|
@ -36,13 +43,11 @@ import com.sencha.gxt.widget.core.client.event.CollapseItemEvent;
|
||||||
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent.CollapseItemHandler;
|
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent.CollapseItemHandler;
|
||||||
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent;
|
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent;
|
||||||
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent.ExpandItemHandler;
|
import com.sencha.gxt.widget.core.client.event.ExpandItemEvent.ExpandItemHandler;
|
||||||
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.grid.ColumnConfig;
|
import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
|
||||||
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
|
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
|
||||||
|
import com.sencha.gxt.widget.core.client.menu.Item;
|
||||||
import com.sencha.gxt.widget.core.client.menu.Menu;
|
import com.sencha.gxt.widget.core.client.menu.Menu;
|
||||||
import com.sencha.gxt.widget.core.client.menu.MenuItem;
|
import com.sencha.gxt.widget.core.client.menu.MenuItem;
|
||||||
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
|
||||||
import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
|
import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,22 +56,23 @@ import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
|
||||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackgroundUpdaterListener {
|
public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
protected static final int STATUS_POLLING_DELAY = 2000;
|
MonitorBackgroundUpdaterListener {
|
||||||
|
protected static final int STATUS_POLLING_DELAY = 4000;
|
||||||
protected static final String WIDTH = "298px";
|
protected static final String WIDTH = "298px";
|
||||||
protected static final String HEIGHT = "520px";
|
protected static final String HEIGHT = "520px";
|
||||||
protected static final int CC1WIDTH = 168;
|
protected static final int CC1WIDTH = 110;
|
||||||
protected static final int CC2WIDTH = 100;
|
protected static final int CC2WIDTH = 70;
|
||||||
protected static final int CC3WIDTH = 140;
|
protected static final int CC3WIDTH = 100;
|
||||||
protected static final int CC4WIDTH = 100;
|
protected MonitorBackgroundDialog parent;
|
||||||
|
|
||||||
protected ArrayList<MonitorBackgroundEventUIListener> monitorBackgroundEventUIListeners = new ArrayList<MonitorBackgroundEventUIListener>();
|
protected ArrayList<MonitorBackgroundEventUIListener> monitorBackgroundEventUIListeners = new ArrayList<MonitorBackgroundEventUIListener>();
|
||||||
|
|
||||||
protected MonitorBackgroundPanel thisPanel;
|
protected MonitorBackgroundPanel thisPanel;
|
||||||
|
|
||||||
protected Menu contextMenu;
|
protected Menu contextMenu;
|
||||||
protected MenuItem resumeItem;
|
protected MenuItem infoItem;
|
||||||
protected MenuItem resolveItem;
|
protected MenuItem abortItem;
|
||||||
|
|
||||||
protected TRId trId;
|
protected TRId trId;
|
||||||
protected VerticalLayoutContainer con;
|
protected VerticalLayoutContainer con;
|
||||||
|
@ -79,7 +85,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
|
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
||||||
|
|
||||||
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
||||||
@Override
|
@Override
|
||||||
public String getKey(MonitorBaseDto item) {
|
public String getKey(MonitorBaseDto item) {
|
||||||
|
@ -87,8 +93,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
+ item.getId();
|
+ item.getId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public MonitorBackgroundPanel(EventBus eventBus) {
|
public MonitorBackgroundPanel(EventBus eventBus) {
|
||||||
super();
|
super();
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
|
@ -96,7 +101,17 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
init();
|
init();
|
||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MonitorBackgroundPanel(MonitorBackgroundDialog parent,
|
||||||
|
EventBus eventBus) {
|
||||||
|
super();
|
||||||
|
this.eventBus = eventBus;
|
||||||
|
this.parent = parent;
|
||||||
|
forceLayoutOnResize = true;
|
||||||
|
init();
|
||||||
|
create();
|
||||||
|
}
|
||||||
|
|
||||||
protected void init() {
|
protected void init() {
|
||||||
setWidth(WIDTH);
|
setWidth(WIDTH);
|
||||||
setHeight(HEIGHT);
|
setHeight(HEIGHT);
|
||||||
|
@ -105,17 +120,18 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
setResize(true);
|
setResize(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void create() {
|
protected void create() {
|
||||||
con = new VerticalLayoutContainer();
|
con = new VerticalLayoutContainer();
|
||||||
// con.setScrollMode(ScrollMode.AUTO);
|
con.setScrollMode(ScrollMode.AUTO);
|
||||||
|
|
||||||
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
|
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
|
||||||
|
|
||||||
addChildrensToStore();
|
addChildrensToStore();
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
|
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
|
||||||
new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH, "Task");
|
new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH,
|
||||||
|
"Task");
|
||||||
cc1.setHeader("Task");
|
cc1.setHeader("Task");
|
||||||
cc1.setCell(new AbstractCell<String>() {
|
cc1.setCell(new AbstractCell<String>() {
|
||||||
|
|
||||||
|
@ -165,41 +181,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
}, CC2WIDTH, "Status");
|
}, CC2WIDTH, "Status");
|
||||||
cc2.setHeader("Status");
|
cc2.setHeader("Status");
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, String> cc3 = new ColumnConfig<MonitorBaseDto, String>(
|
ColumnConfig<MonitorBaseDto, Double> cc3 = new ColumnConfig<MonitorBaseDto, Double>(
|
||||||
new ValueProvider<MonitorBaseDto, String>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getValue(MonitorBaseDto object) {
|
|
||||||
String state = null;
|
|
||||||
if (object instanceof MonitorValidationJobSDto) {
|
|
||||||
state = ((MonitorValidationJobSDto) object).getHumanReadableStatus();
|
|
||||||
}
|
|
||||||
if (object instanceof MonitorFolderDto) {
|
|
||||||
state = ((MonitorFolderDto) object).getHumanReadableStatus();
|
|
||||||
}
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setValue(MonitorBaseDto object, String value) {
|
|
||||||
if (object instanceof MonitorValidationJobSDto) {
|
|
||||||
((MonitorValidationJobSDto) object)
|
|
||||||
.setHumanReadableStatus(value);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (object instanceof MonitorFolderDto) {
|
|
||||||
((MonitorFolderDto) object).setHumanReadableStatus(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPath() {
|
|
||||||
return "humanreadablestatus";
|
|
||||||
}
|
|
||||||
}, CC3WIDTH, "Human Readble");
|
|
||||||
cc3.setHeader("Human Readble");
|
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, Double> cc4 = new ColumnConfig<MonitorBaseDto, Double>(
|
|
||||||
new ValueProvider<MonitorBaseDto, Double>() {
|
new ValueProvider<MonitorBaseDto, Double>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -233,8 +215,8 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
public String getPath() {
|
public String getPath() {
|
||||||
return "progress";
|
return "progress";
|
||||||
}
|
}
|
||||||
}, CC4WIDTH, "Progress");
|
}, CC3WIDTH, "Progress");
|
||||||
cc4.setHeader("Progress");
|
cc3.setHeader("Progress");
|
||||||
|
|
||||||
ProgressBarCell progress = new ProgressBarCell() {
|
ProgressBarCell progress = new ProgressBarCell() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -245,13 +227,12 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
progress.setProgressText("{0}% Complete");
|
progress.setProgressText("{0}% Complete");
|
||||||
progress.setWidth(110);
|
progress.setWidth(110);
|
||||||
|
|
||||||
cc4.setCell(progress);
|
cc3.setCell(progress);
|
||||||
|
|
||||||
List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>();
|
List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>();
|
||||||
l.add(cc1);
|
l.add(cc1);
|
||||||
l.add(cc2);
|
l.add(cc2);
|
||||||
l.add(cc3);
|
l.add(cc3);
|
||||||
l.add(cc4);
|
|
||||||
ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l);
|
ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l);
|
||||||
|
|
||||||
tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1);
|
tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1);
|
||||||
|
@ -260,8 +241,8 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
tree.setLoadMask(true);
|
tree.setLoadMask(true);
|
||||||
tree.setColumnResize(true);
|
tree.setColumnResize(true);
|
||||||
tree.getView().setAutoExpandColumn(cc1);
|
tree.getView().setAutoExpandColumn(cc1);
|
||||||
|
tree.getElement().setAttribute("height", "auto");
|
||||||
|
|
||||||
|
|
||||||
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
|
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -304,59 +285,27 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// createContextMenu();
|
createContextMenu();
|
||||||
|
|
||||||
ToolBar toolBar = new ToolBar();
|
|
||||||
|
|
||||||
TextButton btnExpandAll = new TextButton();
|
|
||||||
btnExpandAll.setIcon(ResourceBundle.INSTANCE.magnifierZoomIn());
|
|
||||||
btnExpandAll.setToolTip("Expand All");
|
|
||||||
btnExpandAll.addSelectHandler(new SelectHandler() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelect(SelectEvent event) {
|
|
||||||
tree.expandAll();
|
|
||||||
forceLayout();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
toolBar.add(btnExpandAll);
|
|
||||||
|
|
||||||
TextButton btnCollapseAll = new TextButton();
|
|
||||||
btnCollapseAll.setIcon(ResourceBundle.INSTANCE.magnifierZoomOut());
|
|
||||||
btnCollapseAll.setToolTip("Collapse All");
|
|
||||||
btnCollapseAll.addSelectHandler(new SelectHandler() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelect(SelectEvent event) {
|
|
||||||
tree.collapseAll();
|
|
||||||
forceLayout();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
toolBar.add(btnCollapseAll);
|
|
||||||
|
|
||||||
con.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
|
|
||||||
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
|
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
|
|
||||||
add(con, new MarginData(0));
|
add(con, new MarginData(0));
|
||||||
|
|
||||||
addMonitor();
|
// addMonitor();
|
||||||
|
|
||||||
//tree.expandAll();
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void addMonitor() {
|
protected void addMonitor() {
|
||||||
monitorBackgroundUpdater = new MonitorBackgroundUpdater();
|
monitorBackgroundUpdater = new MonitorBackgroundUpdater();
|
||||||
|
|
||||||
monitorBackgroundUpdater.addListener(this);
|
monitorBackgroundUpdater.addListener(this);
|
||||||
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
|
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
|
||||||
|
|
||||||
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void addMonitorBackgroundEventUIListener(
|
public void addMonitorBackgroundEventUIListener(
|
||||||
MonitorBackgroundEventUIListener listener) {
|
MonitorBackgroundEventUIListener listener) {
|
||||||
|
@ -367,20 +316,18 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
MonitorBackgroundEventUIListener listener) {
|
MonitorBackgroundEventUIListener listener) {
|
||||||
monitorBackgroundEventUIListeners.remove(listener);
|
monitorBackgroundEventUIListeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update() {
|
public void update() {
|
||||||
forceLayout();
|
forceLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected void close() {
|
protected void close() {
|
||||||
/*
|
if (parent != null) {
|
||||||
* if (parent != null) { parent.close(); }
|
parent.close();
|
||||||
*/
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void requestOperationOnKey(Context context) {
|
protected void requestOperationOnKey(Context context) {
|
||||||
String key = (String) context.getKey();
|
String key = (String) context.getKey();
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@ -388,50 +335,104 @@ public class MonitorBackgroundPanel extends FramedPanel implements MonitorBackg
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void addChildrensToStore() {
|
private void addChildrensToStore() {
|
||||||
gen = new MonitorTreeDataGenerator();
|
gen = new MonitorTreeDataGenerator();
|
||||||
|
try {
|
||||||
|
MonitorFolderDto root = gen.getRoot(operationMonitorList);
|
||||||
|
Log.debug("root childrens " + root.getChildrens().size());
|
||||||
|
for (MonitorBaseDto base : root.getChildrens()) {
|
||||||
|
Log.debug("Check children: " + base);
|
||||||
|
|
||||||
|
store.add(base);
|
||||||
|
|
||||||
MonitorFolderDto root = gen.getRoot(operationMonitorList);
|
|
||||||
for (MonitorBaseDto base : root.getChildrens()) {
|
|
||||||
store.add(base);
|
|
||||||
if (base instanceof MonitorFolderDto) {
|
|
||||||
processFolder(store, (MonitorFolderDto) base);
|
|
||||||
}
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.error("Error adding childrens to store :"
|
||||||
|
+ e.getLocalizedMessage());
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processFolder(TreeStore<MonitorBaseDto> store,
|
protected void createContextMenu() {
|
||||||
MonitorFolderDto folder) {
|
contextMenu = new Menu();
|
||||||
for (MonitorBaseDto child : folder.getChildrens()) {
|
|
||||||
store.add(folder, child);
|
infoItem = new MenuItem();
|
||||||
if (child instanceof MonitorFolderDto) {
|
infoItem.setText("Info");
|
||||||
processFolder(store, (MonitorFolderDto) child);
|
infoItem.setIcon(ResourceBundle.INSTANCE.ok());
|
||||||
|
infoItem.addSelectionHandler(new SelectionHandler<Item>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelection(SelectionEvent<Item> event) {
|
||||||
|
MonitorBaseDto selected = tree.getSelectionModel()
|
||||||
|
.getSelectedItem();
|
||||||
|
Log.debug(selected.toString());
|
||||||
|
requestMoreInfo(selected);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
abortItem = new MenuItem();
|
||||||
|
abortItem.setText("Abort");
|
||||||
|
abortItem.setIcon(ResourceBundle.INSTANCE.basket());
|
||||||
|
abortItem.addSelectionHandler(new SelectionHandler<Item>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelection(SelectionEvent<Item> event) {
|
||||||
|
MonitorBaseDto selected = tree.getSelectionModel()
|
||||||
|
.getSelectedItem();
|
||||||
|
Log.debug(selected.toString());
|
||||||
|
requestBacgroundAbort(selected);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
contextMenu.add(infoItem);
|
||||||
|
contextMenu.add(abortItem);
|
||||||
|
tree.setContextMenu(contextMenu);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void requestMoreInfo(MonitorBaseDto selected) {
|
||||||
|
for (OperationMonitor operationMonitor : operationMonitorList) {
|
||||||
|
if (operationMonitor.getTaskId().compareTo(selected.getId()) == 0) {
|
||||||
|
Log.debug("Found Task Id: " + operationMonitor.getTaskId());
|
||||||
|
MonitorBackgroundInfoDialog monitorBackgroundInfoDialog = new MonitorBackgroundInfoDialog(
|
||||||
|
operationMonitor, eventBus);
|
||||||
|
monitorBackgroundInfoDialog.show();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void requestBacgroundAbort(MonitorBaseDto selected) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void operationMonitorListUpdated(
|
public void operationMonitorListUpdated(
|
||||||
ArrayList<OperationMonitor> operationMonitorList) {
|
ArrayList<OperationMonitor> operationMonitorList) {
|
||||||
|
this.operationMonitorList = operationMonitorList;
|
||||||
store.clear();
|
store.clear();
|
||||||
store.commitChanges();
|
store.commitChanges();
|
||||||
addChildrensToStore();
|
addChildrensToStore();
|
||||||
store.commitChanges();
|
store.commitChanges();
|
||||||
tree.expandAll();
|
// tree.expandAll();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void retrieveOperationMonitorListFailed(Throwable caught) {
|
public void retrieveOperationMonitorListFailed(Throwable caught) {
|
||||||
// TODO Auto-generated method stub
|
if (caught instanceof TDGWTSessionExpiredException) {
|
||||||
|
eventBus.fireEvent(new SessionExpiredEvent(
|
||||||
|
SessionExpiredType.EXPIREDONSERVER));
|
||||||
|
} else {
|
||||||
|
UtilsGXT3.alert("Error", "Error retrieving tasks in bacground: "
|
||||||
|
+ caught.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -17,6 +17,8 @@ public class MonitorFolderDto extends MonitorBaseDto {
|
||||||
protected String state;
|
protected String state;
|
||||||
protected String humanReadableStatus;
|
protected String humanReadableStatus;
|
||||||
protected float progress;
|
protected float progress;
|
||||||
|
protected String startTime;
|
||||||
|
protected String endTime;
|
||||||
|
|
||||||
public MonitorFolderDto(){
|
public MonitorFolderDto(){
|
||||||
|
|
||||||
|
@ -77,7 +79,6 @@ public class MonitorFolderDto extends MonitorBaseDto {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getHumanReadableStatus() {
|
public String getHumanReadableStatus() {
|
||||||
return humanReadableStatus;
|
return humanReadableStatus;
|
||||||
|
@ -86,6 +87,24 @@ public class MonitorFolderDto extends MonitorBaseDto {
|
||||||
public void setHumanReadableStatus(String humanReadableStatus) {
|
public void setHumanReadableStatus(String humanReadableStatus) {
|
||||||
this.humanReadableStatus = humanReadableStatus;
|
this.humanReadableStatus = humanReadableStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartTime(String startTime) {
|
||||||
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(String endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
|
@ -54,12 +54,17 @@ public class MonitorTreeDataGenerator {
|
||||||
jobs.add(foldJob);
|
jobs.add(foldJob);
|
||||||
}
|
}
|
||||||
MonitorFolderDto foldTask = new MonitorFolderDto("task",
|
MonitorFolderDto foldTask = new MonitorFolderDto("task",
|
||||||
task.getId(), task.getId() + " [Date:"
|
task.getId(), operationMonitor.getOperationId().toString(),
|
||||||
+ sdf.format(task.getStartTime()) + "]", task
|
task.getState().toString(), "", task.getProgress(),
|
||||||
.getState().toString(), "", task.getProgress(),
|
|
||||||
jobs);
|
jobs);
|
||||||
|
if(task.getStartTime()!=null){
|
||||||
|
foldTask.setStartTime(sdf.format(task.getStartTime()));
|
||||||
|
}
|
||||||
|
if(task.getEndTime()!=null){
|
||||||
|
foldTask.setEndTime(sdf.format(task.getEndTime()));
|
||||||
|
}
|
||||||
|
|
||||||
childrens.add(foldTask);
|
childrens.add(foldTask);
|
||||||
|
|
||||||
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
|
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
|
||||||
childrens);
|
childrens);
|
||||||
Log.debug("Generated root");
|
Log.debug("Generated root");
|
||||||
|
@ -115,9 +120,11 @@ public class MonitorTreeDataGenerator {
|
||||||
ArrayList<OperationMonitor> operationMonitorList) {
|
ArrayList<OperationMonitor> operationMonitorList) {
|
||||||
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
|
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
|
||||||
if (operationMonitorList != null && operationMonitorList.size() > 0) {
|
if (operationMonitorList != null && operationMonitorList.size() > 0) {
|
||||||
|
Log.debug("getRoot: "+operationMonitorList.size());
|
||||||
for (OperationMonitor operationMonitor : operationMonitorList) {
|
for (OperationMonitor operationMonitor : operationMonitorList) {
|
||||||
if (operationMonitor != null
|
if (operationMonitor != null
|
||||||
&& operationMonitor.getTask() != null) {
|
&& operationMonitor.getTask() != null) {
|
||||||
|
Log.debug("getRoot: [TaskId="+operationMonitor.getTaskId()+"]");
|
||||||
TaskS task = operationMonitor.getTask();
|
TaskS task = operationMonitor.getTask();
|
||||||
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
|
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
|
||||||
for (JobS job : task.getJobs()) {
|
for (JobS job : task.getJobs()) {
|
||||||
|
@ -143,15 +150,21 @@ public class MonitorTreeDataGenerator {
|
||||||
jobs.add(foldJob);
|
jobs.add(foldJob);
|
||||||
}
|
}
|
||||||
MonitorFolderDto foldTask = new MonitorFolderDto("task",
|
MonitorFolderDto foldTask = new MonitorFolderDto("task",
|
||||||
task.getId(), task.getId() + " [Date:"
|
task.getId(), operationMonitor.getOperationId().toString(),
|
||||||
+ sdf.format(task.getStartTime()) + "]",
|
|
||||||
task.getState().toString(), "", task.getProgress(),
|
task.getState().toString(), "", task.getProgress(),
|
||||||
jobs);
|
jobs);
|
||||||
|
if(task.getStartTime()!=null){
|
||||||
|
foldTask.setStartTime(sdf.format(task.getStartTime()));
|
||||||
|
}
|
||||||
|
if(task.getEndTime()!=null){
|
||||||
|
foldTask.setEndTime(sdf.format(task.getEndTime()));
|
||||||
|
}
|
||||||
childrens.add(foldTask);
|
childrens.add(foldTask);
|
||||||
} else {
|
} else {
|
||||||
|
Log.debug("getRoot: operation null");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Log.debug("childrens size:"+childrens.size());
|
||||||
root = new MonitorFolderDto("root", "-1", "root", "root",
|
root = new MonitorFolderDto("root", "-1", "root", "root",
|
||||||
"", 0, childrens);
|
"", 0, childrens);
|
||||||
Log.debug("Generated root");
|
Log.debug("Generated root");
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- Specify the app entry point class. -->
|
<!-- Specify the app entry point class. -->
|
||||||
<!-- <entry-point class='org.gcube.portlets.user.td.monitorwidget.client.MonitorWidgetEntry' /> -->
|
<entry-point class='org.gcube.portlets.user.td.monitorwidget.client.MonitorWidgetEntry' />
|
||||||
|
|
||||||
<!-- Logger
|
<!-- Logger -->
|
||||||
<set-property name="log_DivLogger" value="ENABLED" />
|
<set-property name="log_DivLogger" value="ENABLED" />
|
||||||
<set-property name="log_ConsoleLogger" value="ENABLED" />
|
<set-property name="log_ConsoleLogger" value="ENABLED" />
|
||||||
<set-property name="log_FirebugLogger" value="ENABLED" />
|
<set-property name="log_FirebugLogger" value="ENABLED" />
|
||||||
|
|
Loading…
Reference in New Issue