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 }