001    // GraphLab Project: http://graphlab.sharif.edu
002    // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
003    // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/
004    package graphlab.ui.components.gpropertyeditor.editors.inplace;
005    
006    import graphlab.platform.lang.BoundedInteger;
007    import graphlab.ui.components.gpropertyeditor.EditingFinishedListener;
008    import graphlab.ui.components.gpropertyeditor.GBasicCellEditor;
009    import graphlab.ui.components.utils.LabledSlider;
010    
011    import javax.swing.*;
012    import java.awt.*;
013    
014    /**
015     * @author azin azadi
016     */
017    public class BoundedIntegerEditor implements GBasicCellEditor<BoundedInteger> {
018        private EditingFinishedListener listener;
019        private JSlider s;
020        private BoundedInteger value;
021    
022        public void setEditingFinishedListener(EditingFinishedListener listener) {
023            this.listener = listener;
024        }
025    
026        public Component getEditorComponent(BoundedInteger value) {
027            this.value = value;
028            LabledSlider labledSlider = new LabledSlider(value);
029            s = labledSlider.getSlider();
030            return labledSlider;
031        }
032    
033    
034        public void cancelEditing() {
035            listener.editingFinished(getEditorValue());
036        }
037    
038        public Object getEditorValue() {
039            value.setValue(s.getValue());
040            return value;
041        }
042    }