Exemplo n.º 1
0
        async System.Threading.Tasks.Task OpenGraph()
        {
            var param  = CSParam as MethodInvoke_DelegateControlConstructionParams;
            var assist = this.HostNodesContainer.HostControl as Macross.NodesControlAssist;
            var data   = new CodeGenerateSystem.Base.SubNodesContainerData()
            {
                ID    = Id,
                Title = HostNodesContainer.TitleString + "/" + param.ParamInfo.ParamName + ":" + this.Id.ToString(),
            };

            mLinkedNodesContainer = await assist.ShowSubNodesContainer(data);

            if (data.IsCreated)
            {
                await InitializeLinkedNodesContainer();
            }
            else
            {
                await ResetNodesMethodInfo();
            }
        }
Exemplo n.º 2
0
        async System.Threading.Tasks.Task InitializeLinkedNodesContainer()
        {
            var param  = CSParam as MethodInvoke_DelegateControlConstructionParams;
            var assist = this.HostNodesContainer.HostControl as Macross.NodesControlAssist;

            if (mLinkedNodesContainer == null)
            {
                var data = new CodeGenerateSystem.Base.SubNodesContainerData()
                {
                    ID    = Id,
                    Title = HostNodesContainer.TitleString + "/" + param.ParamInfo.ParamName + ":" + this.Id.ToString(),
                };
                mLinkedNodesContainer = await assist.GetSubNodesContainer(data);

                if (!data.IsCreated)
                {
                    return;
                }
            }
            // 读取graph
            var tempFile      = assist.HostControl.GetGraphFileName(assist.LinkedCategoryItemName);
            var linkXndHolder = await EngineNS.IO.XndHolder.LoadXND(tempFile, EngineNS.Thread.Async.EAsyncTarget.AsyncEditor);

            bool bLoaded = false;

            if (linkXndHolder != null)
            {
                var linkNode = linkXndHolder.Node.FindNode("SubLinks");
                var idStr    = Id.ToString();
                foreach (var node in linkNode.GetNodes())
                {
                    if (node.GetName() == idStr)
                    {
                        await mLinkedNodesContainer.Load(node);

                        bLoaded = true;
                        break;
                    }
                }
            }
            if (bLoaded)
            {
                await ResetNodesMethodInfo();
            }
            else
            {
                InitDelegateMethodInfo();

                var csParam = new CodeDomNode.MethodCustom.MethodCustomConstructParam()
                {
                    CSType             = param.CSType,
                    HostNodesContainer = mLinkedNodesContainer,
                    ConstructParam     = "",
                    MethodInfo         = param.DelegateMethodInfo,
                    IsShowProperty     = false,
                };
                var node = mLinkedNodesContainer.AddOrigionNode(typeof(CodeDomNode.MethodCustom), csParam, 0, 0) as CodeDomNode.MethodCustom;
                node.IsDeleteable = false;


                var retCSParam = new CodeDomNode.ReturnCustom.ReturnCustomConstructParam()
                {
                    CSType             = param.CSType,
                    HostNodesContainer = mLinkedNodesContainer,
                    ConstructParam     = "",
                    MethodInfo         = param.DelegateMethodInfo,
                    ShowPropertyType   = ReturnCustom.ReturnCustomConstructParam.enShowPropertyType.ReturnValue,
                };
                var retNode = mLinkedNodesContainer.AddOrigionNode(typeof(CodeDomNode.ReturnCustom), retCSParam, 300, 0) as CodeDomNode.ReturnCustom;
                retNode.IsDeleteable = false;
            }
        }