001    /*
002     * $Id: AbstractMultiThumbModel.java 3259 2009-02-17 21:06:19Z kschaefe $
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.multislider;
023    
024    import java.util.ArrayList;
025    import java.util.List;
026    
027    /**
028     *
029     * @author jm158417
030     */
031    public abstract class AbstractMultiThumbModel<E> implements MultiThumbModel<E> {
032        /** Creates a new instance of AbstractMultiThumbModel */
033        public AbstractMultiThumbModel() {
034        }
035        
036        protected float maximumValue = 1.0f;
037        protected float minimumValue = 0.0f;
038        
039        public float getMaximumValue()    {
040            return maximumValue;
041        }
042        
043        public float getMinimumValue()    {
044            return minimumValue;
045        }
046        
047        public void setMaximumValue(float maximumValue) {
048            this.maximumValue = maximumValue;
049        }
050        
051        public void setMinimumValue(float minimumValue) {
052            this.minimumValue = minimumValue;
053        }
054        
055        protected List<ThumbDataListener> thumbDataListeners = new ArrayList<ThumbDataListener>();
056        
057        public void addThumbDataListener(ThumbDataListener listener) {
058            thumbDataListeners.add(listener);
059        }
060        
061        public void removeThumbDataListener(ThumbDataListener listener) {
062            thumbDataListeners.remove(listener);
063        }
064        
065        
066        
067        public void thumbPositionChanged(Thumb<E> thumb) {
068            fireThumbPositionChanged(thumb);
069        }
070        
071        protected void fireThumbPositionChanged(Thumb<E> thumb) {
072            if(getThumbIndex(thumb) >= 0) {
073                ThumbDataEvent evt = new ThumbDataEvent(this,-1,getThumbIndex(thumb),thumb);
074                for(ThumbDataListener l : thumbDataListeners) {
075                    l.positionChanged(evt);
076                }
077            }
078        }
079        public void thumbValueChanged(Thumb<E> thumb) {
080            fireThumbValueChanged(thumb);
081        }
082        
083        protected void fireThumbValueChanged(Thumb<E> thumb) {
084            ThumbDataEvent evt = new ThumbDataEvent(this,-1,getThumbIndex(thumb),thumb);
085            for(ThumbDataListener l : thumbDataListeners) {
086                l.valueChanged(evt);
087            }
088        }
089        
090    }
091