Ejemplo n.º 1
0
        /// <summary>
        /// Sets the action.
        /// </summary>
        /// <param name="message">The message.</param>
        protected void SetAction(BulbMessage message)
        {
            message.OnShow(this.Hide);
            this._action    = message.Action;
            this.ActionView = message.View;

            this.NotifyOfPropertyChange(nameof(this.HasAction));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sets the action.
        /// </summary>
        /// <param name="message">The message.</param>
        protected override void SetAction(BulbMessage message)
        {
            if (this._updateRequired)
            {
                return;
            }

            base.SetAction(message);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets the action.
        /// </summary>
        /// <param name="message">The message.</param>
        protected void SetAction(BulbMessage message)
        {
            message.OnShow?.Invoke(this.Hide);
            this._previousAction     = this._action;
            this._previousActionView = this._actionView;
            this._action             = message.Action;
            this.ActionView          = message.View;

            this.NotifyOfPropertyChange(nameof(this.HasAction));

            if (message.DisplayTime != TimeSpan.Zero)
            {
                Task.Run(async() => await Task.Delay(message.DisplayTime)).ContinueWith((t) => this.Hide());
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Sets the action.
        /// </summary>
        /// <param name="message">The message.</param>
        protected virtual void SetAction(BulbMessage message)
        {
            if (this._tokenSource != null)
            {
                this._tokenSource.Cancel();
                this._tokenSource.Dispose();
                this._tokenSource = null;
            }

            message.OnShow?.Invoke(this.Hide);

            if (message.Sticky)
            {
                this._stickyAction     = this.Action;
                this._stickyActionView = this._actionView;
            }

            var disposableView = this.ActionView as IDisposable;

            if (disposableView != null)
            {
                disposableView.Dispose();
            }

            this.Action     = message.Action;
            this.ActionView = message.View;

            this.NotifyOfPropertyChange(nameof(this.HasAction));

            if (message.DisplayTime != TimeSpan.Zero)
            {
                this._tokenSource = new CancellationTokenSource();
                var token = this._tokenSource.Token;
                Task.Run(async() => await Task.Delay(message.DisplayTime)).ContinueWith((t) =>
                {
                    if (token.IsCancellationRequested)
                    {
                        return;
                    }

                    this.Hide();
                });
            }
        }