Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
add ICanBeBusy and show indeterminate progress bar #615
Conversation
ICanBeBusy will only work when class also implements INotifyPropertyChanged (basicaly if the ViewModel inherits fron NotificationAwareObject then it'll work as expected) New interface ICanBeBusy. Updated GitHubPaneViewModel to proxy IsBusy from hosted views whose VM implement ICanBeBusy. Show indeterminate progress bar and disabled hosted view if IsBusy. Proxy IsBusy from ICanBeBusy to the IsBusy Observable in SimpleViewUserControl.
|
just been reading over 'Maintainer workflow' and think that this PR is probably superfluous as it looks like some of this stuff has been rolled into that one... i'll leave this here anyway as it looks like the 2 implementations are a bit different but if you want to close this in favour of whats coming in there then that's understandable. |
|
Thank you so much for this! We've been going back and forth on how to handle busy states and forward them from hosted view/viewmodels out to the container, and what you did here on this PR is one of the possible approaches, we just had no time to actually implement it to try it out. I'll wait until @grokys has a chance to look this over and comment on it as he's been doing most of the work that needs this. |
|
That's fine.. feel free to just treat this more as a suggested option that a real request for merging in. |
|
Closing because this is stale. |

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

Wanted to help out and thought this issue looks like it shouldn't be too difficult or would require any sweeping changes to implement.
Gotchas
ICanBeBusywill only work when the class also implementsINotifyPropertyChanged(basically if the ViewModel inherits fromNotificationAwareObjectthen it'll work as expected)Overview of changes:
ICanBeBusyGitHubPaneViewModelto proxyIsBusyfrom hosted views whose VM implementICanBeBusy.GitHubPaneViewand disabled hosted view ifIsBusyset to true.IsBusyfromICanBeBusyto theIsBusyObservable inSimpleViewUserControl.(not sure is this one wanted doing but it looked like it was there for a reason)
Other things of note
This PR doesn't actually enable any of the current viewmodels to use
ICanBeBusy(yet), would prefer some guidance on which one should use this, didn't just want to be disabling any random views as I assumed they are already internally handling there own busy state UI.What I could do is just stop disabling the view (let the view handle its own disabling if required) and then I feel pretty confident that I could just slap
ICanBeBusyon anything that currently setting theIsBusyproperty onBaseViewModel. We can always add a second interface that explicitly opts into the view being disabled wholesale anICanBeReallyBusyfor example.Fixes #554