我对开发 Eclipse 插件非常陌生。我现在面临的最大障碍是在哪里/如何从各种其他插件获取数据。我真的很难找到这方面的文档。例如 Team Provider 插件......
- 如何读取文件的 svn 修订版本?假设我有一个 IResourceChangeListener,并且我想跟踪文件的 svn 修订号(例如,如果用户进行了更新)。
- 如果我想询问 svn 项目是否有待更新,我该如何与 Eclipse 团队提供商联系?
我不知道从哪里开始......
谢谢!
最佳答案
经过几个小时的搜索,我最终找到了我要找的东西。不幸的是,因为我的代表数还不到 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。如果有一个很好的资源来查找此类信息,那就太好了。
子剪辑版本:
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);
}
关于Eclipse 插件开发 - 从团队提供商获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016564/