protected override void OnMouseUp(MouseButtonEventArgs e) { if (sourceItem != null) { ModelTreeViewModel vm = this.diagramDesigner.DataContext as ModelTreeViewModel; if (sourceItem.SelectedData is TreeNodeViewModel) { if ((sourceItem.SelectedData as TreeNodeViewModel).Element is DomainClass) { List <DomainClass> domainClassesSrc = new List <DomainClass>(); domainClassesSrc.Add((sourceItem.SelectedData as TreeNodeViewModel).Element as DomainClass); bool bDone = false; if (hitItem != null) { if (hitItem.SelectedData is TreeNodeViewModel) { if ((hitItem.SelectedData as TreeNodeViewModel).Element is DomainClass) { bDone = true; // reference or embedding? if (Keyboard.Modifiers == ModifierKeys.Shift) { ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); } else if (Keyboard.Modifiers == ModifierKeys.Control) { ModelTreeOperations.AddNewReferenceRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); } else { Forms.RelationshipTypeSelector dlg = new Forms.RelationshipTypeSelector(); if (dlg.ShowDialog() == true) { if (dlg.EmbeddedRelationshipSelected == true) { ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); } else if (dlg.EmbeddedRelationshipSelected == false) { ModelTreeOperations.AddNewReferenceRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); } } } } } } if (!bDone) { ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc); } } } } if (this.IsMouseCaptured) { this.ReleaseMouseCapture(); } AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this.diagramDesigner); if (adornerLayer != null) { adornerLayer.Remove(this); } }
protected override void OnMouseUp(MouseButtonEventArgs e) { if (sourceItem != null) { ModelTreeViewModel vm = this.diagramDesigner.DataContext as ModelTreeViewModel; if (sourceItem.SelectedData is TreeNodeViewModel) if ((sourceItem.SelectedData as TreeNodeViewModel).Element is DomainClass) { List<DomainClass> domainClassesSrc = new List<DomainClass>(); domainClassesSrc.Add((sourceItem.SelectedData as TreeNodeViewModel).Element as DomainClass); bool bDone = false; if (hitItem != null) if (hitItem.SelectedData is TreeNodeViewModel) if ((hitItem.SelectedData as TreeNodeViewModel).Element is DomainClass) { bDone = true; // reference or embedding? if( Keyboard.Modifiers == ModifierKeys.Shift ) ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); else if (Keyboard.Modifiers == ModifierKeys.Control) ModelTreeOperations.AddNewReferenceRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); else { Forms.RelationshipTypeSelector dlg = new Forms.RelationshipTypeSelector(); if (dlg.ShowDialog() == true) { if( dlg.EmbeddedRelationshipSelected == true ) ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); else if (dlg.EmbeddedRelationshipSelected == false) ModelTreeOperations.AddNewReferenceRelationship(domainClassesSrc, (hitItem.SelectedData as TreeNodeViewModel).Element as DomainClass); } } } if( !bDone ) ModelTreeOperations.AddNewEmbeddingRelationship(domainClassesSrc); } } if (this.IsMouseCaptured) this.ReleaseMouseCapture(); AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this.diagramDesigner); if (adornerLayer != null) { adornerLayer.Remove(this); } }