2014-02-17 3 views
4

У меня есть приложение eclipse rcp, в котором я создал редактор, который расширяет EditorPart.переопределить действие close в редакторе eclipse

Я хочу сделать некоторые работы ресурса релиза в своем действии редактора close(), поэтому я хочу переопределить его действие close или любой метод, который только что пришел в действие, прежде чем закрыть событие.

Я пробовал dispose(), но он поздно работал над этим.

Или есть какой-либо конкретный слушатель, который прослушивает закрытие события.

я хочу иметь так:

@override 
public void close() 
{ 
    //do something resource release related task. 
} 

Update: в основном я хочу, чтобы перехватить событие закрытия для редактора.

+0

Почему «распоряжаться» слишком поздно? –

+0

@ Greg-449 В точке dispose мы не можем иметь ссылку на этот редактор, который, похоже, имеет близкое событие. – RTA

ответ

6

Вы можете использовать IPartListener для этой цели:

public class YourEditor extends EditorPart { 

@Override 
    public void init(IEditorSite site, IEditorInput input) throws PartInitException { 
getSite().getPage().addPartListener(new IPartListener() { 

      @Override 
      public void partOpened(IWorkbenchPart part) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void partDeactivated(IWorkbenchPart part) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void partClosed(IWorkbenchPart part) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void partBroughtToTop(IWorkbenchPart part) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void partActivated(IWorkbenchPart part) { 
       // TODO Auto-generated method stub 

      } 
     }); 
    } 
} 
1

Просто переопределить disposeListener().

parent.addDisposeListener(new DisposeListener() { 

    @Override 
    public void widgetDisposed(DisposeEvent e) { 
     releaseAllResource(); 

    } 
}); 
Смежные вопросы