2016-06-21 2 views
0

Я использую SourceViewer с ContentAssistant настроен так:Как обнаружить, если содержание помощь открыт в SourceViewer

public class MySourceViewerConfiguration extends TextSourceViewerConfiguration { 
    @Override 
    public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) { 
    ContentAssistant assistant= new ContentAssistant(); 
    ... 
    return assistant; 
    } 
} 

SourceViewer sourceViewer = ... 
sourceViewer.configure(new MySourceViewer()); 

Как я могу определить, если содержание помощь в настоящее время активен, т.е. если предложение всплывающее окно окно открыто?

ответ

0

Невозможно напрямую запросить SourceViewer, активна ли поддержка содержимого.

Однако, если прослушиватель завершения установлен достаточно рано, прежде чем ввести SourceViewer, его можно использовать для отслеживания вспомогательных сеансов ..

Например:

class ContentAssistListener implements ICompletionListener { 

    boolean contentAssistActive; 

    @Override 
    public void assistSessionStarted(ContentAssistEvent event) { 
    contentAssistActive = true; 
    } 

    @Override 
    public void assistSessionEnded(ContentAssistEvent event) { 
    contentAssistActive = false; 
    } 

    @Override 
    public void selectionChanged(ICompletionProposal proposal, boolean smartToggle) { 
    } 
} 

Поле contentAssistActive будет true если содержание помощь в настоящее время активно и false иначе.