Updated background operation monitor
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@112011 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
8dfa46cbfc
commit
b4dcc0c78a
|
@ -3,6 +3,7 @@ package org.gcube.portlets.user.td.monitorwidget.client;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
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.monitor.OperationMonitor;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.task.JobS;
|
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.State;
|
||||||
|
@ -91,15 +92,20 @@ public class MonitorWidgetEntry implements EntryPoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showBackgroundElapsed() {
|
private void showBackgroundElapsed() {
|
||||||
ArrayList<OperationMonitor> backgroundOperationMonitorList = new ArrayList<OperationMonitor>();
|
ArrayList<BackgroundOperationMonitor> backgroundOperationMonitorList = new ArrayList<BackgroundOperationMonitor>();
|
||||||
|
|
||||||
for (int i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
|
|
||||||
OperationMonitor operationMonitor = new OperationMonitor(String.valueOf(i),
|
BackgroundOperationMonitor backgroundOperationMonitor=new
|
||||||
UIOperationsId.EditRow);
|
BackgroundOperationMonitor();
|
||||||
operationMonitor.setTask(createTaskForTest(String.valueOf(i)));
|
backgroundOperationMonitor.setTaskId(String.valueOf(i));
|
||||||
|
backgroundOperationMonitor.setOperationId(UIOperationsId.EditRow);
|
||||||
|
backgroundOperationMonitor.setTabularResourceId("1");
|
||||||
|
backgroundOperationMonitor.setTabularResourceName("TestTR");
|
||||||
|
backgroundOperationMonitor.setState(State.IN_PROGRESS);
|
||||||
|
backgroundOperationMonitor.setProgress(genProgress());
|
||||||
|
|
||||||
backgroundOperationMonitorList.add(operationMonitor);
|
backgroundOperationMonitorList.add(backgroundOperationMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
monitorBackgroundWidget
|
monitorBackgroundWidget
|
||||||
|
@ -107,11 +113,16 @@ public class MonitorWidgetEntry implements EntryPoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showBackgroundInfoWidget() {
|
private void showBackgroundInfoWidget() {
|
||||||
OperationMonitor operationMonitor = new OperationMonitor("1",
|
BackgroundOperationMonitor backgroundOperationMonitor=new
|
||||||
UIOperationsId.EditRow);
|
BackgroundOperationMonitor();
|
||||||
operationMonitor.setTask(createTaskForTest("1"));
|
backgroundOperationMonitor.setTaskId("1");
|
||||||
|
backgroundOperationMonitor.setOperationId(UIOperationsId.EditRow);
|
||||||
|
backgroundOperationMonitor.setTabularResourceId("1");
|
||||||
|
backgroundOperationMonitor.setTabularResourceName("TestTR");
|
||||||
|
backgroundOperationMonitor.setState(State.IN_PROGRESS);
|
||||||
|
backgroundOperationMonitor.setProgress(genProgress());
|
||||||
monitorBackgroundInfoWidget = new MonitorBackgroundInfoDialog(
|
monitorBackgroundInfoWidget = new MonitorBackgroundInfoDialog(
|
||||||
operationMonitor, eventBus);
|
backgroundOperationMonitor, eventBus);
|
||||||
monitorBackgroundInfoWidget.show();
|
monitorBackgroundInfoWidget.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.web.bindery.event.shared.EventBus;
|
import com.google.web.bindery.event.shared.EventBus;
|
||||||
|
@ -82,7 +82,7 @@ public class MonitorBackgroundDialog extends Window {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateBackgroundOperationMonitor(ArrayList<OperationMonitor> operationMonitorList) {
|
public void updateBackgroundOperationMonitor(ArrayList<BackgroundOperationMonitor> operationMonitorList) {
|
||||||
if (monitorBackgroundPanel != null) {
|
if (monitorBackgroundPanel != null) {
|
||||||
monitorBackgroundPanel.operationMonitorListUpdated(operationMonitorList);
|
monitorBackgroundPanel.operationMonitorListUpdated(operationMonitorList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.web.bindery.event.shared.EventBus;
|
import com.google.web.bindery.event.shared.EventBus;
|
||||||
|
@ -21,15 +21,16 @@ public class MonitorBackgroundInfoDialog extends Window {
|
||||||
private static final String WIDTH = "640px";
|
private static final String WIDTH = "640px";
|
||||||
private static final String HEIGHT = "408px";
|
private static final String HEIGHT = "408px";
|
||||||
|
|
||||||
protected EventBus eventBus;
|
private EventBus eventBus;
|
||||||
protected MonitorBackgroundInfoPanel monitorBackgroundInfoPanel;
|
private MonitorBackgroundInfoPanel monitorBackgroundInfoPanel;
|
||||||
protected OperationMonitor operationMonitor;
|
private BackgroundOperationMonitor backgroundOperationMonitor;
|
||||||
|
|
||||||
public MonitorBackgroundInfoDialog(OperationMonitor operationMonitor, EventBus eventBus) {
|
public MonitorBackgroundInfoDialog(BackgroundOperationMonitor backgroundOperationMonitor, EventBus eventBus) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
Log.debug("MonitorBackgroundInfoDialog");
|
Log.debug("MonitorBackgroundInfoDialog");
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
this.operationMonitor =operationMonitor;
|
this.backgroundOperationMonitor =backgroundOperationMonitor;
|
||||||
initWindow();
|
initWindow();
|
||||||
create();
|
create();
|
||||||
}
|
}
|
||||||
|
@ -41,11 +42,11 @@ public class MonitorBackgroundInfoDialog extends Window {
|
||||||
setResizable(false);
|
setResizable(false);
|
||||||
setModal(false);
|
setModal(false);
|
||||||
setClosable(true);
|
setClosable(true);
|
||||||
setHeadingText("Info Operation");
|
setHeadingText(backgroundOperationMonitor.getTabularResourceName());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void create() {
|
protected void create() {
|
||||||
monitorBackgroundInfoPanel = new MonitorBackgroundInfoPanel(this, operationMonitor,eventBus);
|
monitorBackgroundInfoPanel = new MonitorBackgroundInfoPanel(this, backgroundOperationMonitor,eventBus);
|
||||||
add(monitorBackgroundInfoPanel);
|
add(monitorBackgroundInfoPanel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,9 @@ 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.monitor.BackgroundOperationMonitor;
|
||||||
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.monitor.OperationMonitorSession;
|
||||||
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.gwtservice.shared.task.WorkerStateParser;
|
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.MonitorBaseDto;
|
||||||
|
@ -13,7 +14,6 @@ import org.gcube.portlets.user.td.monitorwidget.client.details.tree.MonitorTreeD
|
||||||
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.monitorwidget.client.utils.UtilsGXT3;
|
||||||
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
import com.google.gwt.cell.client.AbstractCell;
|
import com.google.gwt.cell.client.AbstractCell;
|
||||||
|
@ -30,12 +30,12 @@ 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.button.TextButton;
|
||||||
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.BoxLayoutData;
|
||||||
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
|
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
|
||||||
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign;
|
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign;
|
||||||
|
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.container.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent;
|
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;
|
||||||
|
@ -54,31 +54,33 @@ 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 MonitorBackgroundInfoPanel extends FramedPanel {
|
public class MonitorBackgroundInfoPanel extends FramedPanel implements
|
||||||
protected static final String WIDTH = "618px";
|
MonitorBackgroundInfoUpdaterListener {
|
||||||
protected static final String HEIGHT = "400px";
|
private static final int STATUS_POLLING_DELAY = 1000;
|
||||||
protected static final String HEIGHTGRID = "290px";
|
|
||||||
|
|
||||||
protected static final int CC1WIDTH = 168;
|
private static final String WIDTH = "618px";
|
||||||
protected static final int CC2WIDTH = 100;
|
private static final String HEIGHT = "400px";
|
||||||
protected static final int CC3WIDTH = 140;
|
private static final String HEIGHTGRID = "290px";
|
||||||
protected static final int CC4WIDTH = 100;
|
|
||||||
|
|
||||||
protected MonitorBackgroundInfoDialog parent;
|
private static final int CC1WIDTH = 168;
|
||||||
protected MonitorBackgroundInfoPanel thisPanel;
|
private static final int CC2WIDTH = 100;
|
||||||
|
private static final int CC3WIDTH = 140;
|
||||||
|
private static final int CC4WIDTH = 100;
|
||||||
|
|
||||||
protected TRId trId;
|
private MonitorBackgroundInfoDialog parent;
|
||||||
protected VerticalLayoutContainer con;
|
|
||||||
protected ValidationsTasksMetadata validationsTasksMetadata;
|
|
||||||
|
|
||||||
protected MonitorTreeDataGenerator gen;
|
private VerticalLayoutContainer con;
|
||||||
protected TreeStore<MonitorBaseDto> store;
|
|
||||||
protected TreeGrid<MonitorBaseDto> tree;
|
|
||||||
protected OperationMonitor operationMonitor;
|
|
||||||
|
|
||||||
protected EventBus eventBus;
|
|
||||||
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
private MonitorTreeDataGenerator gen;
|
||||||
|
private TreeStore<MonitorBaseDto> store;
|
||||||
|
private TreeGrid<MonitorBaseDto> tree;
|
||||||
|
private OperationMonitor operationMonitor;
|
||||||
|
|
||||||
|
|
||||||
|
private MonitorBackgroundInfoUpdater monitorBackgroundInfoUpdater;
|
||||||
private TextButton btnClose;
|
private TextButton btnClose;
|
||||||
|
private OperationMonitorSession operationMonitorSession;
|
||||||
|
|
||||||
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
||||||
@Override
|
@Override
|
||||||
|
@ -89,11 +91,13 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MonitorBackgroundInfoPanel(MonitorBackgroundInfoDialog parent,
|
public MonitorBackgroundInfoPanel(MonitorBackgroundInfoDialog parent,
|
||||||
OperationMonitor operationMonitor, EventBus eventBus) {
|
BackgroundOperationMonitor backgroundOperationMonitor,
|
||||||
|
EventBus eventBus) {
|
||||||
super();
|
super();
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.operationMonitor = operationMonitor;
|
this.operationMonitorSession = new OperationMonitorSession(
|
||||||
this.eventBus = eventBus;
|
backgroundOperationMonitor.getTaskId());
|
||||||
|
operationMonitorSession.setInBackground(true);
|
||||||
forceLayoutOnResize = true;
|
forceLayoutOnResize = true;
|
||||||
init();
|
init();
|
||||||
create();
|
create();
|
||||||
|
@ -125,8 +129,8 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
@Override
|
@Override
|
||||||
public void render(Context context, String value, SafeHtmlBuilder sb) {
|
public void render(Context context, String value, SafeHtmlBuilder sb) {
|
||||||
sb.appendHtmlConstant("<span title='"
|
sb.appendHtmlConstant("<span title='"
|
||||||
+ SafeHtmlUtils.htmlEscape(value) + "'>" + SafeHtmlUtils.htmlEscape(value)
|
+ SafeHtmlUtils.htmlEscape(value) + "'>"
|
||||||
+ "</span>");
|
+ SafeHtmlUtils.htmlEscape(value) + "</span>");
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -367,11 +371,20 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
|
|
||||||
add(con, new MarginData(0));
|
add(con, new MarginData(0));
|
||||||
|
|
||||||
|
addMonitor();
|
||||||
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
tree.expandAll();
|
tree.expandAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void addMonitor() {
|
||||||
|
monitorBackgroundInfoUpdater = new MonitorBackgroundInfoUpdater(operationMonitorSession);
|
||||||
|
monitorBackgroundInfoUpdater.addListener(this);
|
||||||
|
monitorBackgroundInfoUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
|
||||||
|
monitorBackgroundInfoUpdater.run();
|
||||||
|
}
|
||||||
|
|
||||||
protected void close() {
|
protected void close() {
|
||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
parent.close();
|
parent.close();
|
||||||
|
@ -406,6 +419,19 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void update(OperationMonitor operationMonitor) {
|
||||||
|
this.operationMonitor = operationMonitor;
|
||||||
|
|
||||||
|
store.clear();
|
||||||
|
store.commitChanges();
|
||||||
|
addChildrensToStore();
|
||||||
|
store.commitChanges();
|
||||||
|
tree.expandAll();
|
||||||
|
|
||||||
|
forceLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void processFolder(MonitorFolderDto folder) {
|
private void processFolder(MonitorFolderDto folder) {
|
||||||
for (MonitorBaseDto child : folder.getChildrens()) {
|
for (MonitorBaseDto child : folder.getChildrens()) {
|
||||||
try {
|
try {
|
||||||
|
@ -422,4 +448,18 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void backgroundOperationMonitorUpdated(
|
||||||
|
OperationMonitor operationMonitor) {
|
||||||
|
update(operationMonitor);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void retrieveBackgroundOperationMonitorFailed(Throwable caught) {
|
||||||
|
Log.error("Error retrieving background operation monitor: "+caught.getLocalizedMessage());
|
||||||
|
UtilsGXT3.alert("Error", "Error generating informations: "+caught.getLocalizedMessage());
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.user.client.Timer;
|
||||||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MonitorBackgroundInfoUpdater extends Timer {
|
||||||
|
|
||||||
|
protected ArrayList<MonitorBackgroundInfoUpdaterListener> listeners = new ArrayList<MonitorBackgroundInfoUpdaterListener>();
|
||||||
|
protected OperationMonitorSession operationMonitorSession;
|
||||||
|
|
||||||
|
public MonitorBackgroundInfoUpdater(
|
||||||
|
OperationMonitorSession operationMonitorSession) {
|
||||||
|
this.operationMonitorSession = operationMonitorSession;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Log.debug("requesting operation in background ");
|
||||||
|
TDGWTServiceAsync.INSTANCE
|
||||||
|
.getBackgroundOperationMonitorForSpecificTask(
|
||||||
|
operationMonitorSession,
|
||||||
|
new AsyncCallback<OperationMonitor>() {
|
||||||
|
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
cancel();
|
||||||
|
|
||||||
|
Log.error("Error retrieving operation monitor",
|
||||||
|
caught);
|
||||||
|
|
||||||
|
fireRetrieveOperationMonitorFailed(caught);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onSuccess(OperationMonitor result) {
|
||||||
|
Log.debug("retrieved Operation Monitor");
|
||||||
|
|
||||||
|
fireOperationMonitorUpdated(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void fireOperationMonitorUpdated(OperationMonitor operationMonitor) {
|
||||||
|
for (MonitorBackgroundInfoUpdaterListener listener : listeners)
|
||||||
|
listener.backgroundOperationMonitorUpdated(operationMonitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void fireRetrieveOperationMonitorFailed(Throwable throwable) {
|
||||||
|
for (MonitorBackgroundInfoUpdaterListener listener : listeners)
|
||||||
|
listener.retrieveBackgroundOperationMonitorFailed(throwable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
*/
|
||||||
|
public void addListener(MonitorBackgroundInfoUpdaterListener listener) {
|
||||||
|
listeners.add(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
*/
|
||||||
|
public void removeListener(MonitorBackgroundInfoUpdaterListener listener) {
|
||||||
|
listeners.remove(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author giancarlo
|
||||||
|
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface MonitorBackgroundInfoUpdaterListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the operation is updated
|
||||||
|
*/
|
||||||
|
public void backgroundOperationMonitorUpdated(OperationMonitor operationMonitor);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when operation is failed
|
||||||
|
*/
|
||||||
|
public void retrieveBackgroundOperationMonitorFailed(Throwable caught);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -4,15 +4,9 @@ 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.exception.TDGWTSessionExpiredException;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.task.State;
|
import org.gcube.portlets.user.td.gwtservice.shared.task.State;
|
||||||
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.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.monitorwidget.client.resources.ResourceBundle;
|
||||||
import org.gcube.portlets.user.td.monitorwidget.client.utils.UtilsGXT3;
|
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.event.SessionExpiredEvent;
|
||||||
|
@ -21,35 +15,30 @@ import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
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.core.client.GWT;
|
||||||
|
import com.google.gwt.editor.client.Editor.Path;
|
||||||
import com.google.gwt.event.logical.shared.SelectionEvent;
|
import com.google.gwt.event.logical.shared.SelectionEvent;
|
||||||
import com.google.gwt.event.logical.shared.SelectionHandler;
|
import com.google.gwt.event.logical.shared.SelectionHandler;
|
||||||
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;
|
||||||
import com.google.web.bindery.event.shared.EventBus;
|
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.ValueProvider;
|
import com.sencha.gxt.core.client.ValueProvider;
|
||||||
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
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.ListStore;
|
||||||
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.PropertyAccess;
|
||||||
import com.sencha.gxt.widget.core.client.FramedPanel;
|
import com.sencha.gxt.widget.core.client.FramedPanel;
|
||||||
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;
|
||||||
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.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.grid.Grid;
|
||||||
import com.sencha.gxt.widget.core.client.menu.Item;
|
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.treegrid.TreeGrid;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -62,9 +51,9 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
protected static final int STATUS_POLLING_DELAY = 5000;
|
protected static final int STATUS_POLLING_DELAY = 5000;
|
||||||
protected static final String WIDTH = "640px";
|
protected static final String WIDTH = "640px";
|
||||||
protected static final String HEIGHT = "520px";
|
protected static final String HEIGHT = "520px";
|
||||||
protected static final int CC1WIDTH = 100;
|
protected static final int CC1WIDTH = 104;
|
||||||
protected static final int CC2WIDTH = 60;
|
protected static final int CC2WIDTH = 52;
|
||||||
protected static final int CC3WIDTH = 100;
|
protected static final int CC3WIDTH = 104;
|
||||||
protected MonitorBackgroundDialog parent;
|
protected MonitorBackgroundDialog parent;
|
||||||
|
|
||||||
protected ArrayList<MonitorBackgroundEventUIListener> monitorBackgroundEventUIListeners = new ArrayList<MonitorBackgroundEventUIListener>();
|
protected ArrayList<MonitorBackgroundEventUIListener> monitorBackgroundEventUIListeners = new ArrayList<MonitorBackgroundEventUIListener>();
|
||||||
|
@ -80,20 +69,24 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
protected VerticalLayoutContainer con;
|
protected VerticalLayoutContainer con;
|
||||||
protected ValidationsTasksMetadata validationsTasksMetadata;
|
protected ValidationsTasksMetadata validationsTasksMetadata;
|
||||||
|
|
||||||
protected MonitorTreeDataGenerator gen;
|
protected ListStore<BackgroundOperationMonitor> store;
|
||||||
protected TreeStore<MonitorBaseDto> store;
|
protected Grid<BackgroundOperationMonitor> grid;
|
||||||
protected TreeGrid<MonitorBaseDto> tree;
|
protected ArrayList<BackgroundOperationMonitor> backgroundOperationMonitorList;
|
||||||
protected ArrayList<OperationMonitor> operationMonitorList;
|
|
||||||
|
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
|
||||||
|
|
||||||
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
|
public interface BackgroundOperationMonitorProperties extends
|
||||||
@Override
|
PropertyAccess<BackgroundOperationMonitor> {
|
||||||
public String getKey(MonitorBaseDto item) {
|
|
||||||
return (item instanceof MonitorFolderDto ? "f-" : "v-")
|
@Path("taskId")
|
||||||
+ item.getId();
|
ModelKeyProvider<BackgroundOperationMonitor> taskId();
|
||||||
}
|
|
||||||
|
ValueProvider<BackgroundOperationMonitor, String> tabularResourceName();
|
||||||
|
|
||||||
|
ValueProvider<BackgroundOperationMonitor, State> state();
|
||||||
|
|
||||||
|
ValueProvider<BackgroundOperationMonitor, Float> progress();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MonitorBackgroundPanel(EventBus eventBus) {
|
public MonitorBackgroundPanel(EventBus eventBus) {
|
||||||
|
@ -126,91 +119,45 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
protected void create() {
|
protected void create() {
|
||||||
con = new VerticalLayoutContainer();
|
con = new VerticalLayoutContainer();
|
||||||
con.setScrollMode(ScrollMode.AUTO);
|
con.setScrollMode(ScrollMode.AUTO);
|
||||||
|
BackgroundOperationMonitorProperties props = GWT
|
||||||
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
|
.create(BackgroundOperationMonitorProperties.class);
|
||||||
|
store = new ListStore<BackgroundOperationMonitor>(props.taskId());
|
||||||
|
|
||||||
addChildrensToStore();
|
addChildrensToStore();
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
|
ColumnConfig<BackgroundOperationMonitor, String> cc1 = new ColumnConfig<BackgroundOperationMonitor, String>(
|
||||||
new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH,
|
props.tabularResourceName());
|
||||||
"Task");
|
cc1.setHeader("Tabular Resource");
|
||||||
cc1.setHeader("Task");
|
|
||||||
cc1.setCell(new AbstractCell<String>() {
|
cc1.setCell(new AbstractCell<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(Context context, String value, SafeHtmlBuilder sb) {
|
public void render(Context context, String value, SafeHtmlBuilder sb) {
|
||||||
sb.appendHtmlConstant("<span title='"
|
sb.appendHtmlConstant("<span title='"
|
||||||
+ SafeHtmlUtils.htmlEscape(value) + "'>" + SafeHtmlUtils.htmlEscape(value)
|
+ SafeHtmlUtils.htmlEscape(value) + "'>"
|
||||||
+ "</span>");
|
+ SafeHtmlUtils.htmlEscape(value) + "</span>");
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, String> cc2 = new ColumnConfig<MonitorBaseDto, String>(
|
ColumnConfig<BackgroundOperationMonitor, State> cc2 = new ColumnConfig<BackgroundOperationMonitor, State>(
|
||||||
new ValueProvider<MonitorBaseDto, String>() {
|
props.state());
|
||||||
|
|
||||||
@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");
|
cc2.setHeader("Status");
|
||||||
|
|
||||||
ColumnConfig<MonitorBaseDto, Double> cc3 = new ColumnConfig<MonitorBaseDto, Double>(
|
ColumnConfig<BackgroundOperationMonitor, Double> cc3 = new ColumnConfig<BackgroundOperationMonitor, Double>(
|
||||||
new ValueProvider<MonitorBaseDto, Double>() {
|
new ValueProvider<BackgroundOperationMonitor, Double>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Double getValue(MonitorBaseDto object) {
|
public Double getValue(BackgroundOperationMonitor object) {
|
||||||
Double d = null;
|
Double d = null;
|
||||||
if (object instanceof MonitorValidationJobSDto) {
|
Float f = object.getProgress();
|
||||||
Float f = ((MonitorValidationJobSDto) object).getProgress();
|
|
||||||
d = new Double(f);
|
d = new Double(f);
|
||||||
}
|
|
||||||
if (object instanceof MonitorFolderDto) {
|
|
||||||
Float f = ((MonitorFolderDto) object).getProgress();
|
|
||||||
d = new Double(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setValue(MonitorBaseDto object, Double value) {
|
public void setValue(BackgroundOperationMonitor object,
|
||||||
if (object instanceof MonitorValidationJobSDto) {
|
Double value) {
|
||||||
((MonitorValidationJobSDto) object)
|
object.setProgress(value.floatValue());
|
||||||
.setProgress(value.floatValue());
|
|
||||||
}
|
|
||||||
if (object instanceof MonitorFolderDto) {
|
|
||||||
((MonitorFolderDto) object).setProgress(value
|
|
||||||
.floatValue());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -231,65 +178,25 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
cc3.setCell(progress);
|
cc3.setCell(progress);
|
||||||
|
|
||||||
List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>();
|
List<ColumnConfig<BackgroundOperationMonitor, ?>> l = new ArrayList<ColumnConfig<BackgroundOperationMonitor, ?>>();
|
||||||
l.add(cc1);
|
l.add(cc1);
|
||||||
l.add(cc2);
|
l.add(cc2);
|
||||||
l.add(cc3);
|
l.add(cc3);
|
||||||
ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l);
|
ColumnModel<BackgroundOperationMonitor> cm = new ColumnModel<BackgroundOperationMonitor>(
|
||||||
|
l);
|
||||||
|
|
||||||
tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1);
|
grid = new Grid<BackgroundOperationMonitor>(store, cm);
|
||||||
tree.getView().setAutoFill(true);
|
grid.getView().setStripeRows(true);
|
||||||
tree.setBorders(false);
|
grid.getView().setColumnLines(true);
|
||||||
tree.setLoadMask(true);
|
grid.getView().setAutoFill(true);
|
||||||
tree.setColumnResize(true);
|
grid.setBorders(false);
|
||||||
tree.getView().setAutoExpandColumn(cc1);
|
grid.setLoadMask(true);
|
||||||
tree.getElement().setAttribute("height", "auto");
|
grid.setColumnReordering(false);
|
||||||
|
grid.setColumnResize(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();
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
createContextMenu();
|
createContextMenu();
|
||||||
|
|
||||||
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
|
con.add(grid, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
|
|
||||||
add(con, new MarginData(0));
|
add(con, new MarginData(0));
|
||||||
|
|
||||||
|
@ -301,7 +208,6 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
protected void addMonitor() {
|
protected void addMonitor() {
|
||||||
monitorBackgroundUpdater = new MonitorBackgroundUpdater();
|
monitorBackgroundUpdater = new MonitorBackgroundUpdater();
|
||||||
|
|
||||||
monitorBackgroundUpdater.addListener(this);
|
monitorBackgroundUpdater.addListener(this);
|
||||||
|
|
||||||
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
|
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
|
||||||
|
@ -331,28 +237,10 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void requestOperationOnKey(Context context) {
|
|
||||||
String key = (String) context.getKey();
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
MonitorBaseDto d = store.findModelWithKey(key);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addChildrensToStore() {
|
private void addChildrensToStore() {
|
||||||
gen = new MonitorTreeDataGenerator();
|
if(backgroundOperationMonitorList!=null){
|
||||||
try {
|
store.addAll(backgroundOperationMonitorList);
|
||||||
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);
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (Throwable e) {
|
|
||||||
Log.error("Error adding childrens to store :"
|
|
||||||
+ e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +254,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSelection(SelectionEvent<Item> event) {
|
public void onSelection(SelectionEvent<Item> event) {
|
||||||
MonitorBaseDto selected = tree.getSelectionModel()
|
BackgroundOperationMonitor selected = grid.getSelectionModel()
|
||||||
.getSelectedItem();
|
.getSelectedItem();
|
||||||
Log.debug(selected.toString());
|
Log.debug(selected.toString());
|
||||||
requestMoreInfo(selected);
|
requestMoreInfo(selected);
|
||||||
|
@ -380,7 +268,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSelection(SelectionEvent<Item> event) {
|
public void onSelection(SelectionEvent<Item> event) {
|
||||||
MonitorBaseDto selected = tree.getSelectionModel()
|
BackgroundOperationMonitor selected = grid.getSelectionModel()
|
||||||
.getSelectedItem();
|
.getSelectedItem();
|
||||||
Log.debug(selected.toString());
|
Log.debug(selected.toString());
|
||||||
requestBacgroundAbort(selected);
|
requestBacgroundAbort(selected);
|
||||||
|
@ -396,7 +284,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSelection(SelectionEvent<Item> event) {
|
public void onSelection(SelectionEvent<Item> event) {
|
||||||
MonitorBaseDto selected = tree.getSelectionModel()
|
BackgroundOperationMonitor selected = grid.getSelectionModel()
|
||||||
.getSelectedItem();
|
.getSelectedItem();
|
||||||
Log.debug(selected.toString());
|
Log.debug(selected.toString());
|
||||||
requestBacgroundHidden(selected);
|
requestBacgroundHidden(selected);
|
||||||
|
@ -409,56 +297,43 @@ public class MonitorBackgroundPanel extends FramedPanel implements
|
||||||
contextMenu.add(abortItem);
|
contextMenu.add(abortItem);
|
||||||
contextMenu.add(hideItem);
|
contextMenu.add(hideItem);
|
||||||
|
|
||||||
tree.setContextMenu(contextMenu);
|
grid.setContextMenu(contextMenu);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void requestMoreInfo(MonitorBaseDto selected) {
|
protected void requestMoreInfo(BackgroundOperationMonitor selected) {
|
||||||
for (OperationMonitor operationMonitor : operationMonitorList) {
|
Log.debug("Found Task Id: " + selected.getTaskId());
|
||||||
if (operationMonitor.getTaskId().compareTo(selected.getId()) == 0) {
|
|
||||||
Log.debug("Found Task Id: " + operationMonitor.getTaskId());
|
|
||||||
MonitorBackgroundInfoDialog monitorBackgroundInfoDialog = new MonitorBackgroundInfoDialog(
|
MonitorBackgroundInfoDialog monitorBackgroundInfoDialog = new MonitorBackgroundInfoDialog(
|
||||||
operationMonitor, eventBus);
|
selected, eventBus);
|
||||||
monitorBackgroundInfoDialog.show();
|
monitorBackgroundInfoDialog.show();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void requestBacgroundAbort(BackgroundOperationMonitor selected) {
|
||||||
|
Log.debug("Found Task Id: " + selected.getTaskId());
|
||||||
|
if (selected.getState() == State.IN_PROGRESS
|
||||||
|
|| selected.getState() == State.INITIALIZING
|
||||||
|
|| selected.getState() == State.VALIDATING_RULES) {
|
||||||
|
fireRequestAborted(selected.getTaskId());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void requestBacgroundAbort(MonitorBaseDto selected) {
|
protected void requestBacgroundHidden(BackgroundOperationMonitor selected) {
|
||||||
for (OperationMonitor operationMonitor : operationMonitorList) {
|
Log.debug("Found Task Id: " + selected.getTaskId());
|
||||||
if (operationMonitor.getTaskId().compareTo(selected.getId()) == 0) {
|
fireRequestHidden(selected.getTaskId());
|
||||||
Log.debug("Found Task Id: " + operationMonitor.getTaskId());
|
|
||||||
if (operationMonitor.getTask().getState() == State.IN_PROGRESS
|
|
||||||
|| operationMonitor.getTask().getState() == State.INITIALIZING
|
|
||||||
|| operationMonitor.getTask().getState() == State.VALIDATING_RULES) {
|
|
||||||
fireRequestAborted(operationMonitor.getTaskId());
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void requestBacgroundHidden(MonitorBaseDto selected) {
|
|
||||||
for (OperationMonitor operationMonitor : operationMonitorList) {
|
|
||||||
if (operationMonitor.getTaskId().compareTo(selected.getId()) == 0) {
|
|
||||||
Log.debug("Found Task Id: " + operationMonitor.getTaskId());
|
|
||||||
fireRequestHidden(operationMonitor.getTaskId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void operationMonitorListUpdated(
|
public void operationMonitorListUpdated(
|
||||||
ArrayList<OperationMonitor> operationMonitorList) {
|
ArrayList<BackgroundOperationMonitor> operationMonitorList) {
|
||||||
this.operationMonitorList = operationMonitorList;
|
this.backgroundOperationMonitorList = operationMonitorList;
|
||||||
store.clear();
|
store.clear();
|
||||||
store.commitChanges();
|
store.commitChanges();
|
||||||
addChildrensToStore();
|
addChildrensToStore();
|
||||||
store.commitChanges();
|
store.commitChanges();
|
||||||
// tree.expandAll();
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@ package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
|
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitorSession;
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitorSession;
|
||||||
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.gwtservice.shared.monitor.OperationMonitorSession;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
@ -35,7 +35,7 @@ public class MonitorBackgroundUpdater extends Timer implements MonitorBackground
|
||||||
public void run() {
|
public void run() {
|
||||||
Log.debug("requesting list of operation in background ");
|
Log.debug("requesting list of operation in background ");
|
||||||
TDGWTServiceAsync.INSTANCE
|
TDGWTServiceAsync.INSTANCE
|
||||||
.getBackgroundOperationMonitor(backgroundOperationMonitorSession, new AsyncCallback<ArrayList<OperationMonitor>>() {
|
.getBackgroundOperationMonitor(backgroundOperationMonitorSession, new AsyncCallback<ArrayList<BackgroundOperationMonitor>>() {
|
||||||
|
|
||||||
|
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
|
@ -47,7 +47,7 @@ public class MonitorBackgroundUpdater extends Timer implements MonitorBackground
|
||||||
fireRetrieveOperationMonitorListFailed(caught);
|
fireRetrieveOperationMonitorListFailed(caught);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSuccess(ArrayList<OperationMonitor> result) {
|
public void onSuccess(ArrayList<BackgroundOperationMonitor> result) {
|
||||||
Log.debug("retrieved Operation Monitor List: "
|
Log.debug("retrieved Operation Monitor List: "
|
||||||
+ result.size());
|
+ result.size());
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public class MonitorBackgroundUpdater extends Timer implements MonitorBackground
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void fireOperationMonitorListUpdated(ArrayList<OperationMonitor> operationMonitorList){
|
protected void fireOperationMonitorListUpdated(ArrayList<BackgroundOperationMonitor> operationMonitorList){
|
||||||
for (MonitorBackgroundUpdaterListener listener : listeners)
|
for (MonitorBackgroundUpdaterListener listener : listeners)
|
||||||
listener.operationMonitorListUpdated(operationMonitorList);
|
listener.operationMonitorListUpdated(operationMonitorList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ package org.gcube.portlets.user.td.monitorwidget.client.background;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
|
import org.gcube.portlets.user.td.gwtservice.shared.monitor.BackgroundOperationMonitor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -15,7 +15,7 @@ public interface MonitorBackgroundUpdaterListener {
|
||||||
/**
|
/**
|
||||||
* Called when the list of opration is updated
|
* Called when the list of opration is updated
|
||||||
*/
|
*/
|
||||||
public void operationMonitorListUpdated(ArrayList<OperationMonitor> operationMonitorList);
|
public void operationMonitorListUpdated(ArrayList<BackgroundOperationMonitor> operationMonitorList);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue