he generally adopted way of doing things in GWT is to have custom
events go through the event bus. In this case, you're talking about
"navigation", so maybe the concept of "place" would be better than
"just" some custom event. I encourage you to look at gwt-platform, gwt-
presenter and other MVP frameworks for GWT, and/or look at the
Activity concept from the upcoming GWT 2.1.
Using actvities, you'd have an ActivityManager managing your "center".
The tree would use the PlaceController.goTo to navigate to a new
"place". An ActivityMapper (that you passed to the ActivityManager in
the constructor) would map the place to an Activity (a presenter), and
the ActivityManager will manage the current Activity for the display
it manages, i.e.it will stop() the current activity if its ok
(willStop returns true) and then only start the new Activity, which
will call the Display back to show its view.
The tree would probably also listen to PlaceChangeEvent on the event
bus to update the selected item depending on the current place (in
case some other component calls the PlaceController.goTo)