private void DelayBindingForObserved(Object sender, DiagramEventArgs e) { Diagram observed = sender as Diagram; if (observed != null) { observed.TemplateApplied -= DelayBindingForObserved; BindToDiagram(observed); } }
// event handler pro validaci myší vytvořených linků jakožto povolených vztahů z UPMM private void diagram_LinkDrawn(object sender, Northwoods.GoXam.DiagramEventArgs e) { Link link = (e.Part as Link); ClassDiagramLinkData linkData = link.Data as ClassDiagramLinkData; ClassDiagramNodeData fromData = link.FromData as ClassDiagramNodeData; ClassDiagramNodeData toData = link.ToData as ClassDiagramNodeData; var isValid = CheckLink(fromData, toData, linkData, category: SelectedLinkType); if (!isValid) { (diagram.LinksSource as ObservableCollection <ClassDiagramLinkData>).Remove(linkData); } }
// event handler pro vkládání uzlu private void diagram_ExternalObjectsDropped(object sender, Northwoods.GoXam.DiagramEventArgs e) { ClassDiagramNodeData data = (sender as Diagram).SelectedNode.Data as ClassDiagramNodeData; string[] categories = { "Class" }; if (categories.Contains(data.Category) && !AllowDuplicateNodes) { if ((sender as Diagram).Nodes.Count(x => (x.Data as ClassDiagramNodeData).IRI == data.IRI && (x.Data as ClassDiagramNodeData).Category == data.Category) > 1) { diagram.Model.RemoveNode(data); } } }
private void diagram_LinkRelinked(object sender, Northwoods.GoXam.DiagramEventArgs e) { Link link = (e.Part as Link); UseCaseDiagramLinkData linkData = link.Data as UseCaseDiagramLinkData; UseCaseDiagramNodeData fromData = link.FromData as UseCaseDiagramNodeData; UseCaseDiagramNodeData toData = link.ToData as UseCaseDiagramNodeData; var isValid = CheckLink(fromData, toData, linkData, linkData.Category); if (!isValid) { (diagram.LinksSource as ObservableCollection <UseCaseDiagramLinkData>).Remove(linkData); } }
// event handler pro vkládání uzlu private void diagram_ExternalObjectsDropped(object sender, Northwoods.GoXam.DiagramEventArgs e) { UseCaseDiagramNodeData data = null; if ((sender as Diagram).SelectedNode == null) { data = (sender as Diagram).SelectedGroup.Data as UseCaseDiagramNodeData; } else { data = (sender as Diagram).SelectedNode.Data as UseCaseDiagramNodeData; } string[] categories = { Constants.UML_UCD_ACTOR, Constants.UML_UCD_SYSTEM, Constants.UML_UCD_NOTE, Constants.UML_UCD_USE_CASE, Constants.UML_UCD_EDITABLE_NOTE }; if (categories.Contains(data.Category) && !AllowDuplicateNodes) { if ((sender as Diagram).Nodes.Count(x => (x.Data as UseCaseDiagramNodeData).IRI == data.IRI && (x.Data as UseCaseDiagramNodeData).Category == data.Category) > 1) { diagram.Model.RemoveNode(data); } } }
// return true if the DiagramEventArgs.Handled was true after calling Diagram.RaiseEvent internal bool RaiseEvent(int evt) { if (this.Diagram != null) { DiagramEventArgs e = new DiagramEventArgs(); e.RoutedEvent = evt; this.Diagram.RaiseEvent(e); return e.Handled; } return false; }
private void UpdateRoutes(object sender, DiagramEventArgs e) { this.mainDiagram.LayoutCompleted -= UpdateRoutes; foreach (Link link in mainDiagram.Links) { ActivityLink linkData = link.Data as ActivityLink; if (linkData != null && linkData.Points != null && linkData.Points.Count() > 1) { link.Route.Points = (IList<Point>)linkData.Points; } } mainDiagram.PartManager.UpdatesRouteDataPoints = true; }
private void mainDiagram_TemplateApplied(object sender, DiagramEventArgs e) { var bind = new System.Windows.Data.Binding("Scale"); bind.Source = mainDiagram.Panel; bind.Mode = System.Windows.Data.BindingMode.TwoWay; zoomSlider.SetBinding(Slider.ValueProperty, bind); }