protected override void OnNodeAdded(Node node) { base.OnNodeAdded(node); MyNodeData data = node.Data as MyNodeData; if (data == null) { return; } // look at the node's Figure switch (data.Figure) { case NodeFigure.Input: case NodeFigure.Output: case NodeFigure.ManualOperation: { FrameworkElement leftport = node.FindPort("2", false); if (leftport != null) { SpotPanel.SetSpot(leftport, new Spot(0.05, 0.5, 1, 0)); } FrameworkElement rightport = node.FindPort("3", false); if (rightport != null) { SpotPanel.SetSpot(rightport, new Spot(0.95, 0.5, -1, 0)); } break; } default: break; } }
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Link link = value as Link; if (link != null && link.FromNode != null) { MyNodeData d = link.FromNode.Data as MyNodeData; if (d != null && d.Key.StartsWith("Conditional")) { return(Visibility.Visible); } } return(Visibility.Collapsed); }
public override bool IsValidLink(Node fromnode, FrameworkElement fromport, Node tonode, FrameworkElement toport) { if (!base.IsValidLink(fromnode, fromport, tonode, toport)) { return(false); } // don't allow a link directly from Start to End MyNodeData fromnodedata = fromnode.Data as MyNodeData; MyNodeData tonodedata = tonode.Data as MyNodeData; if (fromnodedata != null && fromnodedata.Category == "Start" && tonodedata != null && tonodedata.Category == "End") { return(false); } return(true); }