Извините, но, к сожалению, Subclipse не был закодирован таким образом, чтобы обеспечить доступ к внутренним компонентам.Subclipse создает новый объект ISVNClientAdapter для каждого вызова API, который необходимо выполнить в Subversion, и добавляет ISVNNotifyListener к этому объекту на лету по мере необходимости.Таким образом, у вас нет возможности вставить свой собственный прослушиватель.
Возможно, вы могли бы написать класс, который реализует IConsoleListener и заставить его действовать в качестве прокси для класса Subclipse.Затем вы можете вызвать SVNProviderPlugin.getConsoleListener, чтобы получить текущий консольный слушатель и сохранить ссылку на него в вашем классе.Затем вызовите SVNProviderPlugin.setConsoleListener, чтобы заменить класс в Subclipse вашим классом.Поскольку события запускаются в вашем классе, вы можете просто переслать их в класс Subclipse и делать все, что вы хотите с событиями в вашем коде.Как то так:
import java.io.File;
import org.tigris.subversion.subclipse.core.client.IConsoleListener;
import org.tigris.subversion.svnclientadapter.SVNNodeKind;
public class ProxyListener implements IConsoleListener {
private IConsoleListener subclipseListener;
public ProxyListener(IConsoleListener subclipseListener) {
super();
this.subclipseListener = subclipseListener;
}
public void setCommand(int command) {
subclipseListener.setCommand(command);
// TODO add your code
}
public void logCommandLine(String commandLine) {
subclipseListener.logCommandLine(commandLine);
// TODO add your code
}
public void logMessage(String message) {
subclipseListener.logMessage(message);
// TODO add your code
}
public void logError(String message) {
subclipseListener.logError(message);
// TODO add your code
}
public void logRevision(long revision, String path) {
subclipseListener.logRevision(revision , path);
// TODO add your code
}
public void logCompleted(String message) {
subclipseListener.logCompleted(message);
// TODO add your code
}
public void onNotify(File path, SVNNodeKind kind) {
subclipseListener.onNotify(path, kind);
// TODO add your code
}
}