Hey,
Sorry for the stupid question, but is it that crucial not to have a button in your ribbon?
Looks like what you're trying to do is complicated, it depends on the view, has to be updated every time you create a ScopeBox or change your view, which means create listeners, etc...
So why not a simpler way, let's say a good old button? So that you compute it once everytime the user clicks... I guess you even can create a shortcut (I haven't but I guess you can).