/// <summary> /// Initializes a new instance of the <see cref="MarbleDiagramsViewModel"/> class. /// </summary> /// <param name="keyword">The keyword.</param> /// <param name="vm">The vm.</param> /// <param name="kind">The kind.</param> public MarbleDiagramsViewModel(string keyword, IViewModel vm, TabKind kind = TabKind.Marble) { _vm = vm; Diagrams = new MarbleCollection <MarbleDiagramModel>(); SetDiagramOrdering(); FlatItems = new MarbleCollection <MarbleBase>(); //FlatItemsView = (CollectionView)CollectionViewSource.GetDefaultView(FlatItems); if (vm != null) { _diagramWidth = _vm.Width - WIN_WIDTH_CORRECT; } Units = Enum.GetValues(typeof(MarbleUnit)) as MarbleUnit[]; //OrderBy = Enum.GetValues(typeof(OrderOption)) as OrderOption[]; Keyword = keyword; ScrollKinds = Enum.GetValues(typeof(ScrollKind)) as ScrollKind[]; TabKind = kind; #region Action #region _clearCommand = new Command(...) _clearCommand = new Command(param => { Clear(); //ActionBoardVisibility = Visibility.Collapsed; }); #endregion _clearCommand = new Command(...) #region _globalTimeCommand = new Command(...) _globalTimeCommand = new Command(param => { SetPositioningStrategy(MarblePositioningStrategy.GlobalTime); //ActionBoardVisibility = Visibility.Collapsed; }); #endregion _globalTimeCommand = new Command(...) #region _privateTimeCommand = new Command(...) _privateTimeCommand = new Command(param => { SetPositioningStrategy(MarblePositioningStrategy.PrivateTime); //ActionBoardVisibility = Visibility.Collapsed; }); #endregion _privateTimeCommand = new Command(...) #region _sequenceCommand = new Command(...) _sequenceCommand = new Command(param => { SetPositioningStrategy(MarblePositioningStrategy.Sequence); //ActionBoardVisibility = Visibility.Collapsed; }); #endregion _sequenceCommand = new Command(...) #region _showAction = new Command(...) _showAction = new Command(param => { if (ActionBoardVisibility == Visibility.Visible) { ActionBoardVisibility = Visibility.Collapsed; } else { ActionBoardVisibility = Visibility.Visible; } }); #endregion _showAction = new Command(...) #region _scrollAction = new Command(...) _scrollAction = new Command(param => { IsScrollToEnd = !IsScrollToEnd; }); #endregion _scrollAction = new Command(...) #endregion Action }
/// <summary> /// Initializes a new instance of the <see cref="MarbleDiagramModel"/> class. /// </summary> /// <param name="name">The name.</param> /// <param name="indexOrder">The index order.</param> /// <param name="mainContext">The main context.</param> public MarbleDiagramModel(string name, double indexOrder, IMainContext mainContext) { //RawItems = new MarbleCollection<MarbleItemViewModel>(); RawItems = new MarbleCollection <MarbleItemViewModel>(); //Items = (CollectionView)CollectionViewSource.GetDefaultView(RawItems); Name = name; IndexOrder = indexOrder; MainContext = mainContext; MainContext.PropertyChanged += RaiseDiagramWidthChanged; SolidColorBrush color = _colors.GetOrAdd(name, n => CreateColor()); Color = color; PositioningStrategies = Enum.GetValues(typeof(MarblePositioningStrategy)) as MarblePositioningStrategy[]; PositioningStrategy = MarblePositioningStrategy.GlobalTime; Height = ITEM_SIZE + 5; #region Actions #region _refreshCommand = new Command(...) _refreshCommand = new Command(param => { Items.Refresh(); ActionBoardVisibility = Visibility.Collapsed; }); #endregion _refreshCommand = new Command(...) #region _globalTimeCommand = new Command(...) _globalTimeCommand = new Command(param => { PositioningStrategy = MarblePositioningStrategy.GlobalTime; ActionBoardVisibility = Visibility.Collapsed; }); #endregion _globalTimeCommand = new Command(...) #region _privateTimeCommand = new Command(...) _privateTimeCommand = new Command(param => { PositioningStrategy = MarblePositioningStrategy.PrivateTime; ActionBoardVisibility = Visibility.Collapsed; }); #endregion _privateTimeCommand = new Command(...) #region _sequenceCommand = new Command(...) _sequenceCommand = new Command(param => { PositioningStrategy = MarblePositioningStrategy.Sequence; ActionBoardVisibility = Visibility.Collapsed; }); #endregion _sequenceCommand = new Command(...) #region _showActions = new Command(...) _showActions = new Command(param => { if (ActionBoardVisibility == Visibility.Visible) { ActionBoardVisibility = Visibility.Collapsed; } else { ActionBoardVisibility = Visibility.Visible; } }); #endregion _showActions = new Command(...) #region _hideActions = new Command(...) _hideActions = new Command(param => { ActionBoardVisibility = Visibility.Collapsed; }); #endregion _hideActions = new Command(...) #endregion Actions }