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> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<packaging>war</packaging>
</project> </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.OperationMonitor;
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession;
import org.gcube.portlets.user.td.monitorwidget.client.details.MonitorDetailPanel; import org.gcube.portlets.user.td.monitorwidget.client.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.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.client.type.SessionExpiredType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
@ -215,7 +217,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
btnBackground.setEnabled(false); btnBackground.setEnabled(false);
btnAbort.setEnabled(false); btnAbort.setEnabled(false);
fireRequestPutInBackground(); fireRequestPutInBackground();
close();
} }
public boolean isAbortBtnEnabled() { public boolean isAbortBtnEnabled() {
@ -369,6 +370,10 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
public void monitorPutInBackground() { public void monitorPutInBackground() {
fireOperationPutInBackground(); fireOperationPutInBackground();
close(); 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() { protected void fireOperationPutInBackground() {
for (MonitorDialogListener listener : listeners) for (MonitorDialogListener listener : listeners)
listener.operationPutInBackground(); listener.operationPutInBackground();
} }
//UI event Fire
protected void fireRequestAborted() { protected void fireRequestAborted() {
for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) { for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) {
listener.requestAborted(); listener.requestAborted();
@ -408,6 +416,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) { for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) {
listener.requestPutInBackground(); listener.requestPutInBackground();
} }
} }
/** /**

View File

@ -238,7 +238,7 @@ public class MonitorUpdater extends Timer implements MonitorDialogEventUIListene
@Override @Override
public void requestPutInBackground() { 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); public void requestAborted(String taskId);
/**
* Called when the task is hidden
*
*/
public void requestHidden(String taskId);
/** /**
* Called when the task is resumed * 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 { public class MonitorBackgroundInfoDialog extends Window {
private static final String WIDTH = "640px"; private static final String WIDTH = "640px";
private static final String HEIGHT = "378px"; private static final String HEIGHT = "408px";
protected EventBus eventBus; protected EventBus eventBus;
protected MonitorBackgroundInfoPanel monitorBackgroundInfoPanel; 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.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.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.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.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;
@ -51,8 +55,8 @@ import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
*/ */
public class MonitorBackgroundInfoPanel extends FramedPanel { public class MonitorBackgroundInfoPanel extends FramedPanel {
protected static final String WIDTH = "618px"; protected static final String WIDTH = "618px";
protected static final String HEIGHT = "370px"; protected static final String HEIGHT = "400px";
protected static final String HEIGHTGRID ="300px"; protected static final String HEIGHTGRID ="290px";
protected static final int CC1WIDTH = 168; protected static final int CC1WIDTH = 168;
protected static final int CC2WIDTH = 100; protected static final int CC2WIDTH = 100;
@ -75,6 +79,7 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
protected EventBus eventBus; protected EventBus eventBus;
protected MonitorBackgroundUpdater monitorBackgroundUpdater; protected MonitorBackgroundUpdater monitorBackgroundUpdater;
private TextButton btnClose;
class KeyProvider implements ModelKeyProvider<MonitorBaseDto> { class KeyProvider implements ModelKeyProvider<MonitorBaseDto> {
@Override @Override
@ -336,9 +341,33 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
} }
}); });
toolBar.add(btnCollapseAll); 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(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)));
con.add(flowButton,
new VerticalLayoutData(1, 36, new Margins(5, 5, 5, 5)));
add(con, new MarginData(0)); 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.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.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.WorkerState;
import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerStateParser; 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 public class MonitorBackgroundPanel extends FramedPanel implements
MonitorBackgroundUpdaterListener { 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 WIDTH = "298px";
protected static final String HEIGHT = "520px"; protected static final String HEIGHT = "520px";
protected static final int CC1WIDTH = 110; protected static final int CC1WIDTH = 100;
protected static final int CC2WIDTH = 70; protected static final int CC2WIDTH = 60;
protected static final int CC3WIDTH = 100; protected static final int CC3WIDTH = 100;
protected MonitorBackgroundDialog parent; protected MonitorBackgroundDialog parent;
@ -73,6 +74,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
protected Menu contextMenu; protected Menu contextMenu;
protected MenuItem infoItem; protected MenuItem infoItem;
protected MenuItem abortItem; protected MenuItem abortItem;
protected MenuItem hiddenItem;
protected TRId trId; protected TRId trId;
protected VerticalLayoutContainer con; protected VerticalLayoutContainer con;
@ -123,7 +125,7 @@ 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);
store = new TreeStore<MonitorBaseDto>(new KeyProvider()); store = new TreeStore<MonitorBaseDto>(new KeyProvider());
@ -225,7 +227,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
} }
}; };
progress.setProgressText("{0}% Complete"); progress.setProgressText("{0}% Complete");
progress.setWidth(110); progress.setWidth(100);
cc3.setCell(progress); cc3.setCell(progress);
@ -242,7 +244,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
tree.setColumnResize(true); tree.setColumnResize(true);
tree.getView().setAutoExpandColumn(cc1); tree.getView().setAutoExpandColumn(cc1);
tree.getElement().setAttribute("height", "auto"); tree.getElement().setAttribute("height", "auto");
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() { IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
@Override @Override
@ -291,7 +293,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
add(con, new MarginData(0)); add(con, new MarginData(0));
// addMonitor(); addMonitor();
forceLayout(); forceLayout();
@ -301,10 +303,10 @@ public class MonitorBackgroundPanel extends FramedPanel implements
monitorBackgroundUpdater = new MonitorBackgroundUpdater(); monitorBackgroundUpdater = new MonitorBackgroundUpdater();
monitorBackgroundUpdater.addListener(this); monitorBackgroundUpdater.addListener(this);
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
addMonitorBackgroundEventUIListener(monitorBackgroundUpdater); addMonitorBackgroundEventUIListener(monitorBackgroundUpdater);
monitorBackgroundUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
monitorBackgroundUpdater.run();
} }
public void addMonitorBackgroundEventUIListener( public void addMonitorBackgroundEventUIListener(
@ -321,10 +323,11 @@ public class MonitorBackgroundPanel extends FramedPanel implements
forceLayout(); forceLayout();
} }
protected void close() { public void close() {
if (parent != null) { if (parent != null) {
parent.close(); parent.close();
} }
monitorBackgroundUpdater.cancel();
} }
@ -358,7 +361,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
infoItem = new MenuItem(); infoItem = new MenuItem();
infoItem.setText("Info"); infoItem.setText("Info");
infoItem.setIcon(ResourceBundle.INSTANCE.ok()); infoItem.setIcon(ResourceBundle.INSTANCE.information());
infoItem.addSelectionHandler(new SelectionHandler<Item>() { infoItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override @Override
@ -372,7 +375,7 @@ public class MonitorBackgroundPanel extends FramedPanel implements
abortItem = new MenuItem(); abortItem = new MenuItem();
abortItem.setText("Abort"); abortItem.setText("Abort");
abortItem.setIcon(ResourceBundle.INSTANCE.basket()); abortItem.setIcon(ResourceBundle.INSTANCE.basketDelete());
abortItem.addSelectionHandler(new SelectionHandler<Item>() { abortItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override @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(infoItem);
contextMenu.add(abortItem); contextMenu.add(abortItem);
contextMenu.add(hiddenItem);
tree.setContextMenu(contextMenu); tree.setContextMenu(contextMenu);
} }
@ -406,7 +427,27 @@ public class MonitorBackgroundPanel extends FramedPanel implements
} }
protected void requestBacgroundAbort(MonitorBaseDto selected) { 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 @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); backgroundOperationMonitorSession.addToOperationMonitorSessionList(operationMonitorSession);
} }
@Override
public void requestHidden(String taskId) {
OperationMonitorSession operationMonitorSession=new OperationMonitorSession(taskId);
operationMonitorSession.setHidden(true);
backgroundOperationMonitorSession.addToOperationMonitorSessionList(operationMonitorSession);
}
@Override @Override
public void requestResume(String taskId) { public void requestResume(String taskId) {
// TODO Auto-generated method stub // TODO Auto-generated method stub

View File

@ -53,5 +53,23 @@ public interface ResourceBundle extends ClientBundle {
@Source("magnifier-zoom-out.png") @Source("magnifier-zoom-out.png")
ImageResource magnifierZoomOut(); 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. --> <!-- 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" />
<set-property name="log_GWTLogger" 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