Home » openjdk-7 » javax » swing » beaninfo » [javadoc | source]

    1   /*
    2   * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
    3   *
    4   * Redistribution and use in source and binary forms, with or
    5   * without modification, are permitted provided that the following
    6   * conditions are met:
    7   *
    8   * - Redistributions of source code must retain the above copyright
    9   *   notice, this list of conditions and the following disclaimer.
   10   *
   11   * - Redistribution in binary form must reproduce the above
   12   *   copyright notice, this list of conditions and the following
   13   *   disclaimer in the documentation and/or other materials
   14   *   provided with the distribution.
   15   *
   16   * Neither the name of Sun Microsystems, Inc. or the names of
   17   * contributors may be used to endorse or promote products derived
   18   * from this software without specific prior written permission.
   19   *
   20   * This software is provided "AS IS," without a warranty of any
   21   * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
   22   * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
   23   * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
   24   * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
   25   * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
   26   * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
   27   * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
   28   * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
   29   * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
   30   * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
   31   * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
   32   * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
   33   *
   34   * You acknowledge that this software is not designed, licensed or
   35   * intended for use in the design, construction, operation or
   36   * maintenance of any nuclear facility.
   37   */
   38   package javax.swing.beaninfo;
   39   
   40   import java.awt.Component;
   41   
   42   import java.awt.event.ActionEvent;
   43   import java.awt.event.ActionListener;
   44   import java.awt.event.KeyEvent;
   45   import java.awt.event.KeyAdapter;
   46   
   47   import java.beans.PropertyDescriptor;
   48   import java.beans.PropertyChangeListener;
   49   
   50   import javax.swing.BoxLayout;
   51   import javax.swing.JPanel;
   52   import javax.swing.JTextField;
   53   
   54   /**
   55    * A property editor for editing doubles.
   56    */
   57   public class SwingDoubleEditor extends SwingEditorSupport
   58   {
   59       private JTextField textfield;
   60   
   61       public void setValue(Object value)
   62       {
   63           if (value != null)  {
   64               textfield.setText(value.toString());
   65           }
   66           super.setValue(value);
   67       }
   68   
   69       /**
   70        * Initializes this property editor
   71        */
   72       public void init(PropertyDescriptor descriptor)
   73       {
   74           if (textfield == null)
   75           {
   76               textfield = new JTextField();
   77               textfield.setDocument(new FloatNumberDocument());
   78               // disable editing if its a readonly property
   79               if( descriptor.getWriteMethod() == null ) textfield.setEditable( false );
   80               textfield.addActionListener(new ActionListener()
   81               {
   82                   public void actionPerformed(ActionEvent e)
   83                   {
   84                       String text = textfield.getText();
   85                       if( text.length() == 0 ) text = "0";
   86                       setValue(new Double(text));
   87                   }
   88               });
   89   
   90               panel = new JPanel();
   91               panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
   92               panel.add(textfield);
   93           }
   94   
   95       }
   96   }

Home » openjdk-7 » javax » swing » beaninfo » [javadoc | source]