/**
  * Creates new content provider for dialog.
  *
  * @param viewer Tree viewer.
  */
 public CContentOutlinerProvider(TreeViewer viewer, IWorkbenchPartSite site) {
   super(true, true);
   treeViewer = viewer;
   final IPreferenceStore store = PreferenceConstants.getPreferenceStore();
   setIncludesGrouping(store.getBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES));
   setNamespacesGrouping(store.getBoolean(PreferenceConstants.OUTLINE_GROUP_NAMESPACES));
   setMemberGrouping(store.getBoolean(PreferenceConstants.OUTLINE_GROUP_MEMBERS));
   setMacroGrouping(store.getBoolean(PreferenceConstants.OUTLINE_GROUP_MACROS));
 }
 /** @see org.eclipse.jface.viewers.IContentProvider#dispose() */
 @Override
 public void dispose() {
   super.dispose();
   if (fListener != null) {
     CoreModel.getDefault().removeElementChangedListener(fListener);
     fListener = null;
   }
   if (fPropertyListener != null) {
     PreferenceConstants.getPreferenceStore().removePropertyChangeListener(fPropertyListener);
     fPropertyListener = null;
   }
 }
  /*
   * @see org.eclipse.cdt.internal.ui.BaseCElementContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
   */
  @Override
  public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
    boolean isTU = newInput instanceof ITranslationUnit;

    if (isTU) {
      root = (ITranslationUnit) newInput;
      if (fListener == null) {
        fListener = new ElementChangedListener();
        CoreModel.getDefault().addElementChangedListener(fListener);
        fPropertyListener = new PropertyListener();
        PreferenceConstants.getPreferenceStore().addPropertyChangeListener(fPropertyListener);
      }
    } else {
      if (fListener != null) {
        CoreModel.getDefault().removeElementChangedListener(fListener);
        PreferenceConstants.getPreferenceStore().removePropertyChangeListener(fPropertyListener);
        fListener = null;
        fPropertyListener = null;
      }
      root = null;
    }
  }
 public AbstractPreferencePage() {
   super();
   setPreferenceStore(PreferenceConstants.getPreferenceStore());
   fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), createOverlayStoreKeys());
 }