Exemplo n.º 1
0
        private void ClearContain()
        {
            cnsDesignerContainer.Children.Clear();
            Actives.Clear();
            Rules.Clear();
            BOSystem.Name        = "";
            BOSystem.Description = "";
            BOObject.Name        = "";
            BOObject.Description = "";

            StateActive StartFlow = new StateActive();

            StartFlow.Name           = "StartFlow";
            StartFlow.bdrName.Width  = StartFlow.bdrName.Height;
            StartFlow.bdrName2.Width = StartFlow.bdrName2.Height;
            ToolTipService.SetToolTip(StartFlow, "开始流程");

            StartFlow.StateName.Text       = "开始";
            StartFlow.bdrName.Background   = new SolidColorBrush(Colors.Orange);
            StartFlow.bdrName.CornerRadius = new CornerRadius(40);

            StartFlow.bdrName2.CornerRadius = new CornerRadius(40);
            StartFlow.SetValue(Canvas.TopProperty, (double)50);
            StartFlow.SetValue(Canvas.LeftProperty, (double)400);
            if (!cnsDesignerContainer.Children.Contains(StartFlow))
            {
                cnsDesignerContainer.Children.Add(StartFlow);

                StartFlow.Container = this;
                Actives.Add(StartFlow);
            }

            StateActive EndFlow = new StateActive();

            EndFlow.Name            = "EndFlow";
            EndFlow.bdrName.Width   = StartFlow.bdrName.Width;;
            EndFlow.bdrName2.Height = StartFlow.bdrName2.Height;;
            ToolTipService.SetToolTip(EndFlow, "结束流程");
            EndFlow.StateName.Text = "结束";

            EndFlow.StateName.SetValue(Canvas.LeftProperty, (double)8);

            EndFlow.bdrName.Background   = new SolidColorBrush(Colors.Red);
            EndFlow.bdrName.CornerRadius = new CornerRadius(40);

            EndFlow.bdrName2.CornerRadius = new CornerRadius(40);

            EndFlow.SetValue(Canvas.TopProperty, (double)400);
            EndFlow.SetValue(Canvas.LeftProperty, (double)400);

            if (!cnsDesignerContainer.Children.Contains(EndFlow))
            {
                cnsDesignerContainer.Children.Add(EndFlow);

                EndFlow.Container = this;
                Actives.Add(EndFlow);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 设置状态位置
 /// </summary>
 /// <param name="Active"></param>
 public void SetPos(StateActive Active)//,string ActiveName,Point Pos)
 {
     for (int i = 0; i < Rules.Count; i++)
     {
         if (Rules[i].StrStartActive == Active.Name || Rules[i].StrEndActive == Active.Name)
         {
             SetRuleLinePos(Rules[i].Name);
         }
     }
 }
Exemplo n.º 3
0
 public void AddStateActive()
 {
     if (StateActiveSetS.ActiveName != "")
     {
         StateActive Flow = new StateActive();
         Flow.Name           = StateActiveSetS.ActiveName;
         Flow.StateName.Text = StateActiveSetS.ActiveName;
         Flow.SetValue(Canvas.TopProperty, (double)100);
         Flow.SetValue(Canvas.LeftProperty, (double)100);
         if (!cnsDesignerContainer.Children.Contains(Flow))
         {
             cnsDesignerContainer.Children.Add(Flow);
             Flow.Container = this;
             // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged);
         }
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// 设置规则线位置
        /// </summary>
        /// <param name="RuleName"></param>
        void SetRuleLinePos(string RuleName)//,string ActiveName,Point Pos)
        {
            RuleLine    class2      = FindName(RuleName) as RuleLine;
            StateActive StartActive = FindName(class2.StrStartActive) as StateActive;
            StateActive EndActive   = FindName(class2.StrEndActive) as StateActive;

            Double X1 = StartActive.ActualHeight + Convert.ToDouble(StartActive.GetValue(Canvas.TopProperty).ToString());
            Double Y1 = StartActive.ActualWidth / 2 + Convert.ToDouble(StartActive.GetValue(Canvas.LeftProperty).ToString());

            Double X2 = Convert.ToDouble(EndActive.GetValue(Canvas.TopProperty).ToString()) - X1;
            Double Y2 = Convert.ToDouble(EndActive.GetValue(Canvas.LeftProperty).ToString()) - Y1 + EndActive.ActualWidth / 2;

            class2.SetValue(Canvas.TopProperty, X1);
            class2.SetValue(Canvas.LeftProperty, Y1);

            class2.line.X2 = Y2;
            class2.line.Y2 = X2;
            class2.SetAngleByPoint(new Point(Y2, X2));
        }
Exemplo n.º 5
0
    private void Awake()
    {
        m_hActor = GetComponent<MadMaxActor>();
        m_hRigidbody = GetComponent<Rigidbody>();
        m_hLight = GetComponentInChildren<Light>();

        m_hBulb = new LightBulb(this);

        inactive = new StateInactive(this);
        active = new StateActive(this);
        explode = new StateExplode(this);

        inactive.Active = active;
        active.Inactive = inactive;
        active.Explode = explode;
        explode.Inactive = inactive;

        inactive.OnStateEnter();
        currentState = inactive;

        m_hBulb.Reset();
    }
 /// <summary>
 /// Populate values from the base palette.
 /// </summary>
 public void PopulateFromBase()
 {
     // Populate only the designated styles
     StateActive.PopulateFromBase(PaletteState.Normal);
     StateInactive.PopulateFromBase(PaletteState.Disabled);
 }
Exemplo n.º 7
0
        void State_browser_ReloadDataEvent()
        {
            if (d_StateActiveSetS == true && StateActiveSetS.ActiveName != "")
            {
                if (StateActiveSetS.optFlag == false)
                {
                    StateActive a = FindName(StateActiveSetS.ActiveName) as StateActive;
                    Actives.Remove(a);
                    cnsDesignerContainer.Children.Remove(a);

                    RuleLine b;
                    for (int i = 0; i < Rules.Count; i++)
                    {
                        if (Rules[i].StrStartActive == StateActiveSetS.ActiveName || Rules[i].StrEndActive == StateActiveSetS.ActiveName)
                        {
                            b = FindName(Rules[i].Name) as RuleLine;
                            Rules.Remove(b);
                            cnsDesignerContainer.Children.Remove(b);
                            --i;
                        }
                    }
                }
                else
                {
                    //检测是否已添加此状态
                    for (int i = 0; i < Actives.Count; i++)
                    {
                        if (Actives[i].Name == StateActiveSetS.ActiveName)
                        {
                            // MessageBox.Show("此状态已添加,不能添加相同的状态!");
                            //ComfirmWindow.ConfirmationBox(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("M00001"), Utility.GetResourceStr("CONFIRMBUTTON"));
                            ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("M00001"),
                                                           Utility.GetResourceStr("CONFIRM"), MessageIcon.Error);
                            return;
                        }
                    }

                    StateActive Flow = new StateActive();
                    Flow.Name = StateActiveSetS.ActiveName;

                    // 1s 冉龙军
                    //string tmpStateName = (StateList.Where(s => s.StateCode.ToString() == StateActiveSetS.ActiveName).ToList().First().StateName);
                    string tmpStateName = StateActiveSetS.Remark;
                    // 1e
                    string StateName = "";

                    for (int i = 0; i < tmpStateName.Length; i = i + 6)
                    {
                        if (tmpStateName.Length < i + 6)
                        {
                            StateName += (i == 0 ? tmpStateName : "\r\n" + tmpStateName.Substring(i));
                        }
                        else
                        {
                            StateName += (i == 0 ? tmpStateName.Substring(i, 6) : "\r\n" + tmpStateName.Substring(i, 6));
                        }
                    }

                    // StateName += (StateName == "" ? tmp : "\r\n" + tmp.Substring(StateName.Length));

                    Flow.StateName.Text = StateName;// (StateList.Where(s => s.StateCode.ToString() == StateActiveSetS.ActiveName).ToList().First().StateName);
                    Flow.SetValue(Canvas.TopProperty, (double)100);
                    Flow.SetValue(Canvas.LeftProperty, (double)100);
                    if (!cnsDesignerContainer.Children.Contains(Flow))
                    {
                        cnsDesignerContainer.Children.Add(Flow);
                        Flow.Container = this;
                        Actives.Add(Flow);
                        // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged);
                    }
                }
            }
        }
Exemplo n.º 8
0
        void SetLayout()
        {
            string Layout = this.FlowDefine;

            //XmlDocument doc = new XmlDocument();
            //doc.LoadXml(Layout);
            string qq;
            string WFBOSystemName = string.Empty;
            string WFBOObjectName = string.Empty;

            qq = "";
            XmlReader    XmlReader;
            StringReader bb = new StringReader(Layout);

            XmlReader = XmlReader.Create(bb);

            #region 遍历XML
            //while (XmlReader.Read())
            //{
            //    qq+="<li>节点类型:" + XmlReader.NodeType + "==<br>";
            //    switch (XmlReader.NodeType)
            //    {
            //        case XmlNodeType.XmlDeclaration:
            //            for (int i = 0; i < XmlReader.AttributeCount; i++)
            //            {
            //                XmlReader.MoveToAttribute(i);
            //                qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.Attribute:
            //            for (int i = 0; i < XmlReader.AttributeCount; i++)
            //            {
            //                XmlReader.MoveToAttribute(i);
            //                qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.CDATA:
            //            qq+="CDATA:" + XmlReader.Value + "&nbsp;";
            //            break;
            //        case XmlNodeType.Element:
            //            qq+="节点名称:" + XmlReader.LocalName + "<br>";
            //            for (int i = 0; i < XmlReader.AttributeCount; i++)
            //            {
            //                XmlReader.MoveToAttribute(i);
            //               qq+="属性:" + XmlReader.Name + "=" + XmlReader.Value + "&nbsp;";
            //            }
            //            break;
            //        case XmlNodeType.Comment:
            //            qq+="Comment:" + XmlReader.Value;
            //            break;
            //        case XmlNodeType.Whitespace:
            //            qq+="Whitespace:" + "&nbsp;";
            //            break;
            //        case XmlNodeType.ProcessingInstruction:
            //            qq+="ProcessingInstruction:" + XmlReader.Value;
            //            break;
            //        case XmlNodeType.Text:
            //            qq+="Text:" + XmlReader.Value;
            //            break;
            //    }
            // }

            #endregion

            XElement XElementS = XElement.Load(XmlReader);

            var flowSystem = from c in XElementS.Descendants("System")
                             select c;
            if (flowSystem != null)
            {
                foreach (var tmp in flowSystem)
                {
                    WFBOSystemName = tmp.Value;
                }
            }

            //BOSystem

            var a = from c in XElementS.Descendants("Activity")
                    select c;

            foreach (var tmp in a)
            {
                string stepname = tmp.Attribute("Name").Value;
                if (stepname != "StartFlow" && stepname != "EndFlow")
                {
                    StateActive Flow = new StateActive();
                    Flow.MinWidth = 60;
                    Flow.Name     = stepname;
                    // 1s 冉龙军
                    //string tmpStateName = (StateList.Where(s => s.StateCode.ToString() == stepname).ToList().First().StateName);
                    string tmpStateName = tmp.Attribute("Remark").Value;
                    // 1e
                    string StateName = "";

                    for (int i = 0; i < tmpStateName.Length; i = i + 6)
                    {
                        if (tmpStateName.Length < i + 6)
                        {
                            StateName += (i == 0 ? tmpStateName : "\r\n" + tmpStateName.Substring(i));
                        }
                        else
                        {
                            StateName += (i == 0 ? tmpStateName.Substring(i, 6) : "\r\n" + tmpStateName.Substring(i, 6));
                        }
                    }

                    Flow.StateName.Text = StateName;// (StateList.Where(s => s.StateCode.ToString() == stepname).ToList().First().StateName);

                    #region 加载KPI点的信息
                    if (KPIPointList != null && KPIPointList.Count != 0)
                    {
                        foreach (T_HR_KPIPOINT point in KPIPointList)
                        {
                            if (stepname.Equals(point.STEPID))
                            {
                                Flow.StateName.Text += "(KPI点)";
                            }
                        }
                    }
                    #endregion 加载KPI点的信息
                    Flow.SetValue(Canvas.TopProperty, Convert.ToDouble(tmp.Attribute("X").Value));
                    Flow.SetValue(Canvas.LeftProperty, Convert.ToDouble(tmp.Attribute("Y").Value));
                    if (!cnsDesignerContainer.Children.Contains(Flow))
                    {
                        // 1s 冉龙军 暂不处理错误
                        //cnsDesignerContainer.Children.Add(Flow);
                        try
                        {
                            cnsDesignerContainer.Children.Add(Flow);
                        }
                        catch (Exception ex)
                        {
                        }
                        // 1e
                        Flow.Container = this;
                        Actives.Add(Flow);
                    }
                }
            }

            var b = from c in XElementS.Descendants("Rule")
                    select c;

            foreach (var tmp in b)
            {
                RuleLine RuleLineS = new RuleLine();
                RuleLineS.Name = tmp.Attribute("Name").Value;

                RuleLineS.StrStartActive = tmp.Attribute("StrStartActive").Value;
                RuleLineS.StrEndActive   = tmp.Attribute("StrEndActive").Value;
                RuleLineS.Container      = this;

                if (tmp.Element("Conditions") != null)
                {
                    RuleConditions newRuleCondition = new RuleConditions();
                    newRuleCondition.Name            = tmp.Element("Conditions").Attribute("Name").Value;
                    newRuleCondition.ConditionObject = tmp.Element("Conditions").Attribute("Object").Value;
                    newRuleCondition.CodiCombMode    = tmp.Element("Conditions").Attribute("CodiCombMode").Value;

                    if (!string.IsNullOrEmpty(newRuleCondition.ConditionObject))
                    {
                        WFBOObjectName = newRuleCondition.ConditionObject;
                    }

                    if (tmp.Element("Conditions").Elements("Condition").Count() > 0)
                    {
                        var e = from f in tmp.Element("Conditions").Descendants("Condition")
                                select f;

                        foreach (var tmp2 in e)
                        {
                            CompareCondition newCD = new CompareCondition();
                            newCD.Name         = tmp2.Attribute("Name").Value;
                            newCD.Description  = tmp2.Attribute("Description").Value;
                            newCD.CompAttr     = tmp2.Attribute("CompAttr").Value;
                            newCD.Operate      = backEscapeXMLChar(tmp2.Attribute("Operate").Value);
                            newCD.DataType     = tmp2.Attribute("DataType").Value;
                            newCD.CompareValue = tmp2.Attribute("CompareValue").Value;
                            newRuleCondition.subCondition.Add(newCD);
                        }
                    }

                    RuleLineS.ruleCoditions = newRuleCondition;
                }

                if (!cnsDesignerContainer.Children.Contains(RuleLineS))
                {
                    // 1s 冉龙军 暂不处理错误
                    //cnsDesignerContainer.Children.Add(RuleLineS);
                    try
                    {
                        cnsDesignerContainer.Children.Add(RuleLineS);
                    }
                    catch (Exception ex)
                    {
                    }
                    // 1e
                    SetRuleLinePos(RuleLineS.Name);
                    Rules.Add(RuleLineS);
                    // a.ActivityChanged += new ActivityChangeDelegate(OnActivityChanged);
                }
                // MessageBox.Show(tmp.Attribute("Name").Value);
            }
        }