Beispiel #1
0
    public void Setup(int index, string question, QuestionnairePanel parent, bool dropdown, string[] dropdownOptions, bool forceCompletion)
    {
        ForceCompletion = forceCompletion;

        this.parent = parent;
        Prompt      = question;

        Index = index;

        QuestionText.text = (index + 1) + ". " + question;

        if (!dropdown)
        {
            MyInputField.gameObject.SetActive(true);
            MyDropdown.gameObject.SetActive(false);
            MyInputField.onEndEdit.AddListener(delegate { TrialFinished(MyInputField.text); });
        }

        else
        {
            MyInputField.gameObject.SetActive(false);
            MyDropdown.gameObject.SetActive(true);

            MyDropdown.options.Add(new Dropdown.OptionData(""));

            foreach (string s in dropdownOptions)
            {
                MyDropdown.options.Add(new Dropdown.OptionData(s));
            }


            //  MyDropdown.One.AddListener(delegate { TrialFinished(MyDropdown.options[MyDropdown.value].text); });
            MyDropdown.onValueChanged.AddListener(delegate { TrialFinished(MyDropdown.value); });
        }

        if (forceCompletion)
        {
            ForceCompletionText.gameObject.SetActive(true);
        }
        else
        {
            ForceCompletionText.gameObject.SetActive(false);
        }

        Tick.gameObject.SetActive(false);



        RectTransform r = (RectTransform)this.transform;

        r.localScale = Vector3.one;

        layout = GetComponent <LayoutElement>();
    }
    void OnGUI()
    {
        GUILayout.Label("General Parameters", EditorStyles.boldLabel);

        questionnaireName = EditorGUILayout.TextField("Questionnaire name", questionnaireName);

        numberOfQuestions = EditorGUILayout.IntSlider("Number of questions", numberOfQuestions, 1, 50);

        while (questions.Count < numberOfQuestions)
        {
            Question q = new Question();

            questions.Add(q);
        }

        while (questions.Count > numberOfQuestions)
        {
            questions.RemoveAt(questions.Count - 1);
        }

        GUILayout.Label("Questions", EditorStyles.boldLabel);

        foreach (Question q in questions)
        {
            EditorGUILayout.BeginHorizontal();

            q.prompt = EditorGUILayout.TextField("Question", q.prompt);

            if (!q.textbox)
            {
                string qoptions = "";

                foreach (string s in q.options)
                {
                    qoptions += s;
                    qoptions += ",";
                }

                qoptions = EditorGUILayout.TextField("Multiple choice options", qoptions);

                q.options = qoptions.Split(",".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
            }
            q.textbox         = EditorGUILayout.Toggle("Text input", q.textbox);
            q.forceCompletion = EditorGUILayout.Toggle("Force completion", q.forceCompletion);

            EditorGUILayout.EndHorizontal();
        }


        if (GUILayout.Button("Create questionnaire"))
        {
            GameObject questionnaire = (PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath("Assets/TestTube/Quick UI/Panels/Questionnaire Panel.prefab", typeof(GameObject)) as GameObject)) as GameObject;

            questionnaire.transform.SetParent(GameObject.Find("Blank UI").transform);

            QuestionnairePanel qPanel = questionnaire.GetComponent <QuestionnairePanel>();

            qPanel.Questions = questions.ToArray();

            qPanel.name = questionnaireName;
            qPanel.QuestionnaireTitle = questionnaireName;

            RectTransform r = ((RectTransform)questionnaire.transform);
            r.localPosition = Vector2.zero;
            r.localScale    = Vector3.one;
            r.offsetMax     = Vector2.zero;
            r.offsetMin     = Vector2.zero;
        }
    }