public void dispose() {
ISelectionProvider selectionProvider= fViewer.getSelectionProvider();
if (selectionProvider instanceof IPostSelectionProvider)
((IPostSelectionProvider) selectionProvider).removePostSelectionChangedListener(fSelectionChangedListener);
else
selectionProvider.removeSelectionChangedListener(fSelectionChangedListener);
fTextEditor.setAction(ITextEditorActionConstants.PASTE, fEditorOldPasteAction);
if (fContextMenu != null && !fContextMenu.isDisposed())
fContextMenu.dispose();
if (fTemplateChangeListener != null)
getTemplatePreferenceStore().removePropertyChangeListener(fTemplateChangeListener);