我是开发eclipse插件的新手。我现在面临的最大障碍是在哪里/如何从各种其他插件获取数据。我很难找到这方面的文档。例如Team Provider插件....
我不知道从哪里开始...
谢谢!
答案 0 :(得分:4)
经过数小时的搜索后,我终于发现了我在寻找的东西。不幸的是,因为我的代表不到100。直到现在我一直无法发布....
我在这方面取得了一些进展。我在浏览日食源代码时偶然发现了这一点。
以下代码段监视有关启用svn的项目所发生的所有事情。如果您保存文件,更新,还原等等。任何接触文件的文件或元数据。我只打印出文件/ direcory名称及其修订号。
颠覆版
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)
有关Eclipse平台中Team API的一般信息,请查看帮助系统中的文档。
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/team.htm
(如果您正在使用Subscriber的内容,似乎在“同步支持” - >“超越基础知识”主题下提到了。)
团队包的Java文档也有帮助:
如果您正在尝试与Subclipse或Subversive团队提供商集成或以其他方式扩展,您可以更好地在他们的论坛中提出您的问题:
答案 2 :(得分:0)
一个起点是explore the sources的subversive,看看他们如何实现您所描述的功能。
eclipse.team
的来源(所有VCS插件的通用模块)are available in a Git repo。
sources for EGit,另一个VCS插件(适用于Git)也具有指导意义。