fgStore.addPropertyChangeListener(this);
	public void enter() {		// track final caret		IDocument document= fViewer.getDocument();		document.addPositionCategory(CARET_POSITION);		document.addPositionUpdater(fgUpdater);		try {			if (fFinalCaretOffset != -1)				document.addPosition(CARET_POSITION, new Position(fFinalCaretOffset));		} catch (BadLocationException e) {			openErrorDialog(fViewer.getTextWidget().getShell(), e);		} catch (BadPositionCategoryException e) {			JavaPlugin.log(e);			Assert.isTrue(false);		}		fViewer.addTextInputListener(this);						ITextViewerExtension extension= (ITextViewerExtension) fViewer;		extension.prependVerifyKeyListener(this);		StyledText text= fViewer.getTextWidget();					text.addVerifyListener(this);		text.addModifyListener(this);		text.addPaintListener(this);		text.showSelection();		fFramePosition= fManager.getFirstPosition();		if (fFramePosition == null)			leave(UNINSTALL | COMMIT | UPDATE_CARET);	}