public WinFormsGridBaseAdapter(DataGridView gridView) : base(gridView) { _gridView = gridView; ConfirmDeletion = false; CheckUserConfirmsDeletionDelegate = CheckUserWantsToDelete; _manager = new GridBaseManagerBindingList(this); this.GridBaseManager.CollectionChanged += delegate { FireCollectionChanged(); ImplementColumnAutoSizingStrategy(); ImplementAlternatRowColoring(); }; this.GridBaseManager.BusinessObjectSelected += delegate { FireBusinessObjectSelected(); }; _gridView.DoubleClick += DoubleClickHandler; if (GlobalUIRegistry.UIStyleHints != null) { this.ColumnAutoSizingStrategy = GlobalUIRegistry.UIStyleHints.GridHints.ColumnAutoSizingStrategy; this.ColumnAutoSizingPadding = GlobalUIRegistry.UIStyleHints.GridHints.ColumnAutoSizingPadding; this.EnableAlternateRowColoring = GlobalUIRegistry.UIStyleHints.GridHints.EnableAlternateRowColoring; this.HideObjectIDColumn = GlobalUIRegistry.UIStyleHints.GridHints.HideObjectIDColumn; } _gridView.Resize += (sender, e) => { if (this.AutoResizeColumnsOnGridResize) { this.ImplementColumnAutoSizingStrategy(); } }; }
public void Test_ApplyFilter_WheResetDataSource_ShouldSetFilterOnBindingList_FixBug615() { //---------------Set up test pack------------------- var grid = MockRepository.GenerateStub <IGridBase>(); var gridBaseManager = new GridBaseManager(grid); grid.DataSource = GenerateStub <IBindingListView>(); gridBaseManager.ApplyFilter(GetFilterClause()); var bindingListView = GenerateStub <IBindingListView>(); grid.DataSource = bindingListView; var filterClause = GetFilterClause(); //---------------Assert Precondition---------------- Assert.AreSame(bindingListView, grid.DataSource); bindingListView.AssertWasNotCalled(view => view.Filter); var filterClauseString = filterClause.GetFilterClauseString("%", "#"); Assert.IsNotNullOrEmpty(filterClauseString); //---------------Execute Test ---------------------- gridBaseManager.ApplyFilter(filterClause); //---------------Test Result ----------------------- Assert.AreEqual(filterClauseString, bindingListView.Filter); }
/// <summary> /// Constructor for <see cref="GridBaseVWG"/> /// </summary> protected GridBaseVWG() { _manager = new GridBaseManager(this); GridBaseManager.BusinessObjectSelected += delegate { FireBusinessObjectSelected(); }; GridBaseManager.CollectionChanged += delegate { FireCollectionChanged(); }; ConfirmDeletion = false; CheckUserConfirmsDeletionDelegate = CheckUserWantsToDelete; var hints = GlobalUIRegistry.UIStyleHints; if (hints != null) { this.DefaultCellStyle.Padding = new Padding(hints.GridHints.Padding.Left, hints.GridHints.Padding.Top, hints.GridHints.Padding.Right, hints.GridHints.Padding.Bottom); var vpad = this.DefaultCellStyle.Padding.Top + this.DefaultCellStyle.Padding.Bottom; this.ColumnHeadersHeight += vpad; this.RowTemplate.Height += vpad; this.ColumnAutoSizingPadding = hints.GridHints.ColumnAutoSizingPadding; this.ColumnAutoSizingStrategy = hints.GridHints.ColumnAutoSizingStrategy; this.EnableAlternateRowColoring = hints.GridHints.EnableAlternateRowColoring; this.HideObjectIDColumn = hints.GridHints.HideObjectIDColumn; this.CollectionChanged += (s, e) => { this.SetIDColumnVisibility(!this.HideObjectIDColumn); }; } }
/// <summary> /// Constructor for <see cref="GridBaseWin"/> /// </summary> protected GridBaseWin() { ConfirmDeletion = false; CheckUserConfirmsDeletionDelegate = CheckUserWantsToDelete; _manager = new GridBaseManager(this); GridBaseManager.CollectionChanged += delegate { FireCollectionChanged(); ImplementColumnAutoSizingStrategy(); ImplementAlternatRowColoring(); }; GridBaseManager.BusinessObjectSelected += delegate { FireBusinessObjectSelected(); }; DoubleClick += DoubleClickHandler; if (GlobalUIRegistry.UIStyleHints != null) { var gridHints = GlobalUIRegistry.UIStyleHints.GridHints; this.DefaultCellStyle.Padding = new Padding(gridHints.Padding.Left, gridHints.Padding.Top, gridHints.Padding.Right, gridHints.Padding.Bottom); var vpad = this.DefaultCellStyle.Padding.Top + this.DefaultCellStyle.Padding.Bottom; this.ColumnHeadersHeight += vpad; this.RowTemplate.Height += vpad; this.ColumnAutoSizingStrategy = gridHints.ColumnAutoSizingStrategy; this.ColumnAutoSizingPadding = gridHints.ColumnAutoSizingPadding; this.EnableAlternateRowColoring = gridHints.EnableAlternateRowColoring; this.ImplementAlternatRowColoring(); this.HideObjectIDColumn = gridHints.HideObjectIDColumn; this.CollectionChanged += (s, e) => { this.SetIDColumnVisibility(!this.HideObjectIDColumn); }; } this._resizeTimer = new Timer() { Enabled = true, Interval = 1000 }; this._resizeTimer.Tick += (sender, e) => { if (!this.AutoResizeColumnsOnGridResize) { return; } if (this._resizeRequired && (this._lastResize.AddMilliseconds(this._resizeTimer.Interval) < DateTime.Now)) { this._resizeRequired = false; this.ImplementColumnAutoSizingStrategy(); } }; this.Resize += (sender, e) => { this._resizeRequired = true; this._lastResize = DateTime.Now; }; }
/// <summary> /// Applies a search clause to the underlying collection and reloads the grid. /// The search allows you to determine which objects to display using /// some criteria. This is typically generated by the an <see cref="IFilterControl"/>. /// </summary> /// <param name="searchClause">The search clause</param> /// <param name="orderBy"></param> public void ApplySearch(string searchClause, string orderBy) { GridBaseManager.ApplySearch(searchClause, orderBy); FireFilterUpdated(); }
/// <summary> /// Applies a filter clause to the data table and updates the filter. /// The filter allows you to determine which objects to display using /// some criteria. This is typically generated by an <see cref="IFilterControl"/>. /// </summary> /// <param name="filterClause">The filter clause</param> public void ApplyFilter(IFilterClause filterClause) { GridBaseManager.ApplyFilter(filterClause); FireFilterUpdated(); }
/* /// <summary> * /// Fires an event indicating that the selected business object * /// is being edited * /// </summary> * /// <param name="bo">The business object being edited</param> * public void SelectedBusinessObjectEdited(BusinessObject bo) * { * FireSelectedBusinessObjectEdited(bo); * }*/ /* private void FireSelectedBusinessObjectEdited(IBusinessObject bo) * { * if (this.BusinessObjectEdited != null) * { * this.BusinessObjectEdited(this, new BOEventArgs(bo)); * } * }*/ /* /// <summary> * /// Fires the Selected Business Object Edited Event for <paramref name="bo"/> * /// </summary> * /// <param name="bo">The Business object the event is being fired for</param> * public void FireBusinessObjectEditedEvent(BusinessObject bo) * { * FireSelectedBusinessObjectEdited(bo); * }*/ /* * /// <summary> * /// Occurs when a business object is being edited * /// </summary> * public event EventHandler<BOEventArgs> BusinessObjectEdited;*/ /// <summary> /// Reloads the grid based on the grid returned by GetBusinessObjectCollection /// </summary> public void RefreshGrid() { GridBaseManager.RefreshGrid(); }
/// <summary> /// Clears the business object collection and the rows in the data table /// </summary> public void Clear() { GridBaseManager.Clear(); }
///<summary> /// Returns the row for the specified <see cref="IBusinessObject"/>. ///</summary> ///<param name="businessObject">The <see cref="IBusinessObject"/> to search for.</param> ///<returns>Returns the row for the specified <see cref="IBusinessObject"/>, /// or null if the <see cref="IBusinessObject"/> is not found in the grid.</returns> public IDataGridViewRow GetBusinessObjectRow(IBusinessObject businessObject) { return(GridBaseManager.GetBusinessObjectRow(businessObject)); }
/// <summary> /// Returns the business object at the specified row number /// </summary> /// <param name="row">The row number in question</param> /// <returns>Returns the busines object at that row, or null /// if none is found</returns> public IBusinessObject GetBusinessObjectAtRow(int row) { return(GridBaseManager.GetBusinessObjectAtRow(row)); }
/// <summary> /// Applies a filter clause to the data table and updates the filter. /// The filter allows you to determine which objects to display using /// some criteria. This is typically generated by an <see cref="IFilterControl"/>. /// </summary> /// <param name="filterClause">The filter clause</param> public void ApplyFilter(IFilterClause filterClause) { GridBaseManager.ApplyFilter(filterClause); }
/// <summary> /// Returns the business object collection being displayed in the grid /// </summary> /// <returns>Returns a business collection</returns> public IBusinessObjectCollection GetBusinessObjectCollection() { return(GridBaseManager.GetBusinessObjectCollection()); }