2015-05-25 1 views
0

Я создаю TableViewer, который должен отвечать на выбор в других компонентах.Как избежать запуска TableViewer при закрытии в Eclipse

Я делаю некоторые действия в реализованном методе selectionChanged.

@Override 
public void selectionChanged(IWorkbenchPart part, ISelection selection) { 
} 

Я хочу, чтобы избежать запуска операции в selectionChanged методе, когда я закрываю вид.

Я попытался проверить принятую часть:

if(part.getSite().getId()!="myviewid") 
{ 
} 

Но я всегда получаю часть предыдущего выбора (в моем случае ResourceNavigator).

Как я могу проверить, выбрал ли я свое мнение и не выполнял некоторые операции?

ответ

1

Вы должны удалить выбор слушателя из сервиса выбора, когда ваша точка зрения часть расположена

@Override 
public void dispose() 
{ 
    ISelectionService service = (ISelectionService)getSite().getService(ISelectionService.class); 

    service.removeSelectionListener(myListener); 

    super.dispose(); 
} 
+0

я делаю уже, используя getViewSite() GetPage() removeSelectionListener (это)..; –