@Override
    public void dispose() {
      getSelectionSynchronizer().removeViewer(getViewer());
      //			if(getGraphicalViewer().getControl() != null &&
      // !getGraphicalViewer().getControl().isDisposed())
      //				getGraphicalViewer().getControl().removeDisposeListener(disposeListener);

      super.dispose();
    }
  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.ui.part.Page#init(org.eclipse.ui.part.IPageSite)
   */
  @Override
  public void init(IPageSite pageSite) {
    super.init(pageSite);
    ActionRegistry registry = editor.getActionRegistry();
    IActionBars bars = pageSite.getActionBars();
    for (Iterator<IAction> it = registry.getActions(); it.hasNext(); ) {
      IAction ia = it.next();
      bars.setGlobalActionHandler(ia.getId(), ia);
    }

    bars.updateActionBars();
  }
    @Override
    public void init(IPageSite pageSite) {
      super.init(pageSite);

      IActionBars bars = getSite().getActionBars();
      bars.setGlobalActionHandler(
          ActionFactory.UNDO.getId(), getActionRegistry().getAction(ActionFactory.UNDO.getId()));
      bars.setGlobalActionHandler(
          ActionFactory.REDO.getId(), getActionRegistry().getAction(ActionFactory.REDO.getId()));
      bars.setGlobalActionHandler(
          ActionFactory.DELETE.getId(),
          getActionRegistry().getAction(ActionFactory.DELETE.getId()));
      bars.updateActionBars();

      getViewer().setKeyHandler(keyHandler);
    }
 /*
  * (non-Javadoc)
  *
  * @see org.eclipse.ui.part.Page#dispose()
  */
 @Override
 public void dispose() {
   unhookOutlineViewer();
   if (thumbnail != null) thumbnail = null;
   super.dispose();
 }