001 /* 002 * $Id: ProgressEvent.java,v 1.2 2005/10/10 18:03:07 rbair Exp $ 003 * 004 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, 005 * Santa Clara, California 95054, U.S.A. All rights reserved. 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this library; if not, write to the Free Software 019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 020 */ 021 022 package org.jdesktop.swingx.event; 023 024 /** 025 * A MessageEvent that represents the cycle of a long running operation. 026 * Use the constructors to indicate the stage of the operation. 027 * 028 * @author Mark Davidson 029 */ 030 public class ProgressEvent extends MessageEvent { 031 032 private int minimum; 033 private int maximum; 034 private int progress; 035 036 private boolean indeterminate = true; 037 038 /** 039 * Constructs an indeterminate progress event. 040 */ 041 public ProgressEvent(Object source) { 042 super(source); 043 } 044 045 /** 046 * Constructs a progress event used to indicate an increment of progress. 047 * 048 * @param source the object which orignated the event 049 * @param progress the value between min and max which indicates 050 * the progression of the operation. 051 */ 052 public ProgressEvent(Object source, int progress) { 053 super(source); 054 this.progress = progress; 055 setIndeterminate(false); 056 } 057 058 /** 059 * Constructs a ProgressEvent which indicates the beginning of a long operation. 060 * For a determinite progress operation, the minimum value should be less than 061 * the maximum value. For indterminate operations, set minimum equal to maximum. 062 * 063 * @param source the object which orignated the event 064 * @param min the minimum value of the progress operation 065 * @param max the maximum value of the progress operation 066 */ 067 public ProgressEvent(Object source, int min, int max) { 068 super(source); 069 setMaximum(max); 070 setMinimum(min); 071 setIndeterminate(max == min); 072 } 073 074 private void setMaximum(int max) { 075 this.maximum = max; 076 } 077 078 public int getMaximum() { 079 return maximum; 080 } 081 082 private void setMinimum(int min) { 083 this.minimum = min; 084 } 085 086 public int getMinimum() { 087 return minimum; 088 } 089 090 private void setIndeterminate(boolean indeterminate) { 091 this.indeterminate = indeterminate; 092 } 093 094 public boolean isIndeterminate() { 095 return indeterminate; 096 } 097 098 public int getProgress() { 099 return progress; 100 } 101 }