2011-08-10 19 views
4

Eclipseプラグインの開発は非常に新しいです。私が今直面している最大のハードルは、さまざまな他のプラグインからのデータをどこで入手するかです。私はこのための文書を見つけるのが本当に苦労しています。たとえば、チームプロバイダプラグイン....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のバージョン:EclipseプラットフォームでのチームのAPIに関する一般的な情報については

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

答えをありがとう!恩恵を受ける可能性のある誰かのために同等の機能を追加しました。 –

1

は、ヘルプシステムのドキュメントを確認します。トピック「応用編」> - あなたが加入者のもので作業している場合は

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

は(それは「同期サポート」の下に記載されます表示されます。)

チームパッケージ用のJavaドキュメントにも役立ちます:あなたはと統合あるいはSubclipseの又は破壊チーム・プロバイダーを拡張しようとしている場合

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

を、あなたは尋ねるより良い運を持っていること彼らのフォーラムに質問:

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

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

関連する問題