Example #1
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            if (ControlsHelper.IsDesignMode(this))
            {
                return;
            }
            // List which contains all issues.
            var scheduler = TaskScheduler.FromCurrentSynchronizationContext();

            IssueList = new BindingListInvoked <IssueItem>();
            UpdateIgnoreAllButton();
            // List which is bound to the grid and displays issues, which needs user attention.
            Warnings = new BindingListInvoked <IssueItem>();
            Warnings.SynchronizingObject = scheduler;
            MainDataGrid.ItemsSource     = Warnings;
            UpdateIgnoreButton();
            // Timer which checks for the issues.
            var ai    = new JocysCom.ClassLibrary.Configuration.AssemblyInfo();
            var title = ai.GetTitle(true, true, true, true, false) + " - Issues";

            TasksTimer                    = new QueueTimer <object>(0, 0);
            TasksTimer.DoWork            += queueTimer_DoWork;
            TasksTimer.Queue.ListChanged += Data_ListChanged;
            // Start monitoring tasks queue.
            QueueMonitorTimer       = new System.Windows.Forms.Timer();
            QueueMonitorTimer.Tick += QueueMonitorTimer_Tick;
            QueueMonitorTimer.Start();
        }
Example #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            int t = Subpacket.SubpacketHeaderSize;

            unknownPackets = new BindingListInvoked <Object>(dataGridView1);
            subheads       = new BindingListInvoked <SubpacketHeader>(dataGridView1);
            heads          = new BindingListInvoked <PacketHeader>(dataGridView1);
            //Subpacket sp = new Packet261();
            textBox2.ReadOnly = true;
            textBox2.Text     = "Enter a username and then press start to begin logging data." + Environment.NewLine;
            textBox2.WordWrap = false;

            //subpacketList.DataSource = Subpacket.SubpacketSentDefinitions.Values.ToList<Type>();
            //subpacketList.ValueMember = "Name";

            rootNode     = treeView1.Nodes.Add("Packets");
            sentNode     = rootNode.Nodes.Add("Sent");
            receivedNode = rootNode.Nodes.Add("Received");
            unknownNode  = rootNode.Nodes.Add("Unknown");
            headsNode    = rootNode.Nodes.Add("Headers");
            subheadsNode = rootNode.Nodes.Add("Subheaders");

            /*
             * foreach(int key in Subpacket.SubpacketRecievedDefinitions.Keys)
             * {
             *  receivedNode.Nodes.Add(key.ToString(), Subpacket.SubpacketRecievedDefinitions[key].Name);
             * }
             * foreach (int key in Subpacket.SubpacketSentDefinitions.Keys)
             * {
             *  sentNode.Nodes.Add(key.ToString(), Subpacket.SubpacketSentDefinitions[key].Name).;
             * }
             */
        }
Example #3
0
        public IssuesUserControl()
        {
            InitializeComponent();
            if (IsDesignMode)
            {
                return;
            }
            NoIssuesPanel.Visible       = false;
            LinePanel.Visible           = false;
            ExceptionInfoButton.Visible = false;
            // List which contains all issues.
            IssueList = new BindingListInvoked <IssueItem>();
            IssueList.SynchronizingObject = this;
            IssueList.ListChanged        += IssueList_ListChanged;
            UpdateIgnoreAllButton();
            // List which is bound to the grid and displays issues, which needs user attention.
            Warnings = new BindingListInvoked <IssueItem>();
            Warnings.SynchronizingObject = this;
            // Configure data grid.
            ControlsHelper.ApplyBorderStyle(WarningsDataGridView);
            WarningsDataGridView.AutoGenerateColumns = false;
            WarningsDataGridView.DataSource          = Warnings;
            UpdateIgnoreButton();
            // Timer which checks for the issues.
            var ai    = new JocysCom.ClassLibrary.Configuration.AssemblyInfo();
            var title = ai.GetTitle(true, true, true, true, false) + " - Issues";

            Text                          = title;
            TasksTimer                    = new JocysCom.ClassLibrary.Threading.QueueTimer <object>(0, 5000, this);
            TasksTimer.DoWork            += queueTimer_DoWork;
            TasksTimer.Queue.ListChanged += Data_ListChanged;
            // Start monitoring tasks queue.
            QueueMonitorTimer.Start();
        }
Example #4
0
 public QueueTimer(int delayInterval = 500, int sleepInterval = 5000, TaskScheduler listSynchronizingObject = null) : base(delayInterval, sleepInterval)
 {
     // Create main properties.
     Queue = new BindingListInvoked <T>();
     Queue.SynchronizingObject = listSynchronizingObject;
     SynchronizingObject       = listSynchronizingObject;
 }
Example #5
0
        public IssuesUserControl()
        {
            InitializeComponent();
            if (IsDesignMode)
            {
                return;
            }
            // List which contains all issues.
            IssueList = new BindingListInvoked <IssueItem>();
            IssueList.SynchronizingObject = this;
            IssueList.ListChanged        += IssueList_ListChanged;
            // List which is bound to the grid and displays issues, which needs user attention.
            Warnings = new BindingListInvoked <IssueItem>();
            Warnings.SynchronizingObject = this;
            // Configure data grid.
            ControlsHelper.ApplyBorderStyle(IssuesDataGridView);
            IssuesDataGridView.AutoGenerateColumns = false;
            IssuesDataGridView.DataSource          = Warnings;
            // Timer which checks for the issues.
            CheckTimer                     = new System.Timers.Timer();
            CheckTimer.Interval            = 1000;
            CheckTimer.AutoReset           = false;
            CheckTimer.SynchronizingObject = this;
            CheckTimer.Elapsed            += CheckTimer_Elapsed;
            var ai    = new JocysCom.ClassLibrary.Configuration.AssemblyInfo();
            var title = ai.GetTitle(true, true, true, true, false) + " - Issues";

            Text = title;
        }
Example #6
0
        private void Form1_Load(object sender, EventArgs e)
        {
            names = new BindingListInvoked <Name>(dataGridView1);

            dataGridView1.DataSource = names;

            new Thread(() => names.Add(new Name()
            {
                FirstName = "Larry", LastName = "Lan"
            })).Start();
            new Thread(() => names.Add(new Name()
            {
                FirstName = "Jessie", LastName = "Feng"
            })).Start();
        }
Example #7
0
        public IssuesUserControl()
        {
            InitializeComponent();
            if (IsDesignMode)
            {
                return;
            }
            // Set tool strip to the same font.
            Controls.OfType <ToolStrip>().ToList().ForEach(x => x.Font = this.Font);
            NoIssuesPanel.Visible       = false;
            LinePanel.Visible           = false;
            ExceptionInfoButton.Visible = false;
            // List which contains all issues.
            var scheduler = TaskScheduler.FromCurrentSynchronizationContext();

            IssueList = new BindingListInvoked <IssueItem>();
            IssueList.AsynchronousInvoke  = true;
            IssueList.SynchronizingObject = scheduler;
            IssueList.ListChanged        += IssueList_ListChanged;
            UpdateIgnoreAllButton();
            // List which is bound to the grid and displays issues, which needs user attention.
            Warnings = new BindingListInvoked <IssueItem>();
            Warnings.SynchronizingObject = scheduler;
            // Configure data grid.
            ControlsHelper.ApplyBorderStyle(WarningsDataGridView);
            WarningsDataGridView.AutoGenerateColumns = false;
            WarningsDataGridView.DataSource          = Warnings;
            UpdateIgnoreButton();
            // Timer which checks for the issues.
            var ai    = new JocysCom.ClassLibrary.Configuration.AssemblyInfo();
            var title = ai.GetTitle(true, true, true, true, false) + " - Issues";

            Text                          = title;
            TasksTimer                    = new QueueTimer <object>(0, 0);
            TasksTimer.DoWork            += queueTimer_DoWork;
            TasksTimer.Queue.ListChanged += Data_ListChanged;
            // Start monitoring tasks queue.
            QueueMonitorTimer.Start();
        }
Example #8
0
        private void UserControl_Unloaded(object sender, RoutedEventArgs e)
        {
            IsDisposing = true;
            // Clear list.
            var items = IssueList?.ToArray();

            IssueList?.Clear();
            if (items != null)
            {
                // Remove events.
                foreach (var item in items)
                {
                    item.Checking -= Item_Checking;
                    item.Checked  -= Item_Checked;
                    item.Fixing   -= Item_Fixing;
                    item.Fixed    -= Item_Fixed;
                }
            }
            WarningsView?.DetachFromSourceCollection();
            //MainDataGrid.ItemsSource = null;
            if (Warnings != null)
            {
                Warnings.SynchronizingObject = null;
                Warnings.Clear();
                Warnings = null;
            }
            if (TasksTimer != null)
            {
                TasksTimer.DoWork            -= QueueTimer_DoWork;
                TasksTimer.Queue.ListChanged -= Data_ListChanged;
                TasksTimer.Dispose();
            }
            if (QueueMonitorTimer != null)
            {
                QueueMonitorTimer.Tick -= QueueMonitorTimer_Tick;
                QueueMonitorTimer.Dispose();
            }
        }