if (this != fCurrentJob) {
if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } calculateASTandInform(selection, monitor); if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } else {
		public void fireSelectionChanged(final ITextSelection selection) {			if (fCurrentJob != null) {				fCurrentJob.cancel();				fCurrentJob= null;			}						fCurrentJob= new Job(JavaUIMessages.getString("SelectionListenerWithASTManager.job.title")) { //$NON-NLS-1$				public IStatus run(IProgressMonitor monitor) {					synchronized (PartListenerGroup.this) {						if (this != fCurrentJob) {							return Status.OK_STATUS;						}						calculateASTandInform(selection);						return Status.OK_STATUS;					}				}			};			fCurrentJob.setPriority(Job.DECORATE);			fCurrentJob.schedule();		}