Revision 30846ae3
Added by Katja Luther about 7 years ago
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java | ||
---|---|---|
20 | 20 |
import org.eclipse.core.runtime.IProgressMonitor; |
21 | 21 |
import org.eclipse.core.runtime.IStatus; |
22 | 22 |
import org.eclipse.core.runtime.Status; |
23 |
import org.eclipse.core.runtime.jobs.IJobChangeEvent; |
|
24 |
import org.eclipse.core.runtime.jobs.IJobChangeListener; |
|
23 | 25 |
import org.eclipse.core.runtime.jobs.Job; |
26 |
import org.eclipse.core.runtime.jobs.JobChangeAdapter; |
|
24 | 27 |
import org.eclipse.jface.action.MenuManager; |
25 | 28 |
import org.eclipse.jface.viewers.CellEditor; |
26 | 29 |
import org.eclipse.jface.viewers.ICellModifier; |
... | ... | |
192 | 195 |
@Override |
193 | 196 |
protected IStatus run(IProgressMonitor monitor) { |
194 | 197 |
monitor.beginTask("Calculating referencing objects", 100); |
195 |
|
|
198 |
actualUuid = entityUUID; |
|
199 |
System.out.println("starting job... " + entityUUID); |
|
196 | 200 |
monitor.worked(5); |
197 | 201 |
referencingObjects = new ArrayList<>(); |
198 | 202 |
if(monitor.isCanceled()) { |
203 |
actualUuid = null; |
|
199 | 204 |
return Status.CANCEL_STATUS; |
200 | 205 |
} |
201 | 206 |
if (actualMonitor != null){ |
202 | 207 |
actualMonitor.setCanceled(true); |
203 |
updateView(); |
|
208 |
|
|
204 | 209 |
} |
205 | 210 |
actualMonitor = monitor; |
206 | 211 |
if (entityUUID != null){ |
... | ... | |
209 | 214 |
referencingObjectsSet = getReferencingObjects(entityUUID, objectClass); |
210 | 215 |
|
211 | 216 |
if(monitor.isCanceled()) { |
217 |
actualUuid = null; |
|
218 |
System.err.println("Job is canceled" + entityUUID); |
|
212 | 219 |
return Status.CANCEL_STATUS; |
213 | 220 |
} |
214 | 221 |
monitor.worked(30); |
215 | 222 |
referencingObjects = sortReferencing(); |
216 | 223 |
if (referencingObjects == null){ |
217 | 224 |
if (monitor.isCanceled()){ |
225 |
actualUuid = null; |
|
226 |
System.err.println("Job is canceled" + entityUUID); |
|
218 | 227 |
return Status.CANCEL_STATUS; |
219 | 228 |
} |
220 | 229 |
} |
221 | 230 |
|
222 | 231 |
if(monitor.isCanceled()) { |
223 |
|
|
232 |
if(previousCdmEntitySession != null) { |
|
233 |
previousCdmEntitySession.bind(); |
|
234 |
} |
|
235 |
System.err.println("Job is canceled" + entityUUID); |
|
224 | 236 |
return Status.CANCEL_STATUS; |
225 | 237 |
} |
226 | 238 |
monitor.worked(80); |
... | ... | |
229 | 241 |
if(previousCdmEntitySession != null) { |
230 | 242 |
previousCdmEntitySession.bind(); |
231 | 243 |
} |
232 |
actualUuid = entityUUID; |
|
244 |
// actualUuid = entityUUID;
|
|
233 | 245 |
} |
234 | 246 |
monitor.done(); |
235 | 247 |
|
236 |
|
|
248 |
System.out.println("finishing job " + entityUUID); |
|
237 | 249 |
return Status.OK_STATUS; |
238 | 250 |
|
239 | 251 |
|
240 | 252 |
} |
241 | 253 |
}; |
242 |
//job.setUser(true);
|
|
254 |
job.setUser(true); |
|
243 | 255 |
|
244 | 256 |
job.schedule(); |
245 |
// final IJobChangeListener listener;
|
|
246 |
// listener = new JobChangeAdapter() {
|
|
247 |
// @Override
|
|
248 |
// public void done(IJobChangeEvent event) {
|
|
249 |
// System.err.println("Job is done");
|
|
250 |
// event.getJob().cancel();
|
|
251 |
// }
|
|
252 |
// |
|
253 |
// };
|
|
254 |
// job.addJobChangeListener(listener);
|
|
257 |
final IJobChangeListener listener; |
|
258 |
listener = new JobChangeAdapter() { |
|
259 |
@Override |
|
260 |
public void done(IJobChangeEvent event) { |
|
261 |
System.err.println("Job is done" + entityUUID);
|
|
262 |
//event.getJob().cancel();
|
|
263 |
} |
|
264 |
|
|
265 |
}; |
|
266 |
job.addJobChangeListener(listener); |
|
255 | 267 |
|
256 | 268 |
|
257 | 269 |
|
... | ... | |
399 | 411 |
|
400 | 412 |
if(selection instanceof IStructuredSelection){ |
401 | 413 |
referencedObjectTitleCache = null; |
402 |
showViewer(part, (IStructuredSelection) selection);
|
|
414 |
showViewer(part, (IStructuredSelection) selection);
|
|
403 | 415 |
} |
404 | 416 |
} |
405 | 417 |
|
... | ... | |
414 | 426 |
} |
415 | 427 |
if(firstElement instanceof CdmBase){ |
416 | 428 |
CdmBase referencedCdmObject = (CdmBase) firstElement; |
429 |
if (referencedCdmObject.getUuid() == actualUuid){ |
|
430 |
return; |
|
431 |
} |
|
417 | 432 |
if (referencedCdmObject != null){ |
418 | 433 |
if(referencedCdmObject.isInstanceOf(IdentifiableEntity.class)){ |
419 | 434 |
referencedObjectTitleCache = (HibernateProxyHelper.deproxy(referencedCdmObject, IdentifiableEntity.class)).getTitleCache(); |
... | ... | |
430 | 445 |
updateReferencingObjects(referencedCdmObject.getUuid(),firstElement.getClass() ); |
431 | 446 |
|
432 | 447 |
} |
433 |
else{ |
|
448 |
else if (firstElement != null){
|
|
434 | 449 |
updateView(); |
435 | 450 |
setContentDescription(""); |
436 | 451 |
} |
Also available in: Unified diff
ref #5691: minor