コード例 #1
0
ファイル: dynWatch.cs プロジェクト: CSharpDev/Dynamo
 public void ProcessNode(object value, WatchNode node)
 {
     foreach (var handler in handlers.Where(x => x.AcceptsValue(value)))
     {
         handler.ProcessNode(value, node);
     }
 }
コード例 #2
0
ファイル: UIPartials.cs プロジェクト: seannguyen/Dynamo
        public override void SetupCustomUIElements(object ui)
        {
            var nodeUI = ui as dynNodeView;

            watchTree = new WatchTree();

            nodeUI.grid.Children.Add(watchTree);
            watchTree.SetValue(Grid.RowProperty, 2);
            watchTree.SetValue(Grid.ColumnSpanProperty, 3);
            watchTree.Margin = new Thickness(5, 0, 5, 5);

            if (Root == null)
            {
                Root = new WatchNode();
            }
            watchTree.DataContext = Root;

            this.RequestBindingUnhook += new EventHandler(delegate
            {
                BindingOperations.ClearAllBindings(watchTree.treeView1);
            });

            this.RequestBindingRehook += new EventHandler(delegate
            {
                var sourceBinding = new Binding("Children")
                {
                    Mode   = BindingMode.TwoWay,
                    Source = Root,
                };
                watchTree.treeView1.SetBinding(ItemsControl.ItemsSourceProperty, sourceBinding);
            });
        }
コード例 #3
0
ファイル: dynWatch.cs プロジェクト: CSharpDev/Dynamo
        WatchNode Process(Value eIn, ref string content, string prefix, int count, bool isListMember = false)
        {
            content += prefix + string.Format("[{0}]:", count.ToString());

            WatchNode node = null;

            if (eIn.IsContainer)
            {
                if ((eIn as Value.Container).Item != null)
                {
                    content += (eIn as Value.Container).Item.ToString();

                    node = new WatchNode((eIn as Value.Container).Item.ToString(), isListMember, count);

                    handlerManager.ProcessNode((eIn as Value.Container).Item, node);

                    //node.Link = id;
                }
            }
            else if (eIn.IsFunction)
            {
                content += eIn.ToString() + "\n";
                node     = new WatchNode("<function>", isListMember, count);
            }
            else if (eIn.IsList)
            {
                content += "List\n";

                string newPrefix = prefix + "\t";

                var list = (eIn as Value.List).Item;

                node = new WatchNode(list.IsEmpty ? "Empty List" : "List", isListMember, count);

                foreach (var e in list.Select((x, i) => new { Element = x, Index = i }))
                {
                    node.Children.Add(Process(e.Element, ref content, newPrefix, e.Index, true));
                }
            }
            else if (eIn.IsNumber)
            {
                content += (eIn as Value.Number).Item.ToString() + "\n";
                node     = new WatchNode((eIn as Value.Number).Item.ToString(), isListMember, count);
            }
            else if (eIn.IsString)
            {
                content += (eIn as Value.String).Item.ToString() + "\n";
                node     = new WatchNode((eIn as Value.String).Item.ToString(), isListMember, count);
            }
            else if (eIn.IsSymbol)
            {
                content += (eIn as Value.Symbol).Item.ToString() + "\n";
                node     = new WatchNode((eIn as Value.Symbol).Item.ToString(), isListMember, count);
            }

            return(node);
        }