TestDataView.java 7.5 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.insomnia.bortal.view;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.beans.CardTemplateBeanLocal;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.PollBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.TestDataBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.beans.UtilBeanLocal;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Poll;
import fi.insomnia.bortal.model.PollQuestion;
import fi.insomnia.bortal.model.PossibleAnswer;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;

/**
 * 
 * @author tuukka
 */
@ManagedBean(name = "TestDataView")
@RequestScoped
public class TestDataView {

    private static final Logger logger = LoggerFactory.getLogger(TestDataView.class);

    @EJB
    private TestDataBeanLocal testdatabean;
    @EJB
    private UserBeanLocal userbean;
    @EJB
    private RoleBeanLocal rolebean;
    @EJB
    private UtilBeanLocal utilbean;
    @EJB
    private CardTemplateBeanLocal ctbean;
    @EJB
    private EventBeanLocal eventbean;
    @EJB
    private PollBeanLocal pollbean;

    public void generateData() {

        User user = testdatabean.createUser();
        User admin = testdatabean.createAdmin();

        testdatabean.createBill(user);

        // testdatabean.generateTestCompos(event);
    }

    public void generateTestMap() {
        EventMap map = testdatabean.generateTestMap();

        testdatabean.generateTestPlaces(map);
    }

    public void executeMapTests() {
        for (long i = 100; i < 1024 * 100; i += 100) {
            logger.debug("Trying to read {} chars", i);
            EventMap map = testdatabean.readMap(i);
            // logger.debug("Got map {} with {} chars", new Object[] { map,
            // map.getMapData().length() });
        }

        logger.warn("All succeded Testing for original image");
        EventMap map = testdatabean.readMap(0);
        logger.info("Got orig image: {}", map);
    }

    /** Creates a new instance of TestDataView */
    public TestDataView() {
    }

    public String printPlacesInfo() {
        testdatabean.printPlacesInfo();

        return null;
    }

    public void roletest() {
        User usr = userbean.getCurrentUser();
        List<Role> roles = rolebean.listRoles();
        Role role = roles.get(roles.size() - 1);
        role.getUsers().add(usr);
        logger.debug("roles before: {}", role.getUsers());
        rolebean.mergeChanges(role);
        logger.debug("roles after: {}", usr.getRoles());

    }

    public void checkCards() {
        ctbean.checkAllUsersCardRights();
    }

    public String checkImages() {
        logger.debug("Cheking all users images");
        utilbean.checkAllUsersImages();
        return null;
    }

    public String convertImages() {
        for (User u : userbean.getUsers()) {
            utilbean.convertImage(u);
        }

        return null;
    }

    public String generatePollData() {
        LanEvent ev = eventbean.getCurrentEvent();
        Poll poll = new Poll(ev, "Tapahtumakysely");
        Calendar end = Calendar.getInstance();
        end.add(Calendar.MONTH, 1);
        poll.setEnd(end);

        createTextQuestion(poll, 10, "Millainen oli yleinen fiilis tapahtumassa?");
        createTextQuestion(poll, 20, "Mitä pidit tapahtuman kilpailuista?");
        createTextQuestion(poll, 30, "Mitä mieltä olit tapahtuman kilpailujen aikataulusta ja oliko neljäpäiväinen tapahtuma hyvä juttu?");
        createTextQuestion(poll, 40, "Muu palaute tapahtumasta:");

        createTextQuestion(poll, 60, "Mikä InsomniaGamessa oli parasta?");
        createTextQuestion(poll, 70, "Mikä InsomniaGamessa oli huonointa?");
        createTextQuestion(poll, 80, "Miten olisit halunnut saada tietoa InsomniaGameen liittyvistä tehtävistä?");
        createTextQuestion(poll, 90, "Palautteesi InsomniaGamen järjestäjille:");

        pollbean.createPoll(poll);

        Poll poll2 = new Poll(ev, "Gallup");
        Calendar end2 = Calendar.getInstance();
        end2.add(Calendar.MONTH, 1);
        poll2.setEnd(end);

        createTextQuestion(poll2, 10, "Syntymävuotesi?", 8);
        createMulticoice(poll2, 50, "Omistatko älypuhelimen?", "En", "Kyllä", "Olen hankkimassa seuraavaksi älypuhelmen");

        createMulticoice(poll2, 60, "Miten usein pelaat mobiilipelejä?", "En pelaa mobiilipelejä", "Olen joskus kokeillut ", "Pelaan lähes viikottain", "Pelaan lähes päivittäin");

        createMulticoice(poll2, 70, "Miten usein pelaat pelikonsolilla tai tietokoneella?", "En pelaa", "Pelaan harvoin", "Pelaan kerran, pari viikossa", "Pelaan päivittäin");

        createMulticoice(poll2, 80, "Oletko kokeillut opetuspelejä? Esimerkiksi nettiselaimella tai kännykällä?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");

        createTextQuestion(poll2, 90, "Millaisen opetuspelin kokisit sekä hyödyllisenä että hauskana?");

        createMulticoice(poll2, 95, "Kokisitko roolipeleistä tutut kokemuspisteet ja kokemustasojen tavoittelun motivaatiota kasvattanava asiana oppimispeleissä?", "Kyllä", "Ei");

        createMulticoice(poll2, 100, "Oletko käyttänyt sijaintitietoon perustuvia palveluja, kuten Google Latitude tai Foursquare?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");

        createTextQuestion(poll2, 110, "Millaisia käyttötapoja näkisit sijaintitietoon perustuvilla peleillä tai palveluilla oppimiskäytössä?");

        createMulticoice(poll2, 120, "Käytätkö sosiaalisen median palveluita, kuten Facebookia tai IRC-Galleriaa?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");

        createTextQuestion(poll2, 130, "Millaisia käyttötapoja näkisit sosiaalisen mediaan perustuvilla palveluilla oppimiskäytössä?");

        createTextQuestion(poll2, 140, "Olet ehkä kuullut termin \"pilvipalvelut\". Miltä kuulostaisi ajatus siitä että pelikonsoli ei fyysisesti olisikaan kotonasi, vaan pelien sisältö tulisi suoraan verkkopalvelusta?");

        pollbean.createPoll(poll2);

        return null;
    }

    private void createMulticoice(Poll poll2, Integer sort, String question, String... answers) {
        PollQuestion pollq = new PollQuestion(poll2, question);
        pollq.setSort(sort);
        poll2.getQuestions().add(pollq);
        Integer anssort = 10;
        for (String ans : answers) {
            PossibleAnswer pans = new PossibleAnswer(pollq, ans);
            pans.setSort(anssort);
            pollq.getAnswers().add(pans);
            anssort += 10;
        }
    }

    private PollQuestion createTextQuestion(Poll poll, int sort, String string, int chars) {
        PollQuestion ret = createTextQuestion(poll, sort, string);
        ret.setCharacters(chars);
        return ret;
    }

    private PollQuestion createTextQuestion(Poll poll, int sort, String question) {
        PollQuestion q1 = new PollQuestion(poll, question);
        q1.setSort(sort);
        poll.getQuestions().add(q1);

        PossibleAnswer vapaa = new PossibleAnswer(q1, "");

        vapaa.setTextanswer(true);
        q1.getAnswers().add(vapaa);
        return q1;
    }
}