public IOSelfIOGroupDesign CreateSelfIOGroupDesign(UIScheme.IOGroupContainer container) { var design = Instantiate(mSelfIOGroupPrefab, mSchemeContainer).GetComponent <IOSelfIOGroupDesign>(); design.Init(container); return(design); }
private void ResetAddLink() { mSourceContainerGroup = null; mSourceContainerInner = null; mTargetContainerGroup = null; mTargetContainerInner = null; }
public void AddLinkAsSource(UIScheme.IOGroupContainer selfIOGroupContainer) { mSourceContainerGroup = selfIOGroupContainer; if (AddLinkStateChanged != null) { AddLinkStateChanged.Invoke(true); } }
public void Init(UIScheme.IOGroupContainer container) { mContainer = container; gameObject.name = (mContainer.BuildInfo.BuildString.IO == IO.Input ? "Input: " : "Output: ") + mContainer.BuildInfo.BuildString.Name + " (" + mContainer.BuildInfo.BuildString.Size.ToString() + ")"; mName.text = mContainer.BuildInfo.BuildString.Name; mIOContainer.localPosition = mContainer.BuildInfo.Position; if (mIOTogglers != null) { foreach (var input in mIOTogglers) { Destroy(input.gameObject); } } mIOTogglers = new IOToggler[mContainer.BuildInfo.BuildString.Size]; for (byte i = 0; i < mContainer.BuildInfo.BuildString.Size; i++) { mIOTogglers[i] = Instantiate(mIOPrefab, mBitsContainer).GetComponent <IOToggler> (); mIOTogglers[i].Init(mContainer.ParentScheme.Scheme, i, mContainer.BuildInfo.BuildString.Name, mContainer.BuildInfo.BuildString.IO); } (mBitsContainer as RectTransform).sizeDelta = mContainer.BuildInfo.Size; if (mContainer.BuildInfo.BuildString.Size > 0) { switch (mContainer.BuildInfo.BuildString.IO) { case IO.Input: mAddLink.gameObject.SetActive(true); mAddLink.onClick.AddListener(() => SchemeDesigner.Instance.AddLinkAsSource(mContainer)); break; case IO.Output: mAddLink.onClick.AddListener(() => SchemeDesigner.Instance.AddLinkAsTarget(mContainer)); break; } } SchemeDesigner.Instance.AddLinkStateChanged += OnAddLinkStateChanged; mRemoveButton.onClick.AddListener(() => SchemeDesigner.Instance.RemoveIOGroup(mContainer)); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.Drag; entry.callback.AddListener((data) => { OnDrag((PointerEventData)data); }); mEventTrigger.triggers.Add(entry); entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.BeginDrag; entry.callback.AddListener((data) => { OnBeginDrag((PointerEventData)data); }); mEventTrigger.triggers.Add(entry); }
public void AddLinkAsTarget(UIScheme.IOGroupContainer selfIOGroupContainer, bool complete = true) { mTargetContainerGroup = selfIOGroupContainer; if (AddLinkStateChanged != null) { AddLinkStateChanged.Invoke(false); } if (complete) { AddLinkAdv(); } }
public void ShowDialog(string title, UIScheme.IOGroupContainer mSourceContainerGroup, UIScheme.InnerContainer mSourceContainerInner, UIScheme.IOGroupContainer mTargetContainerGroup, UIScheme.InnerContainer mTargetContainerInner) { mTitle.text = title; mSourceStart.text = "0"; mTargetStart.text = "0"; if (mSourceContainerGroup != null) { mSourceGroupName.options = new List <Dropdown.OptionData>() { new Dropdown.OptionData(mSourceContainerGroup.BuildInfo.BuildString.Name) }; mSourceGroupName.interactable = false; mSourceCount.text = mSourceContainerGroup.BuildInfo.BuildString.Size.ToString(); } if (mSourceContainerInner != null) { var ioGroups = mSourceContainerInner.Scheme.IOGroups.Where((x) => x.Value.IO == IO.Output); mSourceGroupName.options = ioGroups.Select((x) => new Dropdown.OptionData(x.Key)).ToList(); if (ioGroups.Count() > 0) { mSourceCount.text = ioGroups.First().Value.Size.ToString(); } } if (mTargetContainerGroup != null) { mTargetGroupName.options = new List <Dropdown.OptionData>() { new Dropdown.OptionData(mTargetContainerGroup.BuildInfo.BuildString.Name) }; mTargetGroupName.interactable = false; mTargetCount.text = mTargetContainerGroup.BuildInfo.BuildString.Size.ToString(); } if (mTargetContainerInner != null) { var ioGroups = mTargetContainerInner.Scheme.IOGroups.Where((x) => x.Value.IO == IO.Input); mTargetGroupName.options = ioGroups.Select((x) => new Dropdown.OptionData(x.Key)).ToList(); if (ioGroups.Count() > 0) { mTargetCount.text = ioGroups.First().Value.Size.ToString(); } } gameObject.SetActive(true); }
private IEnumerator removeIOGroup(UIScheme.IOGroupContainer container) { var dialog = Instantiate(mConfirmDialogPrefab, mUICanvas).GetComponent <ConfirmDialog>(); dialog.ShowDialog("Удалить группу " + container.BuildInfo.BuildString.Name + "?", "Удалив группу, будут удалены все связанные с ней ссылки"); yield return(new WaitWhile(() => dialog.DialogResult == DialogResult.NotReady)); var dialogResult = dialog.DialogResult; dialog.Dispose(); if (dialogResult == DialogResult.Cancel) { yield break; } CurrentScheme.DeleteIOGroup(container); yield break; }
public void RemoveIOGroup(UIScheme.IOGroupContainer container) { StartCoroutine(removeIOGroup(container)); }