1 19 20 package org.netbeans.modules.versioning.system.cvss.ui.actions.log; 21 22 import org.netbeans.modules.versioning.system.cvss.CvsVersioningSystem; 23 import org.netbeans.modules.versioning.system.cvss.ExecutorSupport; 24 import org.netbeans.modules.versioning.system.cvss.ClientRuntime; 25 import org.netbeans.lib.cvsclient.command.GlobalOptions; 26 import org.netbeans.lib.cvsclient.command.annotate.AnnotateCommand; 27 import org.netbeans.lib.cvsclient.command.annotate.AnnotateInformation; 28 import org.netbeans.lib.cvsclient.command.annotate.AnnotateLine; 29 import org.netbeans.lib.cvsclient.event.FileInfoEvent; 30 31 import java.util.List ; 32 import java.util.ArrayList ; 33 import java.util.Iterator ; 34 import java.io.File ; 35 36 37 42 public class AnnotationsExecutor extends ExecutorSupport { 43 44 private final List listeners = new ArrayList (1); 45 46 public AnnotationsExecutor(CvsVersioningSystem cvs, AnnotateCommand cmd) { 47 this(cvs, cmd, null); 48 } 49 50 public AnnotationsExecutor(CvsVersioningSystem cvs, AnnotateCommand cmd, GlobalOptions options) { 51 super(cvs, cmd, options); 52 } 53 54 protected void commandFinished(ClientRuntime.Result result) { 55 } 56 57 public void fileInfoGenerated(FileInfoEvent e) { 58 AnnotateInformation ai = (AnnotateInformation) e.getInfoContainer(); 59 Iterator it = listeners.iterator(); 60 List lines = new ArrayList (100); 61 AnnotateLine al = ai.getFirstLine(); 62 if (al != null) { 63 lines.add(al); 64 while (true) { 65 al = ai.getNextLine(); 66 if (al == null) break; 67 lines.add(al); 68 } 69 File localFile = e.getInfoContainer().getFile(); 70 while (it.hasNext()) { 71 LogOutputListener listener = (LogOutputListener) it.next(); 72 listener.annotationLines(localFile, lines); 73 } 74 } 75 } 76 77 public void addLogOutputListener(LogOutputListener listener) { 78 listeners.add(listener); 79 } 80 81 protected boolean logCommandOutput() { 82 return false; 83 } 84 } 85 | Popular Tags |