Revision: 5017
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 5, 2008 16:59 by narkisr
Initial Code
// The mediator class which connects all the colleges (buttons in this case) // and updates them all in reaction to informations from any of them package design.patterns.mediator public class Mediator { def show def buttons = [] void registerButton(b) { buttons << b } void registerDisplay(d) { show = d } void mediate(disable, text) { buttons.each { if (it == disable) { it.enabled - false } else { it.enabled = true } } show.setText(text) } } // The demo UI which demonstrates the usage package design.patterns.mediator.ui import groovy.swing.SwingBuilder import design.patterns.mediator.Mediator public class MediatorDemo { public static void main(String[] args) { def Mediator mediator = new Mediator() def frame = new SwingBuilder().frame() { panel() { label(text: 'just starting') {mediator.registerDisplay(current)} button() { mediator.registerButton(current) action(name: 'view', closure: {mediator.mediate(current, 'viewing ..')}) } button() { mediator.registerButton(current) action(name: 'book', closure: {mediator.mediate(current, 'booking ..')}) } button() { mediator.registerButton(current) action(name: 'search', closure: {mediator.mediate(current, 'searching ..')}) } } } frame.setSize(400, 200); frame.setVisible(true); } }
Initial URL
Initial Description
Mediator design pattern implemented in Groovy (based upon http://www.javacamp.org/designPattern/).
Initial Title
Mediator Design pattern Groovy implementation
Initial Tags
design, groovy
Initial Language
Groovy