001 package org.springframework.richclient.form.binding.swing; 002 003 import org.springframework.richclient.form.binding.support.AbstractBinder; 004 import org.springframework.richclient.form.binding.Binding; 005 import org.springframework.binding.form.FormModel; 006 007 import javax.swing.*; 008 import java.util.Map; 009 010 @SuppressWarnings("unchecked") 011 public class SpinnerBinder extends AbstractBinder 012 { 013 private Comparable minimum = null; 014 private Comparable maximum = null; 015 private Number currentValue = new Integer(0); 016 private Number stepValue = new Integer(1); 017 018 public SpinnerBinder() 019 { 020 this(Integer.class); 021 } 022 023 public SpinnerBinder(Class requiredClass) 024 { 025 super(requiredClass); 026 } 027 028 public void setMinimum(Comparable minimum) 029 { 030 this.minimum = minimum; 031 } 032 033 public void setMaximum(Comparable maximum) 034 { 035 this.maximum = maximum; 036 } 037 038 public void setCurrentValue(Number currentValue) 039 { 040 this.currentValue = currentValue; 041 } 042 043 public void setStepValue(Number stepValue) 044 { 045 this.stepValue = stepValue; 046 } 047 048 @Override 049 protected JComponent createControl(Map context) 050 { 051 return new JSpinner(new SpinnerNumberModel(this.currentValue, this.minimum, this.maximum, this.stepValue)); 052 } 053 054 @Override 055 protected Binding doBind(JComponent control, FormModel formModel, String formPropertyPath, Map context) 056 { 057 return new SpinnerBinding(formModel, formPropertyPath, getRequiredSourceClass(), (JSpinner) control); 058 } 059 060 }