コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        public string ExportLocation()
        {
            ArrowLineInfo ail = new ArrowLineInfo();

            ail.Type   = this.GetType().Name;
            ail.Name   = this.Name;
            ail.Guid   = this.LineGuid;
            ail.StartX = StartPoint.X;
            ail.StartY = StartPoint.Y;
            ail.EndX   = EndPoint.X;
            ail.EndY   = EndPoint.Y;
            var aa = ail.ToXElement("ArrowLine");

            return(aa.ToString());
        }
コード例 #2
0
        /// <summary>
        /// 导入数据
        /// </summary>
        /// <param name="root"></param>
        void ImportWorkFlow(XElement root)
        {
            if (null == root)
            {
                return;
            }
            _OldWorkFlowStr = root.ToString();
            btnClear_Click(null, null);
            this.print.Children.Add(_Cm);
            this.print.Children.Add(_txtActivityContent);
            var controls = root.Element("Controls");

            Index = controls.GetAttributeValue("Index").ConvertTo <Int32>();
            var activitys  = controls.Elements("Activity");
            var arrowlines = controls.Elements("ArrowLine");

            foreach (var v in arrowlines)
            {
                ArrowLineInfo ali = v.ToModel <ArrowLineInfo>();
                if (null == ali)
                {
                    continue;
                }
                ArrowLine al = new ArrowLine(ali.StartPoint, ali.EndPoint);
                al.Name     = ali.Name;
                al.LineGuid = ali.Guid;
                CreateArrowLine(al);
            }
            foreach (var v in activitys)
            {
                ActivityInfo ai = v.ToModel <ActivityInfo>();
                if (null == ai)
                {
                    continue;
                }

                var config = ParseActivityConfig.GetActivityConfig(ai.Type);
                if (null == config)
                {
                    continue;
                }
                var ba = Wrapper.CreateControl <XtnBaseActivity>(config.AssemblyQualifiedName);
                ba.Name         = ai.Name;
                ba.Height       = ai.Height;
                ba.Width        = ai.Width;
                ba.ActivityGUID = ai.Guid;
                ba.LabelContent = ai.Content.IsNullOrEmpty() ? config.Description : ai.Content;
                ba.CurrentLeftButtonDownPoint = ai.CurrentLeftButtonDownPoint;
                ba.CurrentEnterPoint          = ai.CurrentEnterPoint;
                CreateActivity(ba);
                Canvas.SetTop(ba, ai.Top);
                Canvas.SetLeft(ba, ai.Left);
            }

            //-->规则
            var rules        = root.Element("Relationship");
            var rulesControl = rules.Elements("Control");

            foreach (var rule in rulesControl)
            {
                string          _r_name = rule.GetAttributeValue("Name");
                XtnBaseActivity iact    = GetControlByName <XtnBaseActivity>(_r_name);
                if (null == iact)
                {
                    continue;
                }
                var caps = rule.GetAttributeValue("Cap");
                if (!caps.IsNullOrEmpty())
                {
                    var capArray = caps.Split('|');
                    foreach (var cap in capArray)
                    {
                        ArrowLine _al = GetControlByName <ArrowLine>(cap);
                        if (null == _al)
                        {
                            continue;
                        }
                        _al.ArrowFootControl = iact;
                        iact.DictArrowCapPoint.Add(_al.Name, _al);
                    }
                }
                var foots = rule.GetAttributeValue("Foot");
                if (!foots.IsNullOrEmpty())
                {
                    var footArray = foots.Split('|');
                    foreach (var foot in footArray)
                    {
                        ArrowLine _al = GetControlByName <ArrowLine>(foot);
                        if (null == _al)
                        {
                            continue;
                        }
                        _al.ArrowCapControl = iact;
                        iact.DictArrowFootPoint.Add(_al.CtrName, _al);
                    }
                }
            }
        }