Доступ к данным в других плагинах Eclipse - PullRequest
1 голос
/ 24 марта 2011

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

Как получить ссылку на представление или что-то еще.У меня есть исходники для плагина, но я не могу собрать свои собственные.Я пытался получить класс (loadClass (xx)), но он просто выбрасывает classnotfound.

Я понял, что для этого могут использоваться точки расширения?Хотя это не помогает, так как плагин не предоставляет его (или я полностью неправильно понял Eclipse).

1 Ответ

1 голос
/ 24 марта 2011

Я сделал хак, чтобы получить информацию, которая не раскрывается с помощью отражения.пример ниже для плагина subclipse (я хотел получить зафиксированные файлы):

        Field field1 = ObjectPluginAction.class.getDeclaredField("activePart");
        field1.setAccessible(true);
        SynchronizeView synchronizeView = (SynchronizeView)field1.get(pluginAction);
        Field field2 = PageBookView.class.getDeclaredField("activeRec");
        field2.setAccessible(true);
        Object pageRec = field2.get(synchronizeView);
        Field field3 = Class.forName("org.eclipse.ui.part.PageBookView$PageRec").getDeclaredField("subActionBars");
        SubActionBars bars = (SubActionBars)field3.get(pageRec);
        Field field4 = SubActionBars.class.getDeclaredField("actionHandlers");
        field4.setAccessible(true);
        Map map = (Map)field4.get(bars);
        CommitSynchronizeAction commitAction = (CommitSynchronizeAction)map.get("org.tigris.subversion.subclipse.ui.syncViewCommit");
        CommitSynchronizeActionProxy commitActionProxy = new CommitSynchronizeActionProxy(commitAction, commitComment, revisionResolver);
        commitActionProxy.run();
        m_iCommitedResources = commitActionProxy.getResources();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...