/// <summary> /// Handles the state change - displaying the correct state on the UI via /// progress indicators. Only do this, when we've actually initiated the /// state change. /// </summary> private void HandleRunningStateChange(LiteActionRunningStateMessage runningStateChange) { if (runningStateChange.Source == this) { // We've initiated the evaluation/displaying of a collection; this could have been // done because we activated a join-field. // Dependent on the busy flag, we could do something here RunningStateDescription = runningStateChange.RunningStateDescription; IsRunning = runningStateChange.IsRunning; if (IsRunning) { RunningFeature = this.Feature; } else { if (Object.ReferenceEquals(Feature, RunningFeature)) { // Notify our UI that things might have changed (causing join fields to display their correct values; if at all) this.Refresh(); } this.RunningFeature = null; } } else { // We have not initiated the lot // For now, no-op } }
/// <summary> /// Handles the running state change /// </summary> internal void HandleRunningStateChange(LiteActionRunningStateMessage runningStateChange) { if (runningStateChange.Source == this) { // We sent this request this.RunningStateDescription = runningStateChange.RunningStateDescription; this.IsRunning = runningStateChange.IsRunning; } }
/// <summary> /// Handles the change in running state /// </summary> private void HandleRunningStateChange(LiteActionRunningStateMessage runningStateMessage) { // Propagate the changes to the individual queries; in case one of the queries // is responsible for the running-state change, make it display the progress indicator. foreach (var query in this.Queries) { query.HandleRunningStateChange(runningStateMessage); } if (this.NewQuery != null) { this.NewQuery.HandleRunningStateChange(runningStateMessage); } }