001    /*
002     * LAPIS lightweight structured text processing system
003     *
004     * Copyright (C) 1998-2002 Carnegie Mellon University,
005     * Copyright (C) 2003 Massachusetts Institute of Technology.
006     * All rights reserved.
007     *
008     * This library is free software; you can redistribute it
009     * and/or modify it under the terms of the GNU General
010     * Public License as published by the Free Software
011     * Foundation, version 2.
012     *
013     * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/
014     */
015    
016    package lapisx.progress;
017    
018    public class ProgressEvent extends java.util.EventObject {
019        String label = "";
020        int minimum = 0;
021        int maximum = 100;
022        int value = 0;
023    
024        public ProgressEvent (Object source) {
025            super (source);
026        }
027    
028        public String getLabel () {
029            return label;
030        }
031        public void setLabel (String lbl) {
032            label = lbl;
033        }    
034    
035        public int getMinimum () {
036            return minimum;
037        }
038        public void setMinimum (int min) {
039            minimum = min;
040        }
041    
042        public int getMaximum () {
043            return maximum;
044        }
045        public void setMaximum (int max) {
046            maximum = max;
047        }
048    
049        public int getValue () {
050            return value;
051        }
052        public void setValue (int val) {
053            value = val;
054            if (value < minimum)
055                value = minimum;
056            if (value > maximum)
057                value = maximum;
058        }
059    
060        public double getPercentComplete () {
061            return ((double) (value - minimum)) / (maximum - minimum);
062        }
063    
064        public void setPercentComplete (double pct) {
065            value = (int) (pct * (maximum - minimum) + minimum);
066            if (value < minimum)
067                value = minimum;
068            if (value > maximum)
069                value = maximum;
070        }
071    }