/// <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
        }
Exemple #2
0
        /// <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
        }