| ProgressPrinter |

    1   /*
    2    *  ProgressPrinter.java
    3    *
    4    *  Copyright (c) 1998-2001, The University of Sheffield.
    5    *
    6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    7    *  software, licenced under the GNU Library General Public License,
    8    *  Version 2, June 1991 (in the distribution as file licence.html,
    9    *  and also available at http://gate.ac.uk/gate/licence.html).
    10   *
    11   *  Valentin Tablan, 21/07/2000
    12   *
    13   *  $Id: ProgressPrinter.java,v 1.7 2001/03/06 20:11:15 valyt Exp $
    14   */
    15
    16  package gate.util;
    17
    18  import java.io.*;
    19
    20  import gate.event.*;
    21
    22
    23  /**
    24   * Class used to simulate the behaviour of a progress bar on an OutputStream.
    25   *
    26   */
    27  public class ProgressPrinter implements ProgressListener {
    28
    29    /** Debug flag
    30     */
    31    private static final boolean DEBUG = false;
    32
    33    /**
    34     * Constructor.
    35     *
    36     * @param out the stream used for output
    37     * @param numberOfSteps the number of steps until the process is over (the
    38     *     number of characters printed for a full run)
    39     */
    40    public ProgressPrinter(PrintStream out, int numberOfSteps) {
    41      this.out = out;
    42      this.numberOfSteps = numberOfSteps;
    43    }
    44
    45    /**
    46     * Constructor. Uses the default number of steps.
    47     *
    48     * @param out
    49     */
    50    public ProgressPrinter(PrintStream out) {
    51      this.out = out;
    52    }
    53
    54    public void processFinished() {
    55      for(int i = currentValue; i < numberOfSteps; i++) {
    56        out.print("#");
    57      }
    58      out.println("]");
    59      currentValue = 0;
    60      started = false;
    61    }
    62
    63    public void progressChanged(int newValue) {
    64      if(!started){
    65        out.print("[");
    66        started = true;
    67      }
    68      newValue = newValue * numberOfSteps / 100;
    69      if(newValue > currentValue){
    70        for(int i = currentValue; i < newValue; i++) {
    71          out.print("#");
    72        }
    73        currentValue = newValue;
    74      }
    75    }
    76
    77    /**    *
    78     */
    79    int currentValue = 0;
    80
    81    /**    *
    82     */
    83    int numberOfSteps = 70;
    84
    85    /**    */
    86    PrintStream out;
    87
    88    /**    */
    89    boolean started = false;
    90
    91  } // class ProgressPrinter
    92

| ProgressPrinter |