public ContainerControl()
		{
			InitializeComponent();
			Dock = DockStyle.Fill;

			_userFilterControl = new UserFilter();
			_userFilterControl.FilterChanged += (o, e) =>
			{
				_groupFilterControl.EnableFilter = _userFilterControl.EnableFilter;
				_groupFilterControl.SelectedGroups.Clear();
				_groupFilterControl.SelectedGroups.AddRange(_userFilterControl.SelectedGroups);
				_groupFilterControl.UpdateDataSource(_userFilterControl.AllGroups.ToArray(), false);
				ApplyData();
			};
			_userFilterControl.ColumnsChanged += (o, e) =>
			{
				_groupFilterControl.ShowNumber = _userFilterControl.ShowNumber;
				_groupFilterControl.ShowPercent = _userFilterControl.ShowPercent;
			};

			_groupFilterControl = new GroupFilter();
			_groupFilterControl.FilterChanged += (o, e) =>
			{
				_userFilterControl.EnableFilter = _groupFilterControl.EnableFilter;
				_userFilterControl.SelectedGroups.Clear();
				_userFilterControl.SelectedGroups.AddRange(_groupFilterControl.SelectedGroups);
				_userFilterControl.UpdateDataSource(_groupFilterControl.AllGroups.ToArray(), false);
				ApplyData();
			};
			_groupFilterControl.ColumnsChanged += (o, e) =>
			{
				_userFilterControl.ShowNumber = _groupFilterControl.ShowNumber;
				_userFilterControl.ShowPercent = _groupFilterControl.ShowPercent;
			};
		}
Ejemplo n.º 2
0
		public void ApplyColumns(UserFilter filter)
		{
			gridColumnName.Visible = filter.ShowUsers;
			gridColumnGroup.Visible = filter.ShowGroups;
			if (filter.ShowUsers)
			{
				gridColumnName.RowCount = !filter.ShowGroups && filter.ShowNumber && filter.ShowPercent ? 2 : 1;
			}
			if (filter.ShowGroups)
			{
				advBandedGridViewData.SetColumnPosition(gridColumnGroup, 1, filter.ShowUsers ? 2 : 1);
			}

			gridColumnUserLoginNumber.Visible = filter.ShowNumber;
			gridColumnUserLoginPercent.Visible = filter.ShowPercent;
			gridColumnGroupLoginNumber.Visible = filter.ShowGroups;
			if (filter.ShowNumber)
				advBandedGridViewData.SetColumnPosition(gridColumnUserLoginNumber, 0, 0);
			if (filter.ShowPercent)
				advBandedGridViewData.SetColumnPosition(gridColumnUserLoginPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0);
			if (filter.ShowGroups)
			{
				advBandedGridViewData.SetColumnPosition(gridColumnGroupLoginNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1);
				gridColumnGroupLoginNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1;
			}

			gridColumnUserDocsNumber.Visible = filter.ShowNumber;
			gridColumnUserDocsPercent.Visible = filter.ShowPercent;
			gridColumnGroupDocsNumber.Visible = filter.ShowGroups;
			if (filter.ShowNumber)
				advBandedGridViewData.SetColumnPosition(gridColumnUserDocsNumber, 0, 0);
			if (filter.ShowPercent)
				advBandedGridViewData.SetColumnPosition(gridColumnUserDocsPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0);
			if (filter.ShowGroups)
			{
				advBandedGridViewData.SetColumnPosition(gridColumnGroupDocsNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1);
				gridColumnGroupDocsNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1;
			}

			gridColumnUserVideosNumber.Visible = filter.ShowNumber;
			gridColumnUserVideosPercent.Visible = filter.ShowPercent;
			gridColumnGroupVideosNumber.Visible = filter.ShowGroups;
			if (filter.ShowNumber)
				advBandedGridViewData.SetColumnPosition(gridColumnUserVideosNumber, 0, 0);
			if (filter.ShowPercent)
				advBandedGridViewData.SetColumnPosition(gridColumnUserVideosPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0);
			if (filter.ShowGroups)
			{
				advBandedGridViewData.SetColumnPosition(gridColumnGroupVideosNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1);
				gridColumnGroupVideosNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1;
			}

			gridColumnUserTotalNumber.Visible = filter.ShowNumber;
			gridColumnUserTotalPercent.Visible = filter.ShowPercent;
			gridColumnGroupTotalNumber.Visible = filter.ShowGroups;
			if (filter.ShowNumber)
				advBandedGridViewData.SetColumnPosition(gridColumnUserTotalNumber, 0, 0);
			if (filter.ShowPercent)
				advBandedGridViewData.SetColumnPosition(gridColumnUserTotalPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0);
			if (filter.ShowGroups)
			{
				advBandedGridViewData.SetColumnPosition(gridColumnGroupTotalNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1);
				gridColumnGroupTotalNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1;
			}
		}