package com.akjava.gwt.lib.client.experimental.undo; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HorizontalPanel; public class UndoButtons extends HorizontalPanel implements UndoStateListener{ private SimpleUndoControler controler; public SimpleUndoControler getControler() { return controler; } private Button undoButton; private Button redoButton; public UndoButtons(final SimpleUndoControler controler) { super(); this.controler = controler; controler.setListener(this); undoButton = new Button("Undo"); undoButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { controler.undo(); } }); add(undoButton); redoButton = new Button("Redo"); redoButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { controler.redo(); } }); add(redoButton); updateState(false,false); } @Override public void updateState(boolean undoable, boolean redoable) { undoButton.setEnabled(undoable); redoButton.setEnabled(redoable); } }