package com.github.donkirkby.vograbulary.client;
import com.github.donkirkby.vograbulary.LetterDisplay;
import com.github.donkirkby.vograbulary.LetterDisplayFactory;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
public class GwtLetterDisplayFactory extends LetterDisplayFactory{
private AbsolutePanel panel;
public GwtLetterDisplayFactory(AbsolutePanel panel) {
this.panel = panel;
}
@Override
public LetterDisplay create(String letter) {
Button button = new Button(letter);
panel.add(button);
final GwtLetterDisplay letterDisplay =
new GwtLetterDisplay(panel, button);
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
letterDisplay.click();
}
});
return letterDisplay;
}
@Override
public void destroy(LetterDisplay letter) {
panel.remove(((GwtLetterDisplay)letter).getButton());
}
}