1 package org.columba.core.gui.base; 17 18 import java.beans.PropertyChangeEvent ; 19 import java.beans.PropertyChangeListener ; 20 import java.lang.reflect.InvocationHandler ; 21 import java.lang.reflect.Method ; 22 23 import javax.swing.AbstractButton ; 24 25 26 33 public class ButtonStateAdapter implements InvocationHandler { 34 protected AbstractButton button; 35 protected PropertyChangeListener listener; 36 37 public ButtonStateAdapter(AbstractButton button, 38 PropertyChangeListener listener) { 39 this.button = button; 40 this.listener = listener; 41 } 42 43 public Object invoke(Object proxy, Method method, Object [] args) 44 throws Throwable { 45 if (method.getName().equals("propertyChange") && (args.length > 0)) { 46 PropertyChangeEvent e = (PropertyChangeEvent ) args[0]; 47 48 if ("selected".equals(e.getPropertyName())) { 49 button.setSelected(((Boolean ) e.getNewValue()).booleanValue()); 50 } 51 } 52 53 return method.invoke(listener, args); 54 } 55 } 56 | Popular Tags |