if (fFramePosition != null && fFramePosition != fExitPosition) target.beginCompoundChange();
	private void switchPosition(LinkedPosition pos, boolean select, boolean showProposals) {		Assert.isNotNull(pos);		if (pos.equals(fFramePosition))			return;				// mark navigation history		JavaPlugin.getActivePage().getNavigationHistory().markLocation(JavaPlugin.getActivePage().getActiveEditor());			// undo		ITextViewerExtension extension= (ITextViewerExtension) fCurrentTarget.getViewer();		IRewriteTarget target= extension.getRewriteTarget();		if (fFramePosition != null && fFramePosition != fExitPosition)			target.endCompoundChange();			redraw();		IDocument oldDoc= fFramePosition == null ? null : fFramePosition.getDocument();		IDocument newDoc= pos.getDocument();		if (fCurrentTarget.fAnnotationModel != null)			fCurrentTarget.fAnnotationModel.switchToPosition(fEnvironment, pos);		switchViewer(oldDoc, newDoc);		fFramePosition= pos;		if (fFramePosition != null && fFramePosition != fExitPosition)			target.beginCompoundChange();			if (select)			select();		if (fFramePosition == fExitPosition && !fIterator.isCycling())			leave(ILinkedListener.NONE);		else {			redraw();		}		if (showProposals)			triggerContentAssist();		if (fFramePosition != fExitPosition && fDoContextInfo)			triggerContextInfo();	}