1 package net.sf.jga.swing; 33 34 import java.awt.event.ItemEvent ; 35 import java.awt.event.ItemListener ; 36 import net.sf.jga.fn.UnaryFunctor; 37 import net.sf.jga.fn.adaptor.ConstantUnary; 38 import net.sf.jga.fn.property.ArrayUnary; 39 import net.sf.jga.fn.property.InvokeMethod; 40 import net.sf.jga.fn.property.InvokeNoArgMethod; 41 42 48 49 public class GenericItemListener implements ItemListener { 50 51 55 56 static public <T> GenericItemListener 57 buildListener(Class <T> type, T object, String methodName) { 58 return new GenericItemListener( 59 new InvokeNoArgMethod<T,Object >(type,methodName) 60 .compose(new ConstantUnary<ItemEvent ,T>(object))); 61 } 62 63 67 68 static public <T> GenericItemListener 69 buildEventListener(Class <T> type, T object, String methodName) { 70 return new GenericItemListener( 71 new InvokeMethod<T,Object >(type,methodName,ItemEvent .class) 72 .compose(new ConstantUnary<ItemEvent ,T>(object), 73 new ArrayUnary<ItemEvent >())); 74 } 75 76 private UnaryFunctor<ItemEvent ,?> _fn; 78 79 83 public GenericItemListener(UnaryFunctor<ItemEvent ,?> fn) { 84 _fn = fn; 85 } 86 87 91 95 public void itemStateChanged(ItemEvent evt) { 96 _fn.fn(evt); 97 } 98 99 } 100 | Popular Tags |