1
我的問題是,有一個插件可以生成我需要的數據。有沒有辦法訪問這些數據?訪問其他Eclipse插件中的數據
就像獲得對視圖的引用或其他東西。我有插件的來源,但編譯我自己不是一個選項。我試着得到類(loadClass(xx)),但只是拋出classnotfound。
我知道擴展點可能用於這個想法嗎?雖然它沒有幫助,因爲插件沒有提供(或者我完全誤解了Eclipse)。
我的問題是,有一個插件可以生成我需要的數據。有沒有辦法訪問這些數據?訪問其他Eclipse插件中的數據
就像獲得對視圖的引用或其他東西。我有插件的來源,但編譯我自己不是一個選項。我試着得到類(loadClass(xx)),但只是拋出classnotfound。
我知道擴展點可能用於這個想法嗎?雖然它沒有幫助,因爲插件沒有提供(或者我完全誤解了Eclipse)。
我做了一種破解,以獲取未使用反射曝光的信息。下面的例子是爲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();
我的問題是更專注於實際獲取視圖的實例。但事實證明,我的方法確實奏效,觀點尚未加載。但是,這仍然是探究你不應該在哪裏的好方法:p – Guu 2011-03-29 09:52:37