Exemplo n.º 1
0
 public RemoveLinkMenuItem Create(LinkControl link, NodeControl toNode)
 {
     BindOppositeNodeCaptionTextChangeNotifier(toNode);
     SetHeader(toNode.Caption.Text);
     link.RemoveAssociatedElements += Remove;
     this.link = link;
     return this;
 }
Exemplo n.º 2
0
 protected void BindOppositeNodeCaptionTextChangeNotifier(NodeControl toNode)
 {
     oppositeNodeCaptionTextChangeNotifier = new PropertyChangeNotifier(toNode.Caption, "Text");
     oppositeNodeCaptionTextChangeNotifier.ValueChanged +=
         delegate(object sender, EventArgs e)
         {
             oppositeNodeCaptionTextChangeHandler();
         };
 }
Exemplo n.º 3
0
 protected void AddLink(Point linkPosition, NodeControl nodeControl)
 {
     log.Debug("Now adding user link, first link control is: " + nodeControl.Caption.Text);
     var linkControl = new LinkControl().Create();
     linkControl.BindNode1(nodeControl);
     linkControl.BindPoint2MouseMove(Canvas);
     Canvas.Children.Add(linkControl.TheLine);
     new MouseDrop<NodeControl>().Create(Cursors.Pen,
         (Point linkPosition2, NodeControl nodeControl2) =>
             AddLinkFinal(linkControl, new Tuple<NodeControl, NodeControl>(nodeControl, nodeControl2)),
         () => AddLinkCancel(linkControl)
     ).Drop(Canvas);
 }
Exemplo n.º 4
0
 protected void UserAddItem(Point nodePosition, Canvas canvas)
 {
     var nodeControl = new NodeControl();
     if (nodeControl.UserRename(this))
     {
         canvas.Children.Add(nodeControl);
         Canvas.SetLeft(nodeControl, nodePosition.X);
         Canvas.SetTop(nodeControl, nodePosition.Y);
     }
 }
Exemplo n.º 5
0
 protected void TestGenerateLargeDocument(int count, int countOfLinks)
 {
     ClearContent();
     log.Debug(() => "Now generating document: count of nodes: " + count + "; count of links: " + countOfLinks);
     var nodes = new List<NodeControl>(count);
     var random = new Random();
     for (int i = 0; i < count; ++i)
     {
         //log.Debug(() => "Node #" + i + "...");
         var node = new NodeControl(i.ToString());
         nodes.Add(node);
         Canvas.Children.Add(node);
         node.UpdateLayout();
         Canvas.SetLeft(node, random.NextDouble() * (Canvas.Width - node.ActualWidth));
         Canvas.SetTop(node, random.NextDouble() * (Canvas.Height - node.ActualHeight));
     }
     for (int i = 0; i < countOfLinks; ++i)
     {
         //log.Debug(() => "Link #" + i + "...");
         var index1 = random.Next(count);
         var index2 = random.Next(count);
         if (index1 != index2)
         {
             var link = new LinkControl().Create();
             var node1 = nodes[index1];
             var node2 = nodes[index2];
             Canvas.Children.Add(link.TheLine);
             link.BindNode1(node1);
             link.BindNode2(node2);
         }
     }
 }
Exemplo n.º 6
0
 protected void WriteNode(XElement elements, NodeControl node)
 {
     var element = node.SaveToElement();
     node.SetValue(IdProperty, GetNewId(node));
     element.SetIdAttribute(GetExistingId(node));
     elements.Add(element);
 }
Exemplo n.º 7
0
 public static NodeControl Create(XElement element)
 {
     var result = new NodeControl();
     result.LoadFromElement(element);
     return result;
 }