예제 #1
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.nodeCtrl = ((VisLab.WPF.NodeControl)(target));
                return;

            case 4:
                this.border = ((System.Windows.Controls.Border)(target));

            #line 303 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
                this.border.MouseLeave += new System.Windows.Input.MouseEventHandler(this.border_MouseLeave);

            #line default
            #line hidden
                return;

            case 5:
                this.expander = ((System.Windows.Controls.Expander)(target));

            #line 305 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
                this.expander.Collapsed += new System.Windows.RoutedEventHandler(this.expander_Collapsed);

            #line default
            #line hidden

            #line 305 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
                this.expander.Expanded += new System.Windows.RoutedEventHandler(this.expander_Expanded);

            #line default
            #line hidden
                return;

            case 6:
                this.grid2 = ((System.Windows.Controls.Grid)(target));
                return;

            case 7:
                this.lbl1 = ((System.Windows.Controls.Label)(target));
                return;

            case 8:
                this.lbl2 = ((System.Windows.Controls.Label)(target));
                return;
            }
            this._contentLoaded = true;
        }
예제 #2
0
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     this.nodeCtrl = ((VisLab.WPF.NodeControl)(target));
     return;
     case 4:
     this.border = ((System.Windows.Controls.Border)(target));
     
     #line 303 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
     this.border.MouseLeave += new System.Windows.Input.MouseEventHandler(this.border_MouseLeave);
     
     #line default
     #line hidden
     return;
     case 5:
     this.expander = ((System.Windows.Controls.Expander)(target));
     
     #line 305 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
     this.expander.Collapsed += new System.Windows.RoutedEventHandler(this.expander_Collapsed);
     
     #line default
     #line hidden
     
     #line 305 "..\..\..\..\..\WPF\Controls\NodeControl.xaml"
     this.expander.Expanded += new System.Windows.RoutedEventHandler(this.expander_Expanded);
     
     #line default
     #line hidden
     return;
     case 6:
     this.grid2 = ((System.Windows.Controls.Grid)(target));
     return;
     case 7:
     this.lbl1 = ((System.Windows.Controls.Label)(target));
     return;
     case 8:
     this.lbl2 = ((System.Windows.Controls.Label)(target));
     return;
     }
     this._contentLoaded = true;
 }
예제 #3
0
        public static void DrawTopDown(Canvas canvas,
            ExperimentsTree.ExperimentsTreeNode node, 
            Point point, Experiment currentExp)
        {
            if (lastExperimentNumber != currentExp.Number)
            {
                dict = Experiment.GetDict();
                lastExperimentNumber = currentExp.Number;
            }

            if (node.DescendantsCount > maxDescendantsCount) maxDescendantsCount = node.DescendantsCount;

            var nodeCtrl = new NodeControl();
            nodeCtrl.Tag = node;
            nodeCtrl.Header = string.Format("Exp. Nr.{0}", dict[node.Id].Number);
            nodeCtrl.Counter = node.ChildsCount;
            nodeCtrl.lbl1.Content = "Id: " + node.Id.ToString();
            nodeCtrl.lbl2.Content = "Descendants Count: " + node.DescendantsCount.ToString();
            nodeCtrl.border.Background = GradientBraker.Brake(Colors.AntiqueWhite, Colors.Blue, maxDescendantsCount + 1).ToArray()[node.DescendantsCount];
            nodeCtrl.IsSelected = true;
            canvas.Children.Add(nodeCtrl);
            Canvas.SetTop(nodeCtrl, point.Y);
            Canvas.SetLeft(nodeCtrl, point.X);
            Canvas.SetZIndex(nodeCtrl, 100);

            // calculate coordinates
            double trainLength = (node.ChildsCount - 1) * l;
            double startX = point.X - trainLength / 2;
            double startY = h * (node.Level + 1);

            foreach (var chld in node.ChildNodes)
            {
                if (chld.IsOpen)
                {
                    DrawTopDown(canvas, chld, new Point(startX, startY), dict[chld.Id]);
                }
                else
                {
                    var nodeCtrl2 = new NodeControl();
                    nodeCtrl2.Header = string.Format("Exp. Nr.{0}", dict[chld.Id].Number);
                    nodeCtrl2.Tag = chld;
                    nodeCtrl2.Counter = chld.ChildsCount;
                    nodeCtrl2.lbl1.Content = "Id: " + chld.Id.ToString();
                    nodeCtrl2.lbl2.Content = "Descendants Count: " + chld.DescendantsCount.ToString();
                    nodeCtrl2.IsSelected = false;
                    nodeCtrl2.border.Background = GradientBraker.Brake(Colors.AntiqueWhite, Colors.Blue, maxDescendantsCount + 1).ToArray()[chld.DescendantsCount];
                    canvas.Children.Add(nodeCtrl2);
                    Canvas.SetTop(nodeCtrl2, startY);
                    Canvas.SetLeft(nodeCtrl2, startX);
                    Canvas.SetZIndex(nodeCtrl2, 100);
                }

                var line = new Line();
                if (!chld.IsOpen)
                {
                    line.Stroke = Brushes.Black;
                    line.StrokeThickness = 0.1;
                    line.StrokeDashArray = new DoubleCollection(new double[] { 70, 35 });
                }
                else
                {
                    line.Stroke = Brushes.Gold;
                    line.StrokeThickness = 1;
                }
                
                line.X1 = point.X + l/1.39;
                line.Y1 = point.Y + w/2;
                line.X2 = startX + l/1.39;
                line.Y2 = startY + w / 2;
                canvas.Children.Add(line);
                Canvas.SetZIndex(line, 99);

                startX += l;
            }
        }