访问其他Eclipse插件中的数据

时间:2011-03-24 14:27:43

标签: eclipse eclipse-plugin

我的问题是,有一个插件可以生成我需要的数据。有没有办法访问这些数据?

喜欢获取对视图的引用或其他内容。我有插件的来源,但编译我自己不是一个选项。我已经尝试获取类(loadClass(xx)),但只是抛出classnotfound。

我认为可能会使用扩展点吗?虽然它没有用,因为插件没有提供(或者我完全误解了Eclipse)。

1 个答案:

答案 0 :(得分:1)

我做了一些黑客攻击,以获取未使用反射曝光的信息。以下示例适用于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();