public virtual void Initialize(DevUILuaExpression luaExpression, DevUIView view)
        {
            base.Initialize();

            this.view          = view;
            this.luaExpression = luaExpression;

            labelOutput.text = luaExpression.name;
            valueOutput.text = luaExpression.Value;

            //Value listener
            luaExpression.valueProperty.Subscribe(e => {
                valueOutput.text = e;
            }).AddTo(this);

            //Setup buttons
            if (luaExpression.createdDynamically)
            {
                deleteButton.onClick.AddListener(Delete);
            }
            else
            {
                IsEditable = false;
            }

            luaCommandInput.text = luaExpression.LuaExpression;
            nameInput.text       = luaExpression.name;

            luaExpression.luaExpressionProperty.Subscribe(e => {
                luaCommandInput.text = e;
            }).AddTo(this);

            intervalSlider.value = luaExpression.updateRateInSeconds;
            luaExpression.SetInterval(intervalSlider.value);
        }
示例#2
0
        public virtual void Initialize(string label, Action callback, DevUILUAButton luaButton, DevUIView view)
        {
            base.Initialize();

            this.luaButton = luaButton;
            this.view      = view;

            labelOutput.text = label;

            executeButton.onClick.AddListener(callback.Invoke);

            //Setup buttons
            if (luaButton.createdDynamically)
            {
                deleteButton.onClick.AddListener(Delete);
            }
            else
            {
                IsEditable = false;
            }

            luaCommandInput.text = luaButton.LuaCommand;
            nameInput.text       = luaButton.name;

            luaButton.luaCommandProperty.Subscribe(e => {
                luaCommandInput.text = e;
            }).AddTo(this);
        }
        /// <summary>
        /// Sets up a new ui view and adds ui elements if there are any
        /// </summary>
        /// <param name="devUIView">The dev UI view data</param>
        public void SpawnUIView(DevUIView devUIView)
        {
            //Spawn  the tab
            GameObject uiViewTabGO = Instantiate(uiViewTabPrefab) as GameObject;

            uiViewTabGO.transform.SetParent(uiViewTabbar.transform, false);
            uiViewTabGO.name = "tab_" + devUIView.Name;

            //Spawn the view
            GameObject uiViewGO = Instantiate(uiViewPrefab) as GameObject;

            uiViewGO.transform.SetParent(uiViewsContainer, false);

            //Connect tab and view
            GMTab uiViewTab = uiViewTabGO.GetComponent <GMTab>();

            uiViewTab.content = uiViewGO;
            uiViewTabbar.RegisterTab(uiViewTab);

            UIViewController uiViewController = uiViewGO.GetComponent <UIViewController>();

            uiViewController.Initialize(devUIView, uiViewTab);

            uiViews.Add(devUIView, uiViewController);
        }
示例#4
0
        protected override void AfterBind()
        {
            base.AfterBind();

            //Load existing
            ReactiveCollection <DevUIView> devUIViews = _devUiService.GetRxViews();

            foreach (DevUIView uiView in devUIViews)
            {
                SpawnUIView(uiView);
            }

            //listen to new
            _devUiService.GetRxViews().ObserveAdd().Subscribe(evt => {
                // spawn View
                DevUIView view = evt.Value;
                SpawnUIView(view);
            }).AddTo(this);

            //listen to remove
            _devUiService.GetRxViews().ObserveRemove().Subscribe(evt => {
                RemoveView(evt.Value);
            }).AddTo(this);

            //Button
            browseViewsButton.onClick.AddListener(Browse);
            //Refresh
            refreshViewsButton.onClick.AddListener(Refresh);
            //Pick from Scene
            pickObjectFromSceneButton.onClick.AddListener(PickObjectFromScene);
        }
 void RemoveView(DevUIView view)
 {
     if (uiViews.ContainsKey(view))
     {
         //Remove tab
         uiViewTabbar.RemoveTab(uiViews[view].myTab, true);
         //Destroy uiView
         Destroy(uiViews[view].gameObject);
         uiViews.Remove(view);
     }
 }
示例#6
0
        public void Initialize(DevUIView uiView, GMTab uiViewTab)
        {
            myView = uiView;
            myTab  = uiViewTab;

            //Set name
            UpdateName(myView.Name);

            //Check if we want to have extension buttons
            extensionButtonGroup.SetActive(uiView.extensionAllowed);

            //Button events
            if (uiView.extensionAllowed)
            {
                addLuaCommandButton.onClick.AddListener(AddLuaButton);
                addLuaExpressionButton.onClick.AddListener(AddLuaExpression);
            }

            applyAllButton.onClick.AddListener(ApplyAll);
            applyAllAndCloseButton.onClick.AddListener(ApplyAllAndClose);

            //Setup buttons if this UI Views is created dynamically from script. If this is not the case deactivate the buttons to rename or archive the ui view.
            if (uiView.createdDynamically)
            {
                saveNameButton.onClick.AddListener(
                    () => {
                    UpdateName(renameInputField.text);
                    ToggleNamingMode(false);
                }
                    );
                renameButton.onClick.AddListener(
                    () => ToggleNamingMode(true)
                    );
                renameInputField.onValueChanged.AddListener(ValidateName);
                archiveButton.onClick.AddListener(ArchiveView);
            }
            else
            {
                renameButton.gameObject.SetActive(false);
                archiveButton.gameObject.SetActive(false);
            }

            //Setup ui elements
            foreach (DevUIElement uiElement in uiView.uiElements)
            {
                SpawnUIElement(uiElement);
            }

            //Add listener
            _eventService.OnEvent <Service.DevUIService.Events.NewUIElement>().Where(u => u.view == myView).Subscribe(evt => {
                if (evt.elem is DevUILuaExpression)
                {
                    SpawnLuaExpression((DevUILuaExpression)evt.elem, evt.inEditMode);
                }
                else if (evt.elem is DevUILUAButton)
                {
                    SpawnLuaButton((DevUILUAButton)evt.elem, evt.inEditMode);
                }
                else
                {
                    SpawnUIElement(evt.elem);
                }
            }).AddTo(this);

            uiView.uiElements.ObserveRemove().Subscribe(e => {
                RemoveUIElement(e.Value);
            }).AddTo(this);

            ToggleNamingMode(false);
        }