/** * ColorEventMulticaster.java 1.00 97/04/12 Merlin Hughes * * Copyright (c) 1997 Prominence Dot Com, Inc. All Rights Reserved. * * Permission to use, copy, modify, and distribute this software * for commercial and non-commercial purposes and without fee is * hereby granted provided that this copyright notice appears in * all copies. * * http://prominence.com/ merlin@prominence.com */ class ColorEventMulticaster implements ColorListener { protected ColorListener a, b; protected ColorEventMulticaster (ColorListener a, ColorListener b) { this.a = a; this.b = b; } public void colorPicked (ColorEvent e) { a.colorPicked (e); b.colorPicked (e); } static ColorListener add (ColorListener a, ColorListener b) { if (a == null) return b; else if (b == null) return a; else return new ColorEventMulticaster (a, b); } static ColorListener remove (ColorListener a, ColorListener b) { if ((a == null) || (a == b)) return null; else if (a instanceof ColorEventMulticaster) return add (remove (((ColorEventMulticaster) a).a, b), remove (((ColorEventMulticaster) a).b, b)); else return a; } }