/// <summary> /// Clears this instance. /// </summary> public void Clear() { Interlocked.Exchange(ref _initTimeInSeconds, -1); _marbleDiagrams.Clear(); Diagrams.Clear(); FlatItems.Clear(); DiagramWidth = RESET_WIDTH; }
internal void OnCollapsed(ItemsControl item) { if (_hierarchicalItemsSourceBound) { FlatItemsSource.Collapse(item.DataContext); } else { FlatItems.Collapse(item); } }
internal void OnExpanded(ItemsControl item) { if (_hierarchicalItemsSourceBound) { FlatItemsSource.Expand(item.DataContext); } else { FlatItems.Expand(item); } }
/// <summary> /// Appends the marble. /// </summary> /// <param name="itemWrapper">The item wrapper.</param> public void AppendMarble(MarbleItemViewModel itemWrapper) { #region Validation if (itemWrapper == null) { throw new NullReferenceException("itemWrapper"); } #endregion Validation MarbleBase item = itemWrapper.Item; if (TabKind == TabKind.Flat) { FlatItems.AddAsync(item); return; } itemWrapper.MainContext = this; #region Diagrams.AddAsync(diagram) MarbleDiagramModel diagram; if (!_marbleDiagrams.TryGetValue(item.Name, out diagram)) { diagram = new MarbleDiagramModel(item.Name, item.IndexOrder, this); if (_marbleDiagrams.TryAdd(item.Name, diagram)) { Diagrams.AddAsync(diagram); } else { diagram.Dispose(); diagram = _marbleDiagrams[item.Name]; } } #endregion // Diagrams.AddAsync(diagram) itemWrapper = itemWrapper.Clone(diagram); diagram.AppendMarble(itemWrapper); }