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); }
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."); } }