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 }