import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ICellModifier;
return ;
}
showEmptyPage();
- if(currentJob!=null){
- boolean success = false;
- //wait for cancel to be done
- while(!success){
- success = currentJob.cancel();
+ if(actualMonitor!=null && !actualMonitor.isCanceled()){
+// boolean success = false;
+// //wait for cancel to be done
+// while(!success){
+// success = currentJob.cancel();
+// }
+// currentJob = null;
+ while(!actualMonitor.isCanceled()){
+ actualMonitor.setCanceled(true);
}
- currentJob = null;
+
}
currentJob = new Job("Update Referencing Objects " + entityUUID) {
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Calculating referencing objects", 100);
actualUuid = entityUUID;
- System.out.println("starting job... " + entityUUID);
+
monitor.worked(5);
referencingObjects = new ArrayList<>();
if(monitor.isCanceled()) {
if(monitor.isCanceled()) {
actualUuid = null;
- System.err.println("Job is canceled" + entityUUID);
+
return Status.CANCEL_STATUS;
}
monitor.worked(30);
if (referencingObjects == null){
if (monitor.isCanceled()){
actualUuid = null;
- System.err.println("Job is canceled" + entityUUID);
+
return Status.CANCEL_STATUS;
}
}
if(previousCdmEntitySession != null) {
previousCdmEntitySession.bind();
}
- System.err.println("Job is canceled" + entityUUID);
+
return Status.CANCEL_STATUS;
}
monitor.worked(80);
}
monitor.done();
- System.out.println("finishing job " + entityUUID);
+
return Status.OK_STATUS;
currentJob.setUser(true);
currentJob.schedule();
- final IJobChangeListener listener;
- listener = new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- System.err.println("Job is done" + entityUUID);
- //event.getJob().cancel();
- }
-
- };
- currentJob.addJobChangeListener(listener);
+// final IJobChangeListener listener;
+// listener = new JobChangeAdapter() {
+// @Override
+// public void done(IJobChangeEvent event) {
+// System.err.println("Job is done" + entityUUID);
+// //event.getJob().cancel();
+// }
+//
+// };
+// currentJob.addJobChangeListener(listener);
} catch (Exception e) {
logger.error("Error retrieving referencing objects", e);
e.printStackTrace();
- setContentDescription("The referencing objects view could not be loaded completely. Some Problems occured.");
+ updateDescription("The referencing objects view could not be loaded completely. Some Problems occured.");
}
return null;
}
}catch(Exception e){
e.printStackTrace();
- setContentDescription("The referencing objects view could not be loaded completely. Some Problems occured.");
+ updateDescription("The referencing objects view could not be loaded completely. Some Problems occured.");
}
}
}
- private void updateDescription(){
+ private void updateDescription(final String description){
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if (referencedObjectTitleCache != null){
- setContentDescription("'" + referencedObjectTitleCache + "' is referenced by:");
+ setContentDescription(description);
} else {
- setContentDescription("");
+ setContentDescription(description);
}
}
referencedObjectTitleCache = null;
}
}
- updateDescription();
+ if (referencedObjectTitleCache != null){
+ updateDescription("'" + referencedObjectTitleCache + "' is referenced by:");
+ } else{
+ updateDescription("");
+ }
+
updateReferencingObjects(referencedCdmObject.getUuid(),firstElement.getClass() );
}
else if (firstElement != null){
updateView();
- setContentDescription("");
+ updateDescription("");
}
}