Updated OperationMonitor

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@99340 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-08-29 10:07:13 +00:00 committed by Giancarlo Panichi
parent 7ea82a3f6a
commit 8a8d6145bc
3 changed files with 71 additions and 51 deletions

View File

@ -13,6 +13,8 @@ import org.gcube.portlets.user.td.gwtservice.shared.task.WorkerState;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Random;
import com.google.gwt.user.client.Timer;
import com.google.web.bindery.event.shared.SimpleEventBus;
/**
@ -23,42 +25,74 @@ import com.google.web.bindery.event.shared.SimpleEventBus;
*/
public class MonitorWidgetEntry implements EntryPoint {
private MonitorDialog monitorWidget;
public void onModuleLoad() {
Log.debug("Test MonitorWidget");
SimpleEventBus eventBus = new SimpleEventBus();
MonitorDialog monitorWidget = new MonitorDialog("1", eventBus);
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)
elapsedTimer.scheduleRepeating(3000);
}
private void showElapsed(){
OperationMonitor operationMonitor = new OperationMonitor("1",
UIOperationsId.EditRow);
operationMonitor.setTask(createTaskForTest());
monitorWidget.updateOperationMonitor(operationMonitor);
}
private TaskS createTaskForTest() {
ArrayList<ValidationsJobS> validationsJobs = new ArrayList<ValidationsJobS>();
ValidationsJobS validationJobS = new ValidationsJobS("1",
WorkerState.IN_PROGRESS, 0.5f, "Row Validate", null,
WorkerState.IN_PROGRESS, genProgress(), "Row Validate", null,
"Validation in progress");
validationsJobs.add(validationJobS);
ArrayList<JobS> jobs = new ArrayList<JobS>();
JobS job1 = new JobS("1", 0.8f, "Edit Row Job for Human",
JobS job1 = new JobS("1", genProgress(), "Edit Row Job for Human",
"Edit Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
jobs.add(job1);
JobS job2 = new JobS("2", 0.3f, "Add Row Job for Human",
JobS job2 = new JobS("2", genProgress(), "Add Row Job for Human",
"Add Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
jobs.add(job2);
JobS job3 = new JobS("3", 0.72f, "Delete Job for Human",
JobS job3 = new JobS("3", genProgress(), "Delete Job for Human",
"Delete Row Job", WorkerState.IN_PROGRESS, null, validationsJobs);
jobs.add(job3);
TaskS task = new TaskS("1", 0.3f, State.IN_PROGRESS, null, "default",
TaskS task = new TaskS("1", genProgress(), State.IN_PROGRESS, null, "default",
new Date(), null, jobs);
return task;
}
private float genProgress(){
float fperc;
int perc=Random.nextInt(100);
if(perc==0){
fperc=0f;
} else {
fperc= new Float(perc)/100;
}
Log.debug("ProgressSet: "+fperc);
return fperc;
}
}

View File

@ -50,7 +50,7 @@ public class MonitorDetailPanel extends FramedPanel {
protected static final String WIDTH = "498px";
protected static final String HEIGHT = "256px";
protected static final String GRIDHEIGHT = "212px";
protected MonitorDetailPanel thisPanel;
protected Menu contextMenu;
@ -86,18 +86,11 @@ public class MonitorDetailPanel extends FramedPanel {
this.thisPanel = this;
forceLayoutOnResize = true;
init();
draw();
create();
}
protected void draw() {
if (tree != null) {
remove(tree);
}
createTreeData();
}
protected void init() {
setWidth(WIDTH);
@ -107,25 +100,16 @@ public class MonitorDetailPanel extends FramedPanel {
forceLayoutOnResize = true;
}
protected void createTreeData() {
gen = new MonitorTreeDataGenerator(operationMonitor);
create();
}
protected void create() {
con = new VerticalLayoutContainer();
//con.setScrollMode(ScrollMode.AUTO);
store = new TreeStore<MonitorBaseDto>(new KeyProvider());
MonitorFolderDto root = gen.getRoot();
for (MonitorBaseDto base : root.getChildrens()) {
store.add(base);
if (base instanceof MonitorFolderDto) {
processFolder(store, (MonitorFolderDto) base);
}
}
addChildrensToStore();
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
new ToStringValueProvider<MonitorBaseDto>("task"), 168, "Task");
cc1.setHeader("Task");
@ -175,17 +159,7 @@ public class MonitorDetailPanel extends FramedPanel {
}
}, 100, "Status");
cc2.setHeader("Status");
/*
ProgressBarCell progress = new ProgressBarCell() {
@Override
public boolean handlesSelection() {
return true;
}
};
progress.setProgressText("{0}% Complete");
progress.setWidth(140);
cc2.setCell(progress);
*/
ColumnConfig<MonitorBaseDto, Double> cc3 = new ColumnConfig<MonitorBaseDto, Double>(
new ValueProvider<MonitorBaseDto, Double>() {
@ -231,6 +205,7 @@ public class MonitorDetailPanel extends FramedPanel {
};
progress.setProgressText("{0}% Complete");
progress.setWidth(110);
cc3.setCell(progress);
@ -326,7 +301,8 @@ public class MonitorDetailPanel extends FramedPanel {
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
add(con, new MarginData(0));
tree.expandAll();
forceLayout();
}
@ -335,19 +311,31 @@ public class MonitorDetailPanel extends FramedPanel {
String key = (String) context.getKey();
@SuppressWarnings("unused")
MonitorBaseDto d = store.findModelWithKey(key);
}
}
public void update(OperationMonitor operationMonitor) {
this.operationMonitor = operationMonitor;
draw();
store.clear();
addChildrensToStore();
store.commitChanges();
tree.expandAll();
forceLayout();
}
private void addChildrensToStore() {
gen = new MonitorTreeDataGenerator(operationMonitor);
MonitorFolderDto root = gen.getRoot();
for (MonitorBaseDto base : root.getChildrens()) {
store.add(base);
if (base instanceof MonitorFolderDto) {
processFolder(store, (MonitorFolderDto) base);
}
}
}
private void processFolder(TreeStore<MonitorBaseDto> store,
MonitorFolderDto folder) {
@ -359,6 +347,4 @@ public class MonitorDetailPanel extends FramedPanel {
}
}
}

View File

@ -54,7 +54,7 @@ public class MonitorTreeDataGenerator {
root = new MonitorFolderDto("root", "-1", "root", "root", 0,
childrens);
Log.debug("Generated root");
printRecorsive(root);
//printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", 0,