Updated Task in background

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@99762 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-09-11 16:36:09 +00:00 committed by Giancarlo Panichi
parent 4e4accb98e
commit 6af9fc0627
22 changed files with 156 additions and 21 deletions

View File

@ -289,5 +289,4 @@
</dependency>
</dependencies>
</dependencyManagement>
<packaging>war</packaging>
</project>

View File

@ -6,7 +6,9 @@ import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpire
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession;
import org.gcube.portlets.user.td.monitorwidget.client.details.MonitorDetailPanel;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.BackgroundRequestEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.BackgroundRequestType;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
@ -215,7 +217,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
btnBackground.setEnabled(false);
btnAbort.setEnabled(false);
fireRequestPutInBackground();
close();
}
public boolean isAbortBtnEnabled() {
@ -369,6 +370,10 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
public void monitorPutInBackground() {
fireOperationPutInBackground();
close();
Log.debug("Request Background");
BackgroundRequestEvent e = new BackgroundRequestEvent(
BackgroundRequestType.BACKGROUND);
eventBus.fireEvent(e);
}
@ -396,8 +401,11 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
protected void fireOperationPutInBackground() {
for (MonitorDialogListener listener : listeners)
listener.operationPutInBackground();
}
//UI event Fire
protected void fireRequestAborted() {
for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) {
listener.requestAborted();
@ -408,6 +416,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) {
listener.requestPutInBackground();
}
}
/**

View File

@ -238,7 +238,7 @@ public class MonitorUpdater extends Timer implements MonitorDialogEventUIListene
@Override
public void requestPutInBackground() {
// TODO Auto-generated method stub
operationMonitorSession.setInBackground(true);
}
}

View File

@ -8,6 +8,13 @@ public interface MonitorBackgroundEventUIListener {
public void requestAborted(String taskId);
/**
* Called when the task is hidden
*
*/
public void requestHidden(String taskId);
/**
* Called when the task is resumed
*

View File

@ -19,7 +19,7 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
public class MonitorBackgroundInfoDialog extends Window {
private static final String WIDTH = "640px";
private static final String HEIGHT = "378px";
private static final String HEIGHT = "408px";
protected EventBus eventBus;
protected MonitorBackgroundInfoPanel monitorBackgroundInfoPanel;

View File

@ -29,8 +29,12 @@ 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.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent;
import com.sencha.gxt.widget.core.client.event.CollapseItemEvent.CollapseItemHandler;
@ -51,8 +55,8 @@ import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
*/
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 String HEIGHT = "400px";
protected static final String HEIGHTGRID ="290px";
protected static final int CC1WIDTH = 168;
protected static final int CC2WIDTH = 100;
@ -75,6 +79,7 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
protected EventBus eventBus;
protected MonitorBackgroundUpdater monitorBackgroundUpdater;
private TextButton btnClose;
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
@Override
@ -336,9 +341,33 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
}
});
toolBar.add(btnCollapseAll);
//
btnClose = new TextButton("Close");
btnClose.setWidth("70px");
// btnAbort.setIcon(ResourceBundle.INSTANCE.abort());
// btnAbort.setIconAlign(IconAlign.RIGHT);
btnClose.setTitle("Close");
btnClose.addSelectHandler(new SelectHandler() {
public void onSelect(SelectEvent event) {
close();
}
});
HBoxLayoutContainer flowButton = new HBoxLayoutContainer();
flowButton.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE);
flowButton.setPack(BoxLayoutPack.CENTER);
flowButton.add(btnClose, new BoxLayoutData(new Margins(0, 4, 0, 4)));
//
con.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
con.add(flowButton,
new VerticalLayoutData(1, 36, new Margins(5, 5, 5, 5)));
add(con, new MarginData(0));

View File

@ -5,6 +5,7 @@ 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.task.State;
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;
@ -58,11 +59,11 @@ import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
*/
public class MonitorBackgroundPanel extends FramedPanel implements
MonitorBackgroundUpdaterListener {
protected static final int STATUS_POLLING_DELAY = 4000;
protected static final int STATUS_POLLING_DELAY = 5000;
protected static final String WIDTH = "298px";
protected static final String HEIGHT = "520px";
protected static final int CC1WIDTH = 110;
protected static final int CC2WIDTH = 70;
protected static final int CC1WIDTH = 100;
protected static final int CC2WIDTH = 60;
protected static final int CC3WIDTH = 100;
protected MonitorBackgroundDialog parent;
@ -73,6 +74,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
protected Menu contextMenu;
protected MenuItem infoItem;
protected MenuItem abortItem;
protected MenuItem hiddenItem;
protected TRId trId;
protected VerticalLayoutContainer con;
@ -123,7 +125,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
protected void create() {
con = new VerticalLayoutContainer();
con.setScrollMode(ScrollMode.AUTO);
con.setScrollMode(ScrollMode.AUTO);
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
@ -225,7 +227,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
}
};
progress.setProgressText("{0}% Complete");
progress.setWidth(110);
progress.setWidth(100);
cc3.setCell(progress);
@ -242,7 +244,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
tree.setColumnResize(true);
tree.getView().setAutoExpandColumn(cc1);
tree.getElement().setAttribute("height", "auto");
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
@Override
@ -291,7 +293,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
add(con, new MarginData(0));
// addMonitor();
addMonitor();
forceLayout();
@ -301,10 +303,10 @@ public class MonitorBackgroundPanel extends FramedPanel implements
monitorBackgroundUpdater = new MonitorBackgroundUpdater();
monitorBackgroundUpdater.addListener(this);
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
monitorBackgroundUpdater.run();
}
public void addMonitorBackgroundEventUIListener(
@ -321,10 +323,11 @@ public class MonitorBackgroundPanel extends FramedPanel implements
forceLayout();
}
protected void close() {
public void close() {
if (parent != null) {
parent.close();
}
monitorBackgroundUpdater.cancel();
}
@ -358,7 +361,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
infoItem = new MenuItem();
infoItem.setText("Info");
infoItem.setIcon(ResourceBundle.INSTANCE.ok());
infoItem.setIcon(ResourceBundle.INSTANCE.information());
infoItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
@ -372,7 +375,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
abortItem = new MenuItem();
abortItem.setText("Abort");
abortItem.setIcon(ResourceBundle.INSTANCE.basket());
abortItem.setIcon(ResourceBundle.INSTANCE.basketDelete());
abortItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
@ -386,8 +389,26 @@ public class MonitorBackgroundPanel extends FramedPanel implements
});
hiddenItem = new MenuItem();
hiddenItem.setText("Hidden");
hiddenItem.setIcon(ResourceBundle.INSTANCE.basketRemove());
hiddenItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
MonitorBaseDto selected = tree.getSelectionModel()
.getSelectedItem();
Log.debug(selected.toString());
requestBacgroundHidden(selected);
}
});
contextMenu.add(infoItem);
contextMenu.add(abortItem);
contextMenu.add(hiddenItem);
tree.setContextMenu(contextMenu);
}
@ -406,7 +427,27 @@ public class MonitorBackgroundPanel extends FramedPanel implements
}
protected void requestBacgroundAbort(MonitorBaseDto selected) {
for (OperationMonitor operationMonitor : operationMonitorList) {
if (operationMonitor.getTaskId().compareTo(selected.getId()) == 0) {
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;
}
}
}
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
@ -435,4 +476,26 @@ public class MonitorBackgroundPanel extends FramedPanel implements
}
// UI event Fire
protected void fireRequestAborted(String taskId) {
for (MonitorBackgroundEventUIListener listener : monitorBackgroundEventUIListeners) {
listener.requestAborted(taskId);
}
}
protected void fireRequestHidden(String taskId) {
for (MonitorBackgroundEventUIListener listener : monitorBackgroundEventUIListeners) {
listener.requestHidden(taskId);
}
}
protected void fireRequestResume(String taskId) {
for (MonitorBackgroundEventUIListener listener : monitorBackgroundEventUIListeners) {
listener.requestResume(taskId);
}
}
}

View File

@ -100,7 +100,16 @@ public class MonitorBackgroundUpdater extends Timer implements MonitorBackground
backgroundOperationMonitorSession.addToOperationMonitorSessionList(operationMonitorSession);
}
@Override
public void requestHidden(String taskId) {
OperationMonitorSession operationMonitorSession=new OperationMonitorSession(taskId);
operationMonitorSession.setHidden(true);
backgroundOperationMonitorSession.addToOperationMonitorSessionList(operationMonitorSession);
}
@Override
public void requestResume(String taskId) {
// TODO Auto-generated method stub

View File

@ -53,5 +53,23 @@ public interface ResourceBundle extends ClientBundle {
@Source("magnifier-zoom-out.png")
ImageResource magnifierZoomOut();
@Source("basket-delete.png")
ImageResource basketDelete();
@Source("basket-delete_32.png")
ImageResource basketDelete32();
@Source("basket-remove.png")
ImageResource basketRemove();
@Source("basket-remove_32.png")
ImageResource basketRemove32();
@Source("information.png")
ImageResource information();
@Source("information_32.png")
ImageResource information32();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -23,10 +23,10 @@
<!-- 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 -->
<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_FirebugLogger" value="ENABLED" />
<set-property name="log_GWTLogger" value="ENABLED" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB