В моем плагине Eclipse у меня есть следующий код:
public class MyHandler extends AbstractHandler {
@Override
public Object execute( ExecutionEvent event ) throws ExecutionException {
ISelection sel = HandlerUtil
.getActiveWorkbenchWindowChecked( event )
.getSelectionService()
.getSelection();
if( sel instanceof TextSelection ) {
IEditorPart activeEditor = PlatformUI
.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.getActiveEditor();
IEditorInput editorInput = activeEditor.getEditorInput();
if( editorInput instanceof CompareEditorInput ) {
// here are two possible sources of the text selection, the
// left or the right side of the compare editor.
// How can I find out, which side it is from?
}
}
return null;
}
}
Здесь я обрабатываю событие выделения текста, полученное из CompareEditorInput
, то есть результат сравнения двух удаленных ревизий файла с подклипсом.
Теперь я хочу правильно обработать выделение текста. Для этого я должен знать, выделяет ли он какой-либо текст в редакторе левой стороны или в редакторе правой стороны.
Как я могу это выяснить?
РЕДАКТИРОВАТЬ 2010-04-10:
Конкретный экземпляр CompareEditorInput
- это org.tigris.subversion.subclipse.ui.compare.SVNCompareEditorInput
.