Example #1
0
        public void DisplayParticipants()
        {
            MenuUtils.ClearList(_dynFields);

            var experimentName = _launchManager.ExperimentName;
            var s = _log.GetAllSessionsData(experimentName);

            session_ids     = Array.ConvertAll(s[0], int.Parse);
            participant_ids = s[1];

            for (var i = 0; i < session_ids.Length; i++)
            {
                var sid = session_ids[i];
                var pid = participant_ids[i];

                var gObject = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/EvaluationEntry");
                gObject.transform.Find("DetailsButton").GetComponent <Button>().onClick.AddListener(() =>
                {
                    ShowParticipantDetails(sid);
                });
                gObject.transform.Find("RemoveButton").GetComponent <Button>().onClick.AddListener(() =>
                {
                    RemoveEvaluationEntry(sid, pid, gObject);
                });
                MenuUtils.PlaceElement(gObject, _dynFields);

                gObject.transform.Find("SessionId").GetComponent <Text>().text     = sid.ToString();
                gObject.transform.Find("ParticipantId").GetComponent <Text>().text = pid;
            }

            //creates a map on the second camera
            //_map.GetComponent<PopUpEvaluationMap>().SetupMaps(envs);
        }
Example #2
0
        /// <summary>
        /// Add elements to the available scenes list.
        /// </summary>
        public void UpdateAvailableScenes()
        {
            var path      = _launchManager.MenuManager.SceneFilePath;
            var filenames = Directory.GetFiles(path);

            if (!transform.Find("Panel").Find("KeepScenesButton").Find("Button").GetComponent <Toggle>().isOn)
            {
                MenuUtils.ClearList(_availableScenesList);
            }

            foreach (var filename in filenames)
            {
                //this block is a filter which filters files by the ".unity" or ".xml"-ending(questionnaires)
                var splittedFilename = filename.Split('.');
                var fileType         = splittedFilename[splittedFilename.Length - 1];
                if (!(fileType.Equals("unity") || fileType.Equals("xml")))
                {
                    continue;
                }

                //this block adds the data to the menu
                var filenameObj = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/AvailableSceneEntry");
                MenuUtils.PlaceElement(filenameObj, _availableScenesList);

                var localFilename = filename;
                filenameObj.transform.Find("AddButton").GetComponent <Button>().onClick.AddListener(() => { AddToChoosenScenes(localFilename); });
                filenameObj.transform.Find("RemoveButton").GetComponent <Button>().onClick.AddListener(() => { Destroy(filenameObj); });
                filenameObj.transform.Find("SceneName").GetComponent <Text>().text = RemovePathPrefix(filename);
            }
        }
Example #3
0
        /// <summary>
        /// Displays all summary information that EVE currently knows.
        /// </summary>
        public void DisplayParticipantDetails()
        {
            MenuUtils.ClearList(_dynamicField);


            var envs    = _log.GetSceneNames(_launchManager.ExperimentName);// _log.GetListOfEnvironments(_sessionId).Distinct().ToArray(); ;
            var timeSec = new TimeSpan[envs.Length];


            _fields.Find("SessionInformation").Find("SessionId").GetComponent <Text>().text = _sessionId.ToString();

            for (var k = 0; k < envs.Length; k++)
            {
                var sceneDescription = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/SceneEntry");
                MenuUtils.PlaceElement(sceneDescription, _dynamicField);

                sceneDescription.transform.Find("SceneInformation").Find("SceneLabel")
                .GetComponent <Text>().text = "Scene " + k + ":";
                sceneDescription.transform.Find("SceneInformation").Find("SceneValue")
                .GetComponent <Text>().text = envs[k].Name;
                timeSec[k] = TimeSpan.FromSeconds(0);
                var times = _log.GetSceneTime(k, _sessionId);
                if (times[0] != null && times[1] != null)
                {
                    timeSec[k] = TimeUtils.TimeSpanDifference(times[0], times[1]);
                }
                else if (times[0].Length > 0)
                {
                    timeSec[k] = TimeUtils.TimeSpanDifference(times[0], times[0]);
                }

                sceneDescription.transform.Find("Statistics").Find("TimeInformation").Find("TimeValue")
                .GetComponent <Text>().text = timeSec[k].TotalSeconds.ToString();

                var xyzTable = _log.GetPath(_sessionId, k);
                if (xyzTable[0].Count <= 0)
                {
                    continue;
                }
                var distance = MenuUtils.ComputeParticipantPathDistance(xyzTable);
                sceneDescription.transform.Find("Statistics").Find("DistanceInformation").Find("DistanceValue")
                .GetComponent <Text>().text = distance.ToString();

                //make replay button
                var replayButton   = sceneDescription.transform.Find("Buttons").Find("ReplayButton").GetComponent <Button>();
                var localSceneId   = k;
                var localSceneName = envs[k];
                var localSessionId = _sessionId;
                replayButton.onClick.AddListener(() => Replay(localSessionId, localSceneId, localSceneName.Name));

                //make show map button
                _map = gameObject.GetComponent <PopUpEvaluationMap>();
                var showMapButton = sceneDescription.transform.Find("Buttons").Find("ShowMapButton").GetComponent <Button>();
                showMapButton.onClick.AddListener(() => ShowMap(localSessionId, localSceneId, localSceneName.Name));
            }
        }
Example #4
0
 /// <summary>
 /// Add Elements to the choosen scenes list.
 /// </summary>
 public void UpdateChosenScenes()
 {
     _launchManager.SynchroniseScenesWithDatabase();
     MenuUtils.ClearList(_choosenScenesList);
     _scenes = _launchManager.ExperimentSettings.SceneSettings.Scenes;
     foreach (var scene in _scenes)
     {
         _menuManager.ActiveSceneId = scene.Name;
         var filenameObj = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/ChoosenSceneEntry");
         MenuUtils.PlaceElement(filenameObj, _choosenScenesList);
         filenameObj.transform.Find("SceneName").GetComponent <Text>().text = RemovePathPrefix(scene.Name);
         filenameObj.transform.Find("MoveUpButton").GetComponent <Button>().onClick.AddListener(() => { MoveUpChoosenSceneEntry(filenameObj); });
         filenameObj.transform.Find("EditButton").GetComponent <Button>().onClick.AddListener(() => _menuManager.InstantiateAndShowMenu("Scene Options Menu", "Launcher"));
         filenameObj.transform.Find("RemoveButton").GetComponent <Button>().onClick.AddListener(() => { RemoveSceneEntry(filenameObj); });
     }
 }
Example #5
0
        public void Visit(VisualStimuli q)
        {
            Cursor.lockState   = CursorLockMode.Locked;
            Cursor.visible     = false;
            _lastValidQuestion = _currentQuestion + 1;
            var qmb = _questionPlaceholder.GetComponent <QuestionMenuButtons>();

            qmb.DeactivateQuestionControlButtons();
            qmb.DeactivateQuestionName();
            MenuUtils.ClearList(_questionContent);

            var rep = _questionContent.gameObject.AddComponent <Representations.VisualStimuli>();

            rep.Question = q;

            _questionContent.GetComponent <RectTransform>().sizeDelta = _launchManager.ExperimentSettings.UISettings.ReferenceResolution;

            var fixationScreen = GameObjectUtils.InstatiatePrefab("Prefabs/Questionnaire/VisualStimuli/Fixation");

            MenuUtils.PlaceElement(fixationScreen, _questionContent);
            fixationScreen.SetActive(false);
            rep.FixationSceen = fixationScreen;
            var decisionScreen = GameObjectUtils.InstatiatePrefab("Prefabs/Questionnaire/VisualStimuli/Decision");

            MenuUtils.PlaceElement(decisionScreen, _questionContent);
            decisionScreen.SetActive(false);
            rep.DecisionScreen = decisionScreen;
            decisionScreen.GetComponentInChildren <Text>().text = q.Text;
            var expositionScreen = GameObjectUtils.InstatiatePrefab("Prefabs/Questionnaire/VisualStimuli/Exposition");

            MenuUtils.PlaceElement(expositionScreen, _questionContent);
            expositionScreen.SetActive(false);
            rep.ExpositionScreen = expositionScreen;

            expositionScreen.transform.Find("Screen").GetComponent <RectTransform>().sizeDelta = _launchManager.ExperimentSettings.UISettings.ReferenceResolution;

            _questionContent.gameObject.SetActive(true);

            _questionContent.GetComponent <VerticalLayoutGroup>().childAlignment = TextAnchor.MiddleCenter;

            rep.InitialiseRepresentation(this);
        }
Example #6
0
        // Use this for initialization
        void Start()
        {
            _launchManager = GameObject.FindWithTag("LaunchManager").GetComponent <LaunchManager>();
            _menuManager   = _launchManager.MenuManager;
            _scenes        = new List <SceneEntry>();

            _availableScenesList = transform.Find("Panel").Find("SceneSelection").Find("DynFieldsWithScrollbarRight").Find("DynFields");
            MenuUtils.ClearList(_availableScenesList);

            _choosenScenesList = transform.Find("Panel").Find("SceneSelection").Find("DynFieldsWithScrollbarLeft").Find("DynFields");

            var fields = transform.Find("Panel").Find("Folder Selection");

            fields.Find("FolderAndField").Find("PathField").GetComponent <InputField>().onEndEdit.AddListener(answer => _menuManager.SceneFilePath = answer);
            fields.Find("FolderAndField").Find("SelectPathButton").GetComponent <Button>().onClick.AddListener(OpenFolder);
            fields.Find("BackButton").GetComponent <Button>().onClick.AddListener(() => _menuManager.InstantiateAndShowMenu("Configuration Menu", "Launcher"));

            UpdateAvailableScenes();
            UpdateChosenScenes();
        }
        /// <summary>
        /// Display the current list of sensors.
        /// </summary>
        public void DisplaySensorList()
        {
            MenuUtils.ClearList(_dynFields);

            if (_launchManager.SessionId < 0)
            {
                return;
            }

            var sensors = _log.GetSensors();

            if (sensors.Contains("Labchart"))
            {
                _labchartButton.isOn = true;
                sensors.Remove("Labchart");
            }

            if (sensors.Contains("HL7Server"))
            {
                _hl7ServerButton.isOn = true;
                sensors.Remove("HL7Server");
            }

            if (sensors.Contains("MiddleVR"))
            {
                _middleVRButton.isOn = true;
                sensors.Remove("MiddleVR");
            }

            foreach (var sensorName in sensors)
            {
                var sensorDisplay = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/SensorEntry");
                sensorDisplay.transform.Find("RemoveSensor").GetComponent <Button>().onClick.AddListener(() => { RemoveSensor(sensorDisplay); });
                MenuUtils.PlaceElement(sensorDisplay, _dynFields);
                sensorDisplay.transform.Find("SensorName").GetComponent <Text>().text = sensorName;
            }
            _launchManager.SynchroniseSensorsWithDatabase();
        }
        public void DisplaySessionParameters()
        {
            MenuUtils.ClearList(_dynamicField);

            var experimentParameters = _menuManager.ExperimentParameterList;


            foreach (var experimentParameter in experimentParameters)
            {
                var gObject = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/EditableSessionParameter");
                gObject.GetComponentInChildren <InputField>().onEndEdit.AddListener((text) =>
                {
                    StoreSessionParameter(experimentParameter, text);
                });
                MenuUtils.PlaceElement(gObject, _dynamicField);
                gObject.transform.Find("FieldName").GetComponent <Text>().text = experimentParameter;
                if (_launchManager.SessionParameters.ContainsKey(experimentParameter))
                {
                    gObject.transform.Find("InputField").Find("Placeholder").GetComponent <Text>().text =
                        _launchManager.SessionParameters[experimentParameter];
                }
            }
        }
Example #9
0
        public void DisplayExperimentParameters()
        {
            MenuUtils.ClearList(_dynamicField);

            var experimentParameters = _menuManager.ExperimentParameterList;


            foreach (var experimentParameter in experimentParameters)
            {
                var gObject = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Lists/ExperimentParameterEntry");
                MenuUtils.PlaceElement(gObject, _dynamicField);
                gObject.transform.Find("FieldName").GetComponent <Text>().text = experimentParameter;
                if (_launchManager.SessionParameters.ContainsKey(experimentParameter))
                {
                    gObject.transform.Find("InputField").Find("Placeholder").GetComponent <Text>().text =
                        _launchManager.SessionParameters[experimentParameter];
                }

                gObject.transform.Find("RemoveButton").GetComponent <Button>().onClick.AddListener(() =>
                {
                    RemoveExperimentParameter(gObject);
                });
            }
        }