package com.christophdietze.jack.client.view.embed; import com.christophdietze.jack.client.presenter.embed.MoveNavigationPresenter; import com.christophdietze.jack.shared.board.Game; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; public class MoveNavigationPanel extends Composite implements MoveNavigationPresenter.View { private static MoveNavigationPanelUiBinder uiBinder = GWT.create(MoveNavigationPanelUiBinder.class); interface MoveNavigationPanelUiBinder extends UiBinder<Widget, MoveNavigationPanel> { } private MoveNavigationPresenter presenter; @UiField Button navStartButton; @UiField Button navPrevMoveButton; @UiField Button navNextMoveButton; @UiField Button navEndButton; @Inject public MoveNavigationPanel(MoveNavigationPresenter presenter) { this.presenter = presenter; initWidget(uiBinder.createAndBindUi(this)); presenter.bindView(this); update(); } @UiHandler("navStartButton") void onNavStartClick(ClickEvent event) { presenter.onNavStartClick(); } @UiHandler("navPrevMoveButton") void onNavPrevMoveClick(ClickEvent event) { presenter.onNavPrevMoveClick(); } @UiHandler("navNextMoveButton") void onNavNextMoveClick(ClickEvent event) { presenter.onNavNextMoveClick(); } @UiHandler("navEndButton") void onNavEndClick(ClickEvent event) { presenter.onNavEndClick(); } @Override public void update() { Game game = presenter.getGame(); navStartButton.setEnabled(game.hasPrevMove()); navPrevMoveButton.setEnabled(game.hasPrevMove()); navNextMoveButton.setEnabled(game.hasNextMove()); navEndButton.setEnabled(game.hasNextMove()); } }