/*
* $Id$
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.jdesktop.swingx.event;
/**
* A MessageEvent that represents the cycle of a long running operation.
* Use the constructors to indicate the stage of the operation.
*
* @author Mark Davidson
*/
public class ProgressEvent extends MessageEvent {
private int minimum;
private int maximum;
private int progress;
private boolean indeterminate = true;
/**
* Constructs an indeterminate progress event.
*/
public ProgressEvent(Object source) {
super(source);
}
/**
* Constructs a progress event used to indicate an increment of progress.
*
* @param source the object which orignated the event
* @param progress the value between min and max which indicates
* the progression of the operation.
*/
public ProgressEvent(Object source, int progress) {
super(source);
this.progress = progress;
setIndeterminate(false);
}
/**
* Constructs a ProgressEvent which indicates the beginning of a long operation.
* For a determinite progress operation, the minimum value should be less than
* the maximum value. For indterminate operations, set minimum equal to maximum.
*
* @param source the object which orignated the event
* @param min the minimum value of the progress operation
* @param max the maximum value of the progress operation
*/
public ProgressEvent(Object source, int min, int max) {
super(source);
setMaximum(max);
setMinimum(min);
setIndeterminate(max == min);
}
private void setMaximum(int max) {
this.maximum = max;
}
public int getMaximum() {
return maximum;
}
private void setMinimum(int min) {
this.minimum = min;
}
public int getMinimum() {
return minimum;
}
private void setIndeterminate(boolean indeterminate) {
this.indeterminate = indeterminate;
}
public boolean isIndeterminate() {
return indeterminate;
}
public int getProgress() {
return progress;
}
}