2011-03-24 36 views
1

我的問題是,有一個插件可以生成我需要的數據。有沒有辦法訪問這些數據?訪問其他Eclipse插件中的數據

就像獲得對視圖的引用或其他東西。我有插件的來源,但編譯我自己不是一個選項。我試着得到類(loadClass(xx)),但只是拋出classnotfound。

我知道擴展點可能用於這個想法嗎?雖然它沒有幫助,因爲插件沒有提供(或者我完全誤解了Eclipse)。

回答

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(); 
+0

我的問題是更專注於實際獲取視圖的實例。但事實證明,我的方法確實奏效,觀點尚未加載。但是,這仍然是探究你不應該在哪裏的好方法:p – Guu 2011-03-29 09:52:37