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