/* * Copyright (C) 2015 Language In Interaction * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package nl.ru.languageininteraction.language.client.view; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ListBox; import java.util.List; import nl.ru.languageininteraction.language.client.ChoosePlayerScreenBuilder; import nl.ru.languageininteraction.language.client.exception.AudioException; import nl.ru.languageininteraction.language.client.listener.PresenterEventListner; import nl.ru.languageininteraction.language.client.service.AudioPlayer; /** * @since Feb 4, 2015 1:20:10 PM (creation date) * @author Peter Withers <p.withers@psych.ru.nl> */ public class ChoosePlayerView extends AbstractSvgView { protected final ChoosePlayerScreenBuilder svgBuilder = new ChoosePlayerScreenBuilder(); protected PresenterEventListner editButtonListner; protected PresenterEventListner goButtonListner; protected PresenterEventListner createButtonListner; protected PresenterEventListner switchButtonListner; protected PresenterEventListner localeButtonListner; protected PresenterEventListner infoButtonListner; protected PresenterEventListner tutorialButtonListner; public ChoosePlayerView(AudioPlayer audioPlayer) throws AudioException { super(audioPlayer); } public void setTutorialButtonListner(PresenterEventListner tutorialButtonListner) { this.tutorialButtonListner = tutorialButtonListner; } public void setInfoButtonListner(PresenterEventListner infoButtonListner) { this.infoButtonListner = infoButtonListner; } public void setLocaleButtonListner(PresenterEventListner localeButtonListner) { this.localeButtonListner = localeButtonListner; } public void setEditButtonListner(PresenterEventListner editButtonListner) { this.editButtonListner = editButtonListner; } public void setGoButtonListner(PresenterEventListner goButtonListner) { this.goButtonListner = goButtonListner; } public void setCreateButtonListner(PresenterEventListner createButtonListner) { this.createButtonListner = createButtonListner; } public void setSwitchButtonListner(PresenterEventListner switchButtonListner, int userCount) { if (userCount < 2) { svgBuilder.hideGroup(ChoosePlayerScreenBuilder.SvgGroupStates.g4373); this.switchButtonListner = null; } else { this.switchButtonListner = switchButtonListner; } } @Override protected void getSvg(SafeHtmlBuilder builder) { svgBuilder.getSvg(builder); } @Override protected boolean performClick(final String svgGroupStateString) { boolean consumed = false; showDebugLabel(svgGroupStateString); ChoosePlayerScreenBuilder.SvgGroupStates svgGroup = ChoosePlayerScreenBuilder.SvgGroupStates.valueOf(svgGroupStateString); switch (svgGroup) { case EditButton: consumed = true; editButtonListner.eventFired(null); break; case GoButton: consumed = true; goButtonListner.eventFired(null); break; case NameField: consumed = true; break; case NewPlayerButton: consumed = true; createButtonListner.eventFired(null); break; case SwitchPlayerButton: consumed = true; if (switchButtonListner != null) { switchButtonListner.eventFired(null); } break; case SettingsButton: consumed = true; localeButtonListner.eventFired(null); break; case TutorialButton: consumed = true; tutorialButtonListner.eventFired(null); break; case InfoButton: consumed = true; infoButtonListner.eventFired(null); break; } return consumed; } @Override public void showAudioEnded() { } public void showChoosePlayer(final List<PresenterEventListner> playerListeners, int selectedIndex) { final ListBox listBox = new ListBox(); listBox.setVisibleItemCount(5); listBox.setStylePrimaryName("choosePlayerList"); for (PresenterEventListner currentListener : playerListeners) { listBox.addItem(currentListener.getLabel()); } listBox.setSelectedIndex(selectedIndex); showWidgetPopup(new PresenterEventListner() { @Override public String getLabel() { return messages.popupOkButtonLabel(); } @Override public void eventFired(Button button) { playerListeners.get(listBox.getSelectedIndex()).eventFired(null); } }, listBox); } public void setUserNameField(String userName) { svgBuilder.setLabel(ChoosePlayerScreenBuilder.SvgTextElements.tspan3491, (userName.isEmpty()) ? messages.defaultUserName() : userName); svgBuilder.setLabel(ChoosePlayerScreenBuilder.SvgTextElements.tspan5885, messages.editDetailsTextChoose()); svgBuilder.setLabel(ChoosePlayerScreenBuilder.SvgTextElements.tspan5893, messages.newPlayerText()); svgBuilder.setLabel(ChoosePlayerScreenBuilder.SvgTextElements.tspan5889, messages.switchPlayerText()); } }