private void SetupMenuCallback(NetworkTargets targets)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <NetworkTargets>(SetupMenuCallback), targets);
                return;
            }

            PopupMenu.Items.Clear();
            foreach (var item in targets.Targets.Select(model => new ToolStripMenuItem(model.ToString(), null, NavigateNetwork_Click)
            {
                Tag = model
            }))
            {
                PopupMenu.Items.Add(item);
            }

            if (PopupMenu.Items.Count == 0)
            {
                PopupMenu.Items.Add(targets.HasTargetFiles
                    ? new ToolStripLabel("File Found - No Network Match", null, false, null)
                    : new ToolStripLabel("File NOT Found", null, false, null));
            }
            PopupMenu.Width++;
            PopupMenu.Width--;
            PopupMenu.Show(_lastLowerLeft);
        }
        private void SetupDirect(NetworkTargets targets)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <NetworkTargets>(SetupDirect), targets);
                return;
            }

            if (targets.Targets.Count == 1)
            {
                ViewModel.GoToFileAndLine(targets.Targets[0].Item.SourceItem.Path, targets.Targets[0].Item.SourceItem.iLine);
            }
            else
            {
                SetupMenuCallback(targets);
            }
        }
        private void RenderTargetNetworkMessagesCallback(NetworkTargets messages)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <NetworkTargets>(RenderTargetNetworkMessagesCallback), messages);
                return;
            }

            try
            {
                lbNetworkMessages.BeginUpdate();
                lbNetworkMessages.Items.Clear();

                foreach (var message in messages.Targets.OrderBy(n => n.Item.Source.iLine))
                {
                    lbNetworkMessages.Items.Add(message);
                }

                if (lbNetworkMessages.Items.Count > 0)
                {
                    lbNetworkMessages.SelectedIndex = 0;
                }

                if (lbNetworkMessages.SelectedItem == null)
                {
                    PrepareCriteriaMatches();
                    ClearView(false, false, false);
                }
            }
            finally
            {
                lbNetworkMessages.EndUpdate();
            }

            tsslNetworkMessagesCount.Text = string.Format("Count {0}", messages.Targets.Count());
        }