Newer
Older
HoloAnatomy / Assets / HoloToolkit-Examples / Utilities / Scripts / ApplicationViewManagerEditButton.cs
SURFACEBOOK2\jackwynne on 25 May 2018 1 KB v1
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

namespace HoloToolkit.Unity.Tests
{
    [RequireComponent(typeof(ApplicationViewManager))]
    public class ApplicationViewManagerEditButton : MonoBehaviour
    {
        public delegate void LaunchXmlView(string result);

        /// <summary>
        /// Event to subscribe to when a text result is returned from the XML view.
        /// </summary>
        public event LaunchXmlView OnResult;

        public Text Field;

        private ApplicationViewManager viewManager;

        private void Awake()
        {
            viewManager = gameObject.EnsureComponent<ApplicationViewManager>();
        }

        public void StartEdit()
        {
            StartCoroutine(OpenViewEdit());
        }

        private IEnumerator OpenViewEdit()
        {
            string result = string.Empty;

            yield return viewManager.OnLaunchXamlView<string>("TestPage", s => result = s);

            yield return new WaitUntil(() => !string.IsNullOrEmpty(result));

            if (OnResult != null)
            {
                OnResult(result);
            }

            if (Field != null)
            {
                Field.text = result;
            }
        }
    }
}