/// <summary> /// Initializes a RequestList control /// </summary> public RequestsList() { InitializeComponent(); // Populate event handlers // This event handlers are used to automatically syncronize the list with its data source RequestEntryAddedEvent = new TVDataAccessorDataEvent(RequestEntryAdded); ResponseAddedEvent = new TVDataAccessorDataEvent(ResponseAdded); RequestEntryRemovedEvent = new TVDataAccessorDataEvent(RequestEntryRemoved); StateChangedEvent = new TVDataAccessorStateHandler(StateChanged); DataClearedEvent = new TVDataAccessorDataEvent(DataCleared); // Load the columns state from the options file SetColumnsState(); // Add column selector to the list context menu this.columnsToolStripMenuItem.DropDownItems.AddRange(GetColumnMenuEntries()); // Initialize the request ids record _addedRows = new Dictionary <string, DataGridViewRow>(); // Initialize the queue for the requests to be added to the GUI _requestHeaderEventsQueue = new Queue <int>(); // Initialize the dynamic filter _filter = new DynamicFilter(_dataGrid); }
public RequestViewerLoader(RequestViewer control, ITrafficDataAccessor dataSource) { _control = control; _dataSource = dataSource; //attach to the data source events RequestAddedEventHandler += new TVDataAccessorDataEvent(DataSourceRequestAdded); ResponseAddedEventHandler += new TVDataAccessorDataEvent(DataSourceResponseAdded); DataClearedEventHandler += new TVDataAccessorDataEvent(DataCleared); _dataSource.RequestChanged += RequestAddedEventHandler; _dataSource.ResponseChanged += ResponseAddedEventHandler; _dataSource.DataCleared += DataClearedEventHandler; _dataSource.RequestBatchRemoved += new TVDataAccessorDataBatchEvent(RequestBatchRemoved); //attach to the control selected index changed _control.SelectedIndexChanged += new EventHandler(ControlSelectedIndexChanged); //attach an action to the save events coming from the viewer _control.TrafficView.SaveRequested += new RequestTrafficViewSaveEvent(TrafficViewSaveRequested); _loadWorker.DoWork += new DoWorkEventHandler(LoadWorkerExecute); _loadWorker.RunWorkerAsync(); }