internal static uint SetItemsVisibleWhere(this IToolboxCategory category, Func <IToolboxItem, bool> func) { if (!category.HasItems) { return(0); } uint count = 0; foreach (var categoryItem in category.Items) { if (!func(categoryItem)) { categoryItem.IsEnabled = false; categoryItem.IsVisible = false; } else { count++; categoryItem.IsVisible = true; } } if (count > 0) { category.IsExpanded = true; } category.InvalidateState(); return(count); }
public void InsertCategory(int index, IToolboxCategory category, bool supressRefresh = false) { _stateProvider.ItemsSource.Insert(index, category); if (!supressRefresh) { _toolbox.RefreshView(); } }
public void AddCategory(IToolboxCategory category, bool suppressRefresh = false) { var index = _stateProvider.ItemsSource.Count; if (ToolboxCategory.IsDefaultCategory(_stateProvider.ItemsSource.LastOrDefault())) { index--; } InsertCategory(index, category); }
private void MoveCategoryUp(IToolboxCategory category) { if (category == null) { return; } var items = _service.GetToolboxItemSource(); var index = items.IndexOf(x => x.Equals(category)); _service.RemoveCategory(category, false, true); _service.InsertCategory(index - 1, category); _toolbox.SelectedNode = category; }
public void RemoveCategory(IToolboxCategory category, bool cascading = true, bool supressRefresh = false) { if (_stateProvider.ItemsSource.Contains(category)) { _stateProvider.ItemsSource.Remove(category); } if (cascading) { foreach (var item in category.Items.ToList()) { category.RemoveItem(item); } } if (!supressRefresh) { _toolbox.RefreshView(); } }
private bool CheckCategoryUp(IToolboxCategory category) { var items = _service.GetToolboxItemSource().ToList(); if (!items.Contains(category)) { return(false); } var index = items.IndexOf(category); if (index <= 0) { return(false); } if (items.GetRange(0, index).Any(x => x.IsVisible)) { return(true); } return(false); }
public static bool IsDefaultCategory(IToolboxCategory category) { return(category.DataSource.Id.Equals(Guids.DefaultCategoryId)); }