/*
* This file is part of gwap, an open platform for games with a purpose
*
* Copyright (C) 2013
* Project play4science
* Lehr- und Forschungseinheit für Programmier- und Modellierungssprachen
* Ludwig-Maximilians-Universität München
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gwap.elearn;
import gwap.model.GameConfiguration;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.web.RequestParameter;
/**
* @author Mislav Boras, Fabian Kneißl
*/
@Name("elearnTerminaBackstage")
@Scope(ScopeType.CONVERSATION)
public class TerminaBackstage extends Termina{
/**
*
*/
private static final long serialVersionUID = 600839;
@RequestParameter
private Long gameConfigurationId;
@RequestParameter
private String externalSessionId;
@RequestParameter
private String externalUsername;
public String getExternalSessionId() {
return externalSessionId;
}
public void setExternalSessionId(String externalSessionId) {
this.externalSessionId = externalSessionId;
}
public Long getGameConfigurationId() {
return gameConfigurationId;
}
public void setGameConfigurationId(Long gameConfigurationId) {
this.gameConfigurationId = gameConfigurationId;
}
@Override
public void startGameSession() {
if (gameType != null) {
log.info("Not starting game session again, already started!");
return;
}
gameConfiguration = entityManager.find(GameConfiguration.class, gameConfigurationId);
startGameSession("elearnTerminaBackstage");
gameSession.setExternalSessionId(externalSessionId);
person.setExternalUsername(externalUsername);
}
@Override
protected void adjustGameConfiguration() {
// only when it is not predefined
if (gameConfigurationId == null)
super.adjustGameConfiguration();
}
@Override
public Integer getRoundsLeft() {
if (elearnTermBean.updateTerm(gameConfiguration) != null)
return 1;
else
return 0;
}
public String getExternalUsername() {
return externalUsername;
}
public void setExternalUsername(String externalUsername) {
this.externalUsername = externalUsername;
}
}