Как запустить класс каждый раз, когда страница редактора получает фокус на Eclipse? - PullRequest
3 голосов
/ 28 ноября 2010

Есть ли способ запускать класс каждый раз, когда страница редактора получает фокус, что-то вроде сообщения с подсказкой, когда источник класса изменился за пределами затмения?Может ли плагин редактор или расширение сделать эту работу?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2010

FAQ " Как узнать, какой вид или редактор выбран? " может помочь вам позвонить в ваш класс, когда редактор активен (то есть, когда вы можете проверить, есть ли у него фокус), с использованием IPartService:

В службу обработки деталей могут быть добавлены два типа слушателей:

Вы всегда должны использовать этот второй, поскольку он может обрабатывать события смены деталей на деталях, которые еще не были созданы, поскольку они скрыты в стеке за другой деталью .
Этот слушатель также сообщит вам, когда деталь становится видимой или скрытой или когда изменяется ввод редактора:

IWorkbenchPage page = ...;
   //the active part
   IWorkbenchPart active = page.getActivePart();
   //adding a listener
   IPartListener2 pl = new IPartListener2() {
      public void partActivated(IWorkbenchPartReference ref)
         System.out.println("Active: "+ref.getTitle());
      }
      ... other listener methods ...
   };
   page.addPartListener(pl);

Примечание: IWorkbenchPageреализует IPartService напрямую.
Вы также можете получить доступ к услуге активации с помощью , используя IWorkbenchWindow.getPartService().

0 голосов
/ 21 января 2017

Я щелкаю по Панели инструментов или Кнопке, чтобы получить представление о том, какой вид или редактор в данный момент работают с RCP eclipse

//class:Current_Workbech  extends AbstractHandler to execute() method

public class Current_Workbech  extends AbstractHandler{

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        IPartService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();

        //MessageDialog box open to get title which view or editor focus and current working

        MessageDialog.openInformation(HandlerUtil.getActiveWorkbenchWindow(
                event).getShell(), "Current Workbench Window", service.getActivePart().getTitle()+"");

        return null;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...