View Javadoc

1   /*
2    * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton,
3    * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
4    *
5    * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
6    * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
7    * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
8    * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
9    * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
10   * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
11   * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
12   * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
13   * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
14   * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
15   * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
16   * OR MODIFICATIONS.
17   * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
18   * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
19   * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
20   * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
21   */
22  
23  package de.desy.acop.chart.customizer;
24  
25  import java.lang.reflect.Method;
26  import javax.swing.JRadioButton;
27  import de.desy.acop.chart.Acop;
28  
29  public class AcopJRadioButton extends JRadioButton
30  {
31    Acop acopBean;
32    String proper, fireProper;
33    public AcopJRadioButton()
34    {
35      super();
36    }
37    public void setAcopBean(Acop Bean)
38    {
39      acopBean = Bean;
40      try
41      {
42        Method m = acopBean.getClass().getMethod("is" + proper, null);
43        this.setSelected((Boolean) m.invoke(acopBean, null));
44      }
45      catch (Exception ex)
46      {
47        ex.printStackTrace();
48      }
49    }
50    public AcopJRadioButton(String text, String property, String fireProperty)
51    {
52      super();
53      proper = property;
54      fireProper = fireProperty;
55      setText(text);
56      setSelected(false);
57      this.addItemListener(new java.awt.event.ItemListener()
58      {
59        public void itemStateChanged(java.awt.event.ItemEvent e)
60        {
61          if (acopBean != null)
62          {
63            try
64            {
65              Method m = acopBean.getClass().getMethod("set" + proper, boolean.class);
66              boolean soll = e.getStateChange() == e.SELECTED ? true : false;
67              m.invoke(acopBean, soll);
68  //            System.out.println("set property: " + fireProper + "   value: " + soll); // TODO
69                                                                                        // Auto-generated
70                                                                                        // Event
71                                                                                        // stub
72                                                                                        // itemStateChanged()
73              // firePropertyChange(null, null, null);
74              firePropertyChange(fireProper, !soll, soll);
75            }
76            catch (Exception ex)
77            {
78              ex.printStackTrace();
79            }
80          }
81        }
82      });
83    }
84  }