コード例 #1
0
        private bool ArrangeProperties(ModelChildStateObject SinkconnObj, ModelParentStateObject SourceConnObj, DockPanel Sourcepnl, DockPanel Sinkpnl)
        {
            bool Retval = false;

            List <ModelCanvasStateObject> TransactionList = new List <ModelCanvasStateObject>();

            TransactionList = this.designerCanvas.TransactionList;
            Type ClassType = Type.GetType("ATMDesigner.UI.States.State" + Sourcepnl.Tag.ToString());

            if (!TransactionList.FindAll(x => x.Id == Sourcepnl.Uid).Exists(x => x.TransactionName == designerCanvas.CurrentTransactionName))
            {
                MessageBox.Show("Bağlantıyı doğru şekilde yapınız.!");
                Retval = false;
                return(Retval);
            }

            PropertyGrid SelectedPgrid = TransactionList.FindAll(x => x.Id == Sourcepnl.Uid).Find(x => x.TransactionName == designerCanvas.CurrentTransactionName).PropertyGrid;
            Object       PSelectedObj  = SelectedPgrid.SelectedObject;
            PropertyInfo Property      = ClassType.GetProperty(SourceConnObj.PropertyName.ToString());
            object       PropertyValue = Property.GetValue(PSelectedObj);

            if (Property.GetValue(PSelectedObj).ToString() != "255")
            {
                MessageBox.Show("Bağlantıyı doğru şekilde yapınız.!");
                Retval = false;
                return(Retval);
            }

            Property.SetValue(PSelectedObj, Sinkpnl.Uid, null);
            this.designerCanvas.TransactionList.FindAll(x => x.Id == Sourcepnl.Uid).Find(x => x.TransactionName == designerCanvas.CurrentTransactionName).PropertyGrid.SelectedObject = PSelectedObj;


            //
            //Pointer state bağlanılan stateler için(Transaction arası geçiş)
            //
            if (Sinkpnl.Tag.ToString() == "P")
            {
                //yeni
                PointerStateElements elements = new PointerStateElements();
                StateP pointerstate           = new StateP();
                elements.SourceStateNumber  = Sourcepnl.Uid.ToString();
                elements.SourceStateType    = Sourcepnl.Tag.ToString();
                elements.SourcePropertyName = SourceConnObj.PropertyName;
                if (!TransactionList.FindAll(x => x.Id == Sinkpnl.Uid).Exists(x => x.TransactionName == designerCanvas.CurrentTransactionName))
                {
                    MessageBox.Show("Bağlantıyı doğru şekilde yapınız.!");
                    Retval = false;
                    return(Retval);
                }

                Object PointerObj = TransactionList.FindAll(x => x.Id == Sinkpnl.Uid).Find(x => x.TransactionName == designerCanvas.CurrentTransactionName).PropertyGrid.SelectedObject;
                pointerstate = (StateP)PointerObj;

                Property.SetValue(PSelectedObj, pointerstate.NextStateNumber, null);
                this.designerCanvas.TransactionList.FindAll(x => x.Id == Sourcepnl.Uid).Find(x => x.TransactionName == designerCanvas.CurrentTransactionName).PropertyGrid.SelectedObject = PSelectedObj;


                pointerstate.SourceStatesList.Add(elements);

                this.designerCanvas.TransactionList.FindAll(x => x.Id == Sinkpnl.Uid).Find(x => x.TransactionName == designerCanvas.CurrentTransactionName).PropertyGrid.SelectedObject = pointerstate;
            }

            foreach (var item in TransactionList)
            {
                if (item.Id == SourceConnObj.ParentId)
                {
                    item.ChildStateList.Add(SinkconnObj);
                }
                else if (item.Id == SinkconnObj.ChildId)
                {
                    item.ParentStateList.Add(SourceConnObj);
                }
            }
            this.designerCanvas.TransactionList = TransactionList;
            Retval = true;

            return(Retval);
        }
コード例 #2
0
        public void GoTo_NextState_Trans(object sender, ExecutedRoutedEventArgs e)
        {
            try
            {
                log.Info("GoTo_NextState_Trans() Start.!");

                var Selection = TransactionDiagram.SelectionService.CurrentSelection;
                if (Selection.Count != 1)
                {
                    propertyGrid.SelectedObject     = null;
                    propertyGrid.SelectedObjectName = "";
                    return;
                }

                ViewModelDesignerItem Ditem = new ViewModelDesignerItem();
                foreach (var slc in Selection)
                {
                    if (slc.GetType().Name.ToString() != "ViewModelDesignerItem")
                    {
                        return;
                    }
                    Ditem = (ViewModelDesignerItem)slc;
                }

                DockPanel Dpnl = (DockPanel)Ditem.Content;
                if (Dpnl.Tag.ToString() != "P")
                {
                    log.Warn("GoTo_NextState_Trans(), Sadece Pointer state Go To özelliğne Sahiptir. State:" + Dpnl.Tag.ToString());
                    return;
                }

                StateP pState = new StateP();
                pState = (StateP)this.TransactionDiagram.TransactionList.FindAll(x => x.TransactionName == this.TransactionDiagram.CurrentTransactionName)
                         .Find(x => x.Id == Dpnl.Uid).PropertyGrid.SelectedObject;
                if (pState.NextStateNumber == "255")
                {
                    log.Warn("GoTo_NextState_Trans(), NextStateNumber 255'ten farklı olmalı pState.NextStateNumber:" + pState.NextStateNumber);
                    return;
                }

                PointerStateTransaction PointerTrans = new PointerStateTransaction(this.TransactionDiagram.TransactionList, pState.NextStateNumber);
                if (PointerTrans.ShowDialog() == true)
                {
                    string TransactionName = PointerTrans.TransactionName;
                    string BrandId         = PointerTrans.BrandId;


                    string ExTransactionName = this.TransactionDiagram.CurrentTransactionName;
                    this.TransactionDiagram.CurrentTransactionName = TransactionName;
                    if (!string.IsNullOrEmpty(ExTransactionName))
                    {
                        this.TransactionDiagram.Open_Executed(false, ExTransactionName);
                    }

                    this.TransactionDiagram.CurrentBrandId = BrandId;
                    propertyGrid.SelectedObject            = null;
                    propertyGrid.SelectedObjectName        = "";
                    TransDiagramName.Header  = TransactionName;
                    ExpanderDItem.IsExpanded = IsTransactionSelected();
                }
            }
            catch (Exception ex)
            {
                log.Error("GoTo_NextState_Trans() Error ! " + ex.Message);
                MessageBox.Show("Beklenmedik bir Hata Oluştu.!, Tekrar Deneyiniz.");
            }
        }