我的问题是,有一个插件可以生成我需要的数据。有没有办法访问这些数据?
喜欢获取对视图的引用或其他内容。我有插件的来源,但编译我自己不是一个选项。我已经尝试获取类(loadClass(xx)),但只是抛出classnotfound。
我认为可能会使用扩展点吗?虽然它没有用,因为插件没有提供(或者我完全误解了Eclipse)。
答案 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();