protected void restoreState(IMemento memento) {
    if (fHasWorkingSetFilter) fWorkingSetFilterActionGroup.restoreState(memento);
    if (fHasCustomFilter) fCustomFiltersActionGroup.restoreState(memento);

    if (fHasCustomFilter || fHasWorkingSetFilter) {
      fViewer.getControl().setRedraw(false);
      fViewer.refresh();
      fViewer.getControl().setRedraw(true);
    }
  }
 /*
  * Implements method from IViewPart.
  */
 public void saveState(IMemento memento) {
   if (fViewer == null) {
     // part has not been created
     if (fMemento != null) // Keep the old state;
     memento.putMemento(fMemento);
     return;
   }
   if (fHasWorkingSetFilter) fWorkingSetFilterActionGroup.saveState(memento);
   if (fHasCustomFilter) fCustomFiltersActionGroup.saveState(memento);
   saveSelectionState(memento);
   saveLinkingEnabled(memento);
 }
  protected void fillActionBars(IActionBars actionBars) {
    IToolBarManager toolBar = actionBars.getToolBarManager();
    fillToolBar(toolBar);

    if (fHasWorkingSetFilter)
      fWorkingSetFilterActionGroup.fillActionBars(getViewSite().getActionBars());

    actionBars.updateActionBars();

    fActionGroups.fillActionBars(actionBars);

    if (fHasCustomFilter) fCustomFiltersActionGroup.fillActionBars(actionBars);

    IMenuManager menu = actionBars.getMenuManager();
    menu.add(fToggleLinkingAction);
  }