Fixed MonitorDetailPanel show

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@100822 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-10-21 15:07:35 +00:00 committed by Giancarlo Panichi
parent f87ca1acf0
commit 1ea254f2d0
4 changed files with 272 additions and 195 deletions

View File

@ -210,7 +210,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
fireRequestAborted();
}
protected void startBackground() {
// TODO Auto-generated method stub
btnOk.setEnabled(false);
@ -234,8 +233,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
}
}
public boolean isBackgroundBtnEnabled() {
if (btnBackground != null) {
return btnBackground.isEnabled();
@ -271,26 +268,38 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
@Override
public void monitorInitializing(OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
}
@Override
public void monitorUpdate(OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
}
@Override
public void monitorComplete(TRId trId, OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
Log.debug("Operation Complete return: " + trId.toString());
this.trId = trId;
btnBackground.setVisible(false);
@ -303,10 +312,14 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
@Override
public void monitorFailed(Throwable caught, String reason, String details,
OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
if (caught instanceof TDGWTSessionExpiredException) {
eventBus.fireEvent(new SessionExpiredEvent(
@ -329,9 +342,13 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
@Override
public void monitorStopped(TRId trId, String reason, String details,
OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
Log.debug("Operation Stopped: [" + trId.toString() + ", " + reason
+ ", " + details + "]");
this.trId = trId;
@ -345,18 +362,26 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
@Override
public void monitorGeneratingView(OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
}
@Override
public void monitorValidate(OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
}
@ -404,7 +429,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
}
// UI event Fire
protected void fireRequestAborted() {
for (MonitorDialogEventUIListener listener : monitorDialogEventUIListeners) {
@ -417,7 +441,6 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
listener.requestPutInBackground();
}
}
/**
@ -453,9 +476,13 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
}
public void updateOperationMonitor(OperationMonitor operationMonitor) {
try {
if (monitorDetailPanel != null) {
monitorDetailPanel.update(operationMonitor);
}
} catch (Throwable e) {
Log.debug(e.getLocalizedMessage());
}
forceLayout();
}

View File

@ -12,6 +12,7 @@ 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.MonitorValidationJobSDto;
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.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
@ -66,8 +67,6 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
protected MonitorBackgroundInfoDialog parent;
protected MonitorBackgroundInfoPanel thisPanel;
protected TRId trId;
protected VerticalLayoutContainer con;
protected ValidationsTasksMetadata validationsTasksMetadata;
@ -89,7 +88,6 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
}
}
public MonitorBackgroundInfoPanel(MonitorBackgroundInfoDialog parent,
OperationMonitor operationMonitor, EventBus eventBus) {
super();
@ -118,7 +116,6 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
addChildrensToStore();
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH,
"Task");
@ -313,7 +310,6 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
}
});
ToolBar toolBar = new ToolBar();
TextButton btnExpandAll = new TextButton();
@ -366,8 +362,8 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
//
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)));
con.add(flowButton, new VerticalLayoutData(1, 36, new Margins(5, 5, 5,
5)));
add(con, new MarginData(0));
@ -376,10 +372,6 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
}
protected void close() {
if (parent != null) {
parent.close();
@ -387,42 +379,47 @@ public class MonitorBackgroundInfoPanel extends FramedPanel {
}
private void addChildrensToStore() {
gen = new MonitorTreeDataGenerator();
try {
MonitorFolderDto root = gen.getRoot(operationMonitor);
if (root != null) {
Log.debug("root childrens " + root.getChildrens().size());
for (MonitorBaseDto base : root.getChildrens()) {
try {
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();
}
}
} else {
Log.error("Error generating the task informations");
UtilsGXT3.alert("Error", "Error generating task informations");
}
}
private void processFolder(MonitorFolderDto folder) {
for (MonitorBaseDto child : folder.getChildrens()) {
try {
store.add(folder, child);
if (child instanceof MonitorFolderDto) {
processFolder((MonitorFolderDto) child);
}
} catch (Throwable e) {
Log.error("Error adding childrens to store :"
+ e.getLocalizedMessage());
e.printStackTrace();
}
}
}
}

View File

@ -12,6 +12,7 @@ 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.MonitorValidationJobSDto;
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.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
@ -120,8 +121,8 @@ public class MonitorDetailPanel extends FramedPanel {
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<span title='"
+ SafeHtmlUtils.htmlEscape(value) + "'>" + SafeHtmlUtils.htmlEscape(value)
+ "</span>");
+ SafeHtmlUtils.htmlEscape(value) + "'>"
+ SafeHtmlUtils.htmlEscape(value) + "</span>");
}
});
@ -353,11 +354,15 @@ public class MonitorDetailPanel extends FramedPanel {
public void update(OperationMonitor operationMonitor) {
this.operationMonitor = operationMonitor;
store.clear();
store.commitChanges();
//con.remove(tree);
//con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
addChildrensToStore();
store.commitChanges();
tree.expandAll();
forceLayout();
}
@ -366,26 +371,42 @@ public class MonitorDetailPanel extends FramedPanel {
gen = new MonitorTreeDataGenerator();
MonitorFolderDto root = gen.getRootNoTask(operationMonitor);
if (root != null) {
for (MonitorBaseDto base : root.getChildrens()) {
try {
store.add(base);
if (base instanceof MonitorFolderDto) {
processFolder(store, (MonitorFolderDto) base);
}
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}
}
} else {
Log.error("Error generating the task informations");
UtilsGXT3.alert("Error", "Error generating task informations");
}
}
private void processFolder(TreeStore<MonitorBaseDto> store,
MonitorFolderDto folder) {
for (MonitorBaseDto child : folder.getChildrens()) {
try {
store.add(folder, child);
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
}
if (child instanceof MonitorFolderDto) {
processFolder(store, (MonitorFolderDto) child);
}
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}
}
}
}

View File

@ -29,102 +29,13 @@ public class MonitorTreeDataGenerator {
}
public MonitorFolderDto getRoot(OperationMonitor operationMonitor) {
root = null;
try {
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
if (operationMonitor != null && operationMonitor.getTask() != null) {
TaskS task = operationMonitor.getTask();
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
for (JobS job : task.getJobs()) {
ArrayList<MonitorBaseDto> validations = new ArrayList<MonitorBaseDto>();
for (ValidationsJobS v : job.getValidationsJobS()) {
MonitorValidationJobSDto validationDto = new MonitorValidationJobSDto(
task.getId() + "-" + job.getId() + "-" + v.getId(),
v.getWorkerState(), v.getProgress(),
v.getDescription(), v.getErrorMessage(),
v.getHumanReadableStatus(), job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(), job.getDescription(),
job.getWorkerState().toString(),
job.getHumaReadableStatus(), job.getProgress(),
validations);
jobs.add(foldJob);
}
MonitorFolderDto foldTask = new MonitorFolderDto("task",
task.getId(), operationMonitor.getOperationId().toString(),
task.getState().toString(), "", task.getProgress(),
jobs);
if(task.getStartTime()!=null){
foldTask.setStartTime(sdf.format(task.getStartTime()));
}
if(task.getEndTime()!=null){
foldTask.setEndTime(sdf.format(task.getEndTime()));
}
childrens.add(foldTask);
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
childrens);
Log.debug("Generated root");
// printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
childrens);
Log.debug("Generated root without childrens");
}
return root;
}
public MonitorFolderDto getRootNoTask(OperationMonitor operationMonitor) {
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
if (operationMonitor != null && operationMonitor.getTask() != null) {
TaskS task = operationMonitor.getTask();
for (JobS job : task.getJobs()) {
ArrayList<MonitorBaseDto> validations = new ArrayList<MonitorBaseDto>();
for (ValidationsJobS v : job.getValidationsJobS()) {
MonitorValidationJobSDto validationDto = new MonitorValidationJobSDto(
task.getId() + "-" + job.getId() + "-" + v.getId(),
v.getWorkerState(), v.getProgress(),
v.getDescription(), v.getErrorMessage(),
v.getHumanReadableStatus(), job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(), job.getDescription(),
job.getWorkerState().toString(),
job.getHumaReadableStatus(), job.getProgress(),
validations);
jobs.add(foldJob);
}
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
jobs);
Log.debug("Generated root");
// printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
jobs);
Log.debug("Generated root without childrens");
}
return root;
}
public MonitorFolderDto getRoot(
ArrayList<OperationMonitor> operationMonitorList) {
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
if (operationMonitorList != null && operationMonitorList.size() > 0) {
Log.debug("getRoot: "+operationMonitorList.size());
for (OperationMonitor operationMonitor : operationMonitorList) {
if (operationMonitor != null
&& operationMonitor.getTask() != null) {
Log.debug("getRoot: [TaskId="+operationMonitor.getTaskId()+"]");
TaskS task = operationMonitor.getTask();
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
for (JobS job : task.getJobs()) {
@ -136,45 +47,166 @@ public class MonitorTreeDataGenerator {
+ v.getId(), v.getWorkerState(),
v.getProgress(), v.getDescription(),
v.getErrorMessage(),
v.getHumanReadableStatus(),
job.getInvocation());
v.getHumanReadableStatus(), job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(),
job.getDescription(), job.getWorkerState()
.toString(),
job.getHumaReadableStatus(), job.getProgress(),
validations);
.toString(), job.getHumaReadableStatus(),
job.getProgress(), validations);
jobs.add(foldJob);
}
MonitorFolderDto foldTask = new MonitorFolderDto("task",
task.getId(), operationMonitor.getOperationId().toString(),
task.getState().toString(), "", task.getProgress(),
jobs);
task.getId(), operationMonitor.getOperationId()
.toString(), task.getState().toString(), "",
task.getProgress(), jobs);
if (task.getStartTime() != null) {
foldTask.setStartTime(sdf.format(task.getStartTime()));
}
if (task.getEndTime() != null) {
foldTask.setEndTime(sdf.format(task.getEndTime()));
}
childrens.add(foldTask);
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, childrens);
Log.debug("Generated root");
// printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, childrens);
Log.debug("Generated root without childrens");
}
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}
return root;
}
public MonitorFolderDto getRootNoTask(OperationMonitor operationMonitor) {
root = null;
try {
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
if (operationMonitor != null && operationMonitor.getTask() != null) {
TaskS task = operationMonitor.getTask();
for (JobS job : task.getJobs()) {
ArrayList<MonitorBaseDto> validations = new ArrayList<MonitorBaseDto>();
for (ValidationsJobS v : job.getValidationsJobS()) {
MonitorValidationJobSDto validationDto = new MonitorValidationJobSDto(
task.getId() + "-" + job.getId() + "-"
+ v.getId(), v.getWorkerState(),
v.getProgress(), v.getDescription(),
v.getErrorMessage(),
v.getHumanReadableStatus(), job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(),
job.getDescription(), job.getWorkerState()
.toString(), job.getHumaReadableStatus(),
job.getProgress(), validations);
jobs.add(foldJob);
}
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, jobs);
Log.debug("Generated root");
// printRecorsive(root);
} else {
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, jobs);
Log.debug("Generated root without childrens");
}
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}
return root;
}
public MonitorFolderDto getRoot(
ArrayList<OperationMonitor> operationMonitorList) {
root = null;
try {
ArrayList<MonitorBaseDto> childrens = new ArrayList<MonitorBaseDto>();
if (operationMonitorList != null && operationMonitorList.size() > 0) {
Log.debug("getRoot: " + operationMonitorList.size());
for (OperationMonitor operationMonitor : operationMonitorList) {
if (operationMonitor != null
&& operationMonitor.getTask() != null) {
Log.debug("getRoot: [TaskId="
+ operationMonitor.getTaskId() + "]");
TaskS task = operationMonitor.getTask();
ArrayList<MonitorBaseDto> jobs = new ArrayList<MonitorBaseDto>();
for (JobS job : task.getJobs()) {
ArrayList<MonitorBaseDto> validations = new ArrayList<MonitorBaseDto>();
for (ValidationsJobS v : job.getValidationsJobS()) {
MonitorValidationJobSDto validationDto = new MonitorValidationJobSDto(
task.getId() + "-" + job.getId() + "-"
+ v.getId(),
v.getWorkerState(), v.getProgress(),
v.getDescription(),
v.getErrorMessage(),
v.getHumanReadableStatus(),
job.getInvocation());
validations.add(validationDto);
}
MonitorFolderDto foldJob = new MonitorFolderDto(
"job", task.getId() + "-" + job.getId(),
job.getDescription(), job.getWorkerState()
.toString(),
job.getHumaReadableStatus(),
job.getProgress(), validations);
jobs.add(foldJob);
}
MonitorFolderDto foldTask = new MonitorFolderDto(
"task", task.getId(), operationMonitor
.getOperationId().toString(), task
.getState().toString(), "",
task.getProgress(), jobs);
if (task.getStartTime() != null) {
foldTask.setStartTime(sdf.format(task
.getStartTime()));
}
if (task.getEndTime() != null) {
foldTask.setEndTime(sdf.format(task.getEndTime()));
}
childrens.add(foldTask);
} else {
Log.debug("getRoot: operation null");
}
}
Log.debug("childrens size:" + childrens.size());
root = new MonitorFolderDto("root", "-1", "root", "root",
"", 0, childrens);
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, childrens);
Log.debug("Generated root");
} else {
root = new MonitorFolderDto("root", "-1", "root", "root",
"", 0, childrens);
root = new MonitorFolderDto("root", "-1", "root", "root", "",
0, childrens);
Log.debug("Generated root without childrens");
}
} catch (Throwable e) {
Log.error(e.getLocalizedMessage());
e.printStackTrace();
}
return root;
}