void GridViewColumnHeader_Click(object sender, RoutedEventArgs e) { SortGridViewColumnHeader header = sender as SortGridViewColumnHeader; if (header == null) { return; } if (OrderClick != null && !OrderClick(header.RequestColumn)) { return; } string canOrder = QueryUtils.CanOrder(header.RequestColumn.Token); if (canOrder.HasText()) { //Avoid UI Automation hangs Dispatcher.BeginInvoke(() => MessageBox.Show(Window.GetWindow(this), canOrder)); return; } header.ChangeOrders(OrderOptions); Search(resetPage: true); }
private void filterHeader_Click(object sender, RoutedEventArgs e) { SortGridViewColumnHeader gvch = GetHeaderColumnHeader(sender); FilterOptions.Add(new FilterOption { Token = gvch.RequestColumn.Token, Operation = FilterOperation.EqualTo, Value = FilterOption.DefaultValue(gvch.RequestColumn.Type), }); }
private void removeMenu_Click(object sender, RoutedEventArgs e) { if (!AllowChangeColumns) { return; } SortGridViewColumnHeader gvch = GetHeaderColumnHeader(sender); gvResults.Columns.Remove(gvch.Column); UpdateMultiplyMessage(true); }
private void renameMenu_Click(object sender, RoutedEventArgs e) { if (!AllowChangeColumns) { return; } SortGridViewColumnHeader gvch = GetHeaderColumnHeader(sender); string result = gvch.RequestColumn.DisplayName; if (ValueLineBox.Show <string>(ref result, SearchMessage.NewColumnSName.NiceToString(), SearchMessage.ChooseTheDisplayNameOfTheNewColumn.NiceToString(), SearchMessage.Name.NiceToString(), null, null, Window.GetWindow(this))) { gvch.RequestColumn.DisplayName = result; gvch.Content = result; } }
private void FillGridView() { gvResults.Columns.Clear(); foreach (var rc in ResultTable.Columns) { gvResults.Columns.Add(new GridViewColumn { Header = new SortGridViewColumnHeader { Content = rc.Column.DisplayName, RequestColumn = rc.Column, }, CellTemplate = CreateDataTemplate(rc), }); } SortGridViewColumnHeader.SetColumnAdorners(gvResults, OrderOptions); }
private SortGridViewColumnHeader GetCellColumnHeader(ContextMenu context) { Point point = context.PointToScreen(new Point(0, 0)); Point newPoint = lvResult.PointFromScreen(point); Point headerPoint = new Point(newPoint.X, 4); HitTestResult hitResult = VisualTreeHelper.HitTest(lvResult, headerPoint); if (hitResult == null) { return(null); } SortGridViewColumnHeader gvch = hitResult.VisualHit.VisualParents().OfType <SortGridViewColumnHeader>().FirstOrDefault(); return(gvch); }
void GridViewColumnHeader_Click(object sender, RoutedEventArgs e) { SortGridViewColumnHeader header = sender as SortGridViewColumnHeader; if (header == null) { return; } string canOrder = QueryUtils.CanOrder(header.RequestColumn.Token); if (canOrder.HasText()) { MessageBox.Show(Window.GetWindow(this), canOrder); return; } header.ChangeOrders(OrderOptions); OnGenerateChart(); }
private void filterCell_Click(object sender, RoutedEventArgs e) { ContextMenu context = (ContextMenu)((MenuItem)sender).Parent; SortGridViewColumnHeader gvch = GetCellColumnHeader(context); if (gvch == null) { return; } ResultRow row = (ResultRow)lvResult.SelectedItem; object value = row[gvch.ResultColumn]; FilterOptions.Add(new FilterOption { Token = gvch.RequestColumn.Token, Operation = FilterOperation.EqualTo, Value = value is EmbeddedEntity ? null : value }); }
public void Reinitialize(List <FilterOption> filters, List <ColumnOption> columns, ColumnOptionsMode columnOptionsMode, List <OrderOption> orders, Pagination pagination) { try { avoidPaginationChange = true; ColumnOptions.Clear(); ColumnOptions.AddRange(columns); ColumnOption.SetColumnTokens(ColumnOptions, Description); ColumnOptionsMode = columnOptionsMode; GenerateListViewColumns(); if (!filters.SequenceEqual(FilterOptions)) { if (SimpleFilterBuilder != null) { SimpleFilterBuilder = null; } FilterOptions.Clear(); FilterOption.SetFilterTokens(filters, Description); FilterOptions.AddRange(filters); } OrderOptions.Clear(); OrderOptions.AddRange(orders); OrderOption.SetOrderTokens(OrderOptions, Description); SortGridViewColumnHeader.SetColumnAdorners(gvResults, OrderOptions); UpdateMultiplyMessage(true); Pagination = pagination; } finally { avoidPaginationChange = false; } }
public void OnLoaded() { if (loaded) { return; } loaded = true; if (FilterColumn.HasText()) { FilterOptions.Add(new FilterOption { ColumnName = FilterColumn, Operation = FilterOperation.EqualTo, Frozen = true, }.Bind(FilterOption.ValueProperty, new Binding("DataContext" + (FilterRoute.HasText() ? "." + FilterRoute : null)) { Source = this })); if (QueryUtils.IsColumnToken(FilterColumn)) { ColumnOptions.Add(new ColumnOption(FilterColumn)); ColumnOptionsMode = ColumnOptionsMode.Remove; } if (this.NotSet(SearchOnLoadProperty)) { SearchOnLoad = true; } } if (OrderOptions.IsNullOrEmpty() && !entityColumn.Implementations.Value.IsByAll) { var orderType = entityColumn.Implementations.Value.Types.All(t => EntityKindCache.GetEntityData(t) == EntityData.Master) ? OrderType.Ascending : OrderType.Descending; var column = Description.Columns.SingleOrDefaultEx(c => c.Name == "Id"); if (column != null) { OrderOptions.Add(new OrderOption(column.Name, orderType)); } } btCreate.ToolTip = SearchMessage.CreateNew0_G.NiceToString() .ForGenderAndNumber(entityColumn.Implementations.Value.Types.FirstOrDefault()?.GetGender() ?? 'm') .FormatWith(entityColumn.Implementations.Value.Types.CommaOr(a => a.NiceName())); if (this.NotSet(SearchControl.NavigateProperty) && Navigate) { Navigate = Implementations.IsByAll ? true : Implementations.Types.Any(t => Navigator.IsNavigable(t, isSearch: true)); } if (this.NotSet(EntityBase.CreateProperty) && Create) { Create = Implementations.IsByAll ? false : Implementations.Types.Any(t => Navigator.IsCreable(t, isSearch: true)); } ColumnOption.SetColumnTokens(ColumnOptions, Description); if (this.CanAddFilters || this.AllowChangeColumns) { headerContextMenu = new ContextMenu(); if (this.CanAddFilters) { headerContextMenu.Items.Add(new MenuItem { Header = SearchMessage.AddFilter.NiceToString() }.Handle(MenuItem.ClickEvent, filterHeader_Click)); } if (this.CanAddFilters && this.AllowChangeColumns) { headerContextMenu.Items.Add(new Separator()); } if (this.AllowChangeColumns) { headerContextMenu.Items.Add(new MenuItem { Header = SearchMessage.Rename.NiceToString() }.Handle(MenuItem.ClickEvent, renameMenu_Click)); headerContextMenu.Items.Add(new MenuItem { Header = EntityControlMessage.Remove.NiceToString() }.Handle(MenuItem.ClickEvent, removeMenu_Click)); } } GenerateListViewColumns(); FilterOption.SetFilterTokens(FilterOptions, Description); filterBuilder.Filters = FilterOptions; ((INotifyCollectionChanged)FilterOptions).CollectionChanged += FilterOptions_CollectionChanged; OrderOption.SetOrderTokens(OrderOptions, Description); SortGridViewColumnHeader.SetColumnAdorners(gvResults, OrderOptions); if (IsVisible) { FillMenuItems(); if (SearchOnLoad) { Search(); } } else { IsVisibleChanged += SearchControl_IsVisibleChanged; } UpdateVisibility(); AutomationProperties.SetName(this, QueryUtils.GetKey(QueryName)); foreach (var item in FilterOptions) { item.BindingValueChanged += new DependencyPropertyChangedEventHandler(item_BindingValueChanged); } }