/*
 * 1.1+Swing version.
 */

import javax.swing.*;
import javax.swing.event.*;

/** 
 * Based on the source code for DefaultBoundedRangeModel,
 * this class stores its value as a double, rather than 
 * an int.  The minimum value and extent are always 0.
 **/
public class _32 implements BoundedRangeModel {
    protected ChangeEvent _33 = null;
    protected EventListenerList _34 = new EventListenerList();

    protected int _35 = 10000;
    protected int _36 = 0;
    protected int _37 = 0;
    protected double _38 = 0.0;
    protected double _39 = 1.0;
    protected boolean _40 = false;
    final static boolean _41 = false;

    public _32() {}

    public double _42() {
        if (_41) {
            System.out.println("In ConverterRangeModel getMultiplier");
        }
        return _39;
    }

    public void _43(double _44) {
        if (_41) {
            System.out.println("In ConverterRangeModel setMultiplier");
        }
        this._39 = _44;
        _67();
    }

    public int getMaximum() {
        if (_41) {
            System.out.println("In ConverterRangeModel getMaximum");
        }
        return _35;
    }

    public void setMaximum(int _45) {
        if (_41) {
            System.out.println("In ConverterRangeModel setMaximum");
        }
        _58(_38, _37, _36, _45, _40);
    }

    public int getMinimum() {
        return (int)_36;
    }

    public void setMinimum(int _46) {
        System.out.println("In ConverterRangeModel setMinimum");
        //Do nothing.
    }

    public int getValue() {
        if (_41) {
            System.out.println("In ConverterRangeModel getValue");
        }
        return (int)_48();
    }

    public void setValue(int _47) {
        if (_41) {
            System.out.println("In ConverterRangeModel setValue");
        }
        _49((double)_47);
    }

    public double _48() {
        if (_41) {
            System.out.println("In ConverterRangeModel getDoubleValue");
        }
        return _38;
    }

    public void _49(double _50) {
        if (_41) {
            System.out.println("In ConverterRangeModel setDoubleValue");
        }
        _58(_50, _37, _36, _35, _40);
    }

    public int getExtent() {
        return (int)_37;
    }

    public void setExtent(int _51) {}
        //Do nothing.

    public boolean getValueIsAdjusting() {
        return _40;
    }

    public void setValueIsAdjusting(boolean _52) {
        _58(_38, _37, _36, _35, _52);
    }

    public void setRangeProperties(int _53,
                                   int _54,
                                   int _55,
                                   int _56,
                                   boolean _57) {
        System.out.println("In ConverterRangeModel setRangeProperties");
        _58((double)_53, _54, _55, _56, _57);
    }

    public void _58(double _59,
                                   int _60,
                                   int _61,
                                   int _62,
                                   boolean _63) {
        if (_41) {
            System.out.println("setRangeProperties(): "
                                + "newValue = " + _59
                                + "; newMax = " + _62);
        }
        if (_62 <= _36) {
            _62 = _36 + 1;
            if (_41) {
                System.out.println("maximum raised by 1 to " + _62);
            }
        }
        if (Math.round(_59) > _62) { //allow some rounding error
            _59 = _62;
            if (_41) {
                System.out.println("value lowered to " + _62);
            }
        }

        boolean _64 = false;
        if (_59 != _38) {
            if (_41) {
                System.out.println("value set to " + _59);
            }
            _38 = _59;
            _64 = true;
        }
        if (_62 != _35) {
            if (_41) {
                System.out.println("maximum set to " + _62);
            }
            _35 = _62;
            _64 = true;
        }
        if (_63 != _40) {
            _35 = _62;
            _40 = _63;
            _64 = true;
        }

        if (_64) {
            _67();
        }
    }

    /* 
     * The rest of this is event handling code copied from 
     * DefaultBoundedRangeModel. 
     */
    public void addChangeListener(ChangeListener _65) {
        _34.add(ChangeListener.class, _65);
    }

    public void removeChangeListener(ChangeListener _66) {
        _34.remove(ChangeListener.class, _66);
    }

    protected void _67() {
        Object[] _68 = _34.getListenerList();
        for (int _69 = _68.length - 2; _69 >= 0; _69 -= 2) {
            if (_68[_69] == ChangeListener.class) {
                if (_33 == null) {
                    _33 = new ChangeEvent(this);
                }
                ((ChangeListener)_68[_69 + 1]).stateChanged(_33);
            }
        }
    }
}