KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > versioning > system > cvss > ui > actions > log > AnnotationsExecutor


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

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 JavaDoc;
32 import java.util.ArrayList JavaDoc;
33 import java.util.Iterator JavaDoc;
34 import java.io.File JavaDoc;
35
36
37 /**
38  * Executes a given 'annotate' command.
39  *
40  * @author Petr Kuzel
41  */

42 public class AnnotationsExecutor extends ExecutorSupport {
43
44     private final List JavaDoc listeners = new ArrayList JavaDoc(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 JavaDoc it = listeners.iterator();
60         List JavaDoc lines = new ArrayList JavaDoc(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 JavaDoc 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