public void SetUp()
 {
     nextProvider   = new MockGroupingProvider();
     sourceProvider = new MockGroupingProvider();
     group          = new IssueGroup(nextProvider, "sut");
     node           = group;
     group.EnableProcessing();
 }
        public void DoesNotCallChildAddedEventHandlersIfNotEnabled()
        {
            var            disabledGroup = new IssueGroup(null, "disabledNode");
            IIssueTreeNode disabledNode  = disabledGroup;

            nextProvider.Group = CreateSecondaryGroup();

            disabledNode.ChildAdded += Forbidden <IssueTreeNodeEventArgs> ("node.ChildAdded");
            disabledGroup.AddIssue(new IssueSummary());
        }
Example #3
0
        public CodeIssuePadControl()
        {
            var buttonRow = new HBox();

            runButton.Clicked += StartAnalyzation;
            buttonRow.PackStart(runButton);

            cancelButton.Clicked  += StopAnalyzation;
            cancelButton.Sensitive = false;
            buttonRow.PackStart(cancelButton);

            var groupingProvider = new CategoryGroupingProvider {
                Next = new ProviderGroupingProvider()
            };

            rootGroup = new IssueGroup(groupingProvider, "root group");
            var groupingProviderControl = new GroupingProviderChainControl(rootGroup, groupingProviders);

            buttonRow.PackStart(groupingProviderControl);

            PackStart(buttonRow);

            store               = new TreeStore(textField, nodeField);
            view.DataSource     = store;
            view.HeadersVisible = false;
            view.Columns.Add("Name", textField);
            view.SelectionMode = SelectionMode.Multiple;

            view.RowActivated   += OnRowActivated;
            view.RowExpanding   += OnRowExpanding;
            view.ButtonPressed  += HandleButtonPressed;
            view.ButtonReleased += HandleButtonReleased;
            PackStart(view, true);

            IIssueTreeNode node = rootGroup;

            node.ChildrenInvalidated += (sender, group) => {
                Application.Invoke(delegate {
                    ClearSiblingNodes(store.GetFirstNode());
                    store.Clear();
                    SyncStateToUi(runner.State);
                    foreach (var child in ((IIssueTreeNode)rootGroup).Children)
                    {
                        var navigator = store.AddNode();
                        SetNode(navigator, child);
                        SyncNode(navigator);
                    }
                });
            };
            node.ChildAdded += HandleRootChildAdded;

            runner.IssueSink             = rootGroup;
            runner.AnalysisStateChanged += HandleAnalysisStateChanged;
        }
        public void LeavesFilteredCorrectly()
        {
            var            leafGroup = new IssueGroup(NullGroupingProvider.Instance, "sut");
            IIssueTreeNode leafNode  = leafGroup;
            var            issue     = new IssueSummary();

            leafGroup.AddIssue(issue);

            var children = leafNode.Children;

            Assert.That(children.Contains(issue));
            Assert.AreEqual(1, children.Count, "The group contained too many issues.");
        }
        public void NoEventsCalledForIssuesAddedBeforeProcessingEnabled()
        {
            var            localGroup = new IssueGroup(null, "sut");
            IIssueTreeNode localNode  = localGroup;

            localNode.ChildAdded += Forbidden <IssueTreeNodeEventArgs> ("node.ChildAdded");
            var issue = new IssueSummary();

            localGroup.AddIssue(issue);

            var children = localNode.Children;

            Assert.That(children.Contains(issue));
            Assert.AreEqual(1, children.Count, "The number of children was incorrect.");
        }
Example #6
0
        void SetNode(TreeNavigator navigator, IIssueTreeNode node)
        {
            if (navigator == null)
            {
                throw new ArgumentNullException("navigator");
            }
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            navigator.SetValue(nodeField, node);
            Debug.Assert(!nodePositions.ContainsKey(node));
            var position = navigator.CurrentPosition;

            nodePositions.Add(node, position);

            node.ChildAdded += (sender, e) => {
                Debug.Assert(e.Parent == node);
                Application.Invoke(delegate {
                    var newNavigator = store.GetNavigatorAt(position);
                    newNavigator.AddChild();
                    SetNode(newNavigator, e.Child);
                    SyncNode(newNavigator);
                });
            };
            node.ChildrenInvalidated += (sender, e) => {
                Application.Invoke(delegate {
                    SyncNode(store.GetNavigatorAt(position));
                });
            };
            node.TextChanged += (sender, e) => {
                lock (queueLock) {
                    if (!updateQueue.Contains(e.Node))
                    {
                        updateQueue.Enqueue(e.Node);
                    }
                }
            };
            node.VisibleChanged += (sender, e) => {
                lock (queueLock) {
                    if (!updateQueue.Contains(e.Node))
                    {
                        updateQueue.Enqueue(e.Node);
                    }
                }
            };
        }
Example #7
0
 void UpdateText(TreeNavigator navigator, IIssueTreeNode node)
 {
     navigator.SetValue(textField, node.Text);
 }
		void UpdateText (TreeNavigator navigator, IIssueTreeNode node)
		{
			navigator.SetValue (textField, node.Text);
		}
		void SetNode (TreeNavigator navigator, IIssueTreeNode node)
		{
			if (navigator == null)
				throw new ArgumentNullException ("navigator");
			if (node == null)
				throw new ArgumentNullException ("node");
			
			navigator.SetValue (nodeField, node);
			Debug.Assert (!nodePositions.ContainsKey (node));
			var position = navigator.CurrentPosition;
			nodePositions.Add (node, position);
			
			node.ChildAdded += (sender, e) => {
				Debug.Assert (e.Parent == node);
				Application.Invoke (delegate {
					var newNavigator = store.GetNavigatorAt (position);
					newNavigator.AddChild ();
					SetNode (newNavigator, e.Child);
					SyncNode (newNavigator);
				});
			};
			node.ChildrenInvalidated += (sender, e) => {
				Application.Invoke (delegate {
					SyncNode (store.GetNavigatorAt (position));
				});
			};
			node.TextChanged += (sender, e) => {
				lock (queueLock) {
					if (!updateQueue.Contains (e.Node)) {
						updateQueue.Enqueue (e.Node);
					}
				}
			};
			node.VisibleChanged += (sender, e) => {
				lock (queueLock) {
					if (!updateQueue.Contains (e.Node)) {
						updateQueue.Enqueue (e.Node);
					}
				}
			};
		}
 public IssueTreeNodeEventArgs(IIssueTreeNode parent, IIssueTreeNode child)
 {
     Parent = parent;
     Child  = child;
 }
		public IssueTreeNodeEventArgs (IIssueTreeNode parent, IIssueTreeNode child)
		{
			Parent = parent;
			Child = child;
		}
Example #12
0
		public IssueGroupEventArgs (IIssueTreeNode node)
		{
			Node = node;
		}
 public IssueGroupEventArgs(IIssueTreeNode node)
 {
     Node = node;
 }