2011-08-10 47 views
4

我是開發eclipse插件的新手。我現在面臨的最大障礙是在哪裏/如何從各種其他插件獲取數據。我真的很難找到這方面的文檔。例如Team Provider插件....Eclipse插件開發 - 從團隊提供者獲取信息

  1. 如何讀取文件的svn修訂版?比方說,我有一個IResourceChangeListener,並且我想跟蹤一個文件的svn修訂號(例如,如果用戶進行了更新)。
  2. 如果我想詢問svn是否有項目的未決更新,我該如何與eclipse團隊提供者交談?

我不知道從哪裏開始...

謝謝!

回答

4

我終於在經過數小時的搜索後發現了我正在尋找的東西。不幸的是,由於我的代表不足100人。我一直無法發佈到現在....

我在這方面取得了一些進展。當我通過eclipse源代碼進行灌注時,我偶然發現了這個問題。

以下代碼片段監視關於啓用svn的項目的所有內容。如果你保存一個文件,更新,恢復等任何接觸文件或元數據的文件。我只是打印出文件/直接名稱及其修訂號。

顛覆版本:

final Subscriber subscriber = UpdateSubscriber.instance(); 
subscriber.addListener(new ISubscriberChangeListener() { 
    @Override 
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) { 
     for(ISubscriberChangeEvent event : events) { 
      UpdateSyncInfo info = (UpdateSyncInfo) subscriber.getSyncInfo(event.getResource()); 

      System.out.println(event.getResource().getName()+" revision: "+uInfo.getLocalResource().getRevision()); 
     } 
    } 
}); 

真正的技巧是找出切入點,以獲得這方面的資料:UpdateSubscriber。如果有足夠的資源來找到這類信息,那將是非常好的。

Subclipse的版本:

private static final Subscriber subscriber = SVNWorkspaceSubscriber.getInstance(); 
private static final ISubscriberChangeListener subsciberListener = new ISubscriberChangeListener() { 
    @Override 
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) { 
     try { 
      for (ISubscriberChangeEvent event : events) { 
       SVNStatusSyncInfo info = (SVNStatusSyncInfo) subscriber.getSyncInfo(event.getResource()); 
       System.out.println(event.getResource().getName() + " revision: " + info.getRepositoryRevision()); 
      } 
     } catch (TeamException e) { 
     } 
    } 
}; 

@Override 
public void start(BundleContext context) throws Exception { 
    super.start(context); 

    subscriber.addListener(subsciberListener); 
} 

@Override 
public void stop(BundleContext context) throws Exception { 
    subscriber.removeListener(subsciberListener); 

    super.stop(context); 
} 
+1

+1,你是一個用這條信息返回的聖人。 – cgp

+0

感謝您的回答!爲任何可能受益的人添加subclipse等效項。 –

1

有關在Eclipse平臺團隊API的一般信息,請查看幫助系統中的文檔。

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/team.htm

(如果你與認購的東西的工作,看來人根據「同步支持」提到 - >「高級功能」主題。)

的Java文檔的包也可以幫助:

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/team/core/package-summary.html

如果你想用集成或以其他方式擴展Subclipse的顛覆或團隊提供者,你可能有更好的運氣問你在他們的論壇問題:

http://subclipse.tigris.org/ds/viewForums.do

http://www.eclipse.org/subversive/newsgroup.php