Skip to content

Commit

Permalink
XViewer: Handle performPreCompute errors better
Browse files Browse the repository at this point in the history
Change-Id: Ifb09f39788aae49b0fdffea05696173cbd7082c0
  • Loading branch information
donald.g.dunne committed Jul 20, 2016
1 parent ccaff06 commit 3348115
Showing 1 changed file with 37 additions and 27 deletions.
Expand Up @@ -333,48 +333,58 @@ public void refreshColumnsWithPreCompute(final Object input) {
final XViewer xViewer = this;
this.loading = true;

if (forcePend) {
performPreCompute(inputObjects);
performLoad(inputObjects, xViewer);
} else {
Job job = new Job("Refreshing Columns") {

@Override
protected IStatus run(IProgressMonitor monitor) {
performPreCompute(inputObjects);
return Status.OK_STATUS;
}
if (!inputObjects.isEmpty()) {
if (forcePend) {
performPreCompute(inputObjects);
performLoad(inputObjects, xViewer);
} else {
Job job = new Job("Refreshing Columns") {

@Override
protected IStatus run(IProgressMonitor monitor) {
performPreCompute(inputObjects);
return Status.OK_STATUS;
}

};
job.setSystem(false);
job.addJobChangeListener(new JobChangeAdapter() {
};
job.setSystem(false);
job.addJobChangeListener(new JobChangeAdapter() {

@Override
public void done(IJobChangeEvent event) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void done(IJobChangeEvent event) {
Display.getDefault().asyncExec(new Runnable() {

@Override
public void run() {
performLoad(input, xViewer);
}
@Override
public void run() {
performLoad(input, xViewer);
}

});
}
});
job.schedule();
});
}
});
job.schedule();
}
}
}

private void performPreCompute(final List<Object> inputObjects) {
for (XViewerColumn column : getCustomizeMgr().getCurrentVisibleTableColumns()) {
List<XViewerColumn> currentVisibleTableColumns = getCustomizeMgr().getCurrentVisibleTableColumns();
for (XViewerColumn column : currentVisibleTableColumns) {
if (column instanceof IXViewerPreComputedColumn) {
IXViewerPreComputedColumn preComputedColumn = (IXViewerPreComputedColumn) column;
if (column.getPreComputedValueMap() == null) {
column.setPreComputedValueMap(new HashMap<Long, String>(inputObjects.size()));
} else {
column.getPreComputedValueMap().clear();
}
preComputedColumn.populateCachedValues(inputObjects, column.getPreComputedValueMap());
if (!inputObjects.isEmpty()) {
try {
preComputedColumn.populateCachedValues(inputObjects, column.getPreComputedValueMap());
} catch (Exception ex) {
XViewerLog.log(Activator.class, Level.SEVERE,
String.format("Error performing pre-compute for column %s", column), ex);
}
}
}
}
}
Expand Down

0 comments on commit 3348115

Please sign in to comment.