com.google.gwt.activity.shared

## Class ActivityManager

- java.lang.Object
- - com.google.gwt.activity.shared.ActivityManager

All Implemented Interfaces:
  EventHandler, PlaceChangeEvent.Handler, PlaceChangeRequestEvent.Handler

    public class ActivityManager
    extends java.lang.Object
    implements PlaceChangeEvent.Handler, PlaceChangeRequestEvent.Handler

Manages `Activity` objects that should be kicked off in response to `PlaceChangeEvent` events. Each activity can start itself asynchronously, and provides a widget to be shown when it's ready to run.

### Constructor Summary

Constructors
Constructor and Description
`ActivityManager(ActivityMapper mapper, EventBus eventBus)` Create an ActivityManager.

### Method Summary

All Methods Instance Methods Concrete Methods
`EventBus` `getActiveEventBus()` Returns an event bus which is in use by the currently running activity.
`void` `onPlaceChange(PlaceChangeEvent event)` Deactivate the current activity, find the next one from our ActivityMapper, and start it.
`void` `onPlaceChangeRequest(PlaceChangeRequestEvent event)` Reject the place change if the current activity is not willing to stop.
`void` `setDisplay(AcceptsOneWidget display)` Sets the display for the receiver, and has the side effect of starting or stopping its monitoring the event bus for place change events.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ActivityManager

    public ActivityManager(ActivityMapper mapper,
                           EventBus eventBus)

Create an ActivityManager. Next call `setDisplay(com.google.gwt.user.client.ui.AcceptsOneWidget)`.

Parameters:
  `mapper` - finds the `Activity` for a given `Place`
  `eventBus` - source of `PlaceChangeEvent` and `PlaceChangeRequestEvent` events.

### Method Detail

#### getActiveEventBus

    public EventBus getActiveEventBus()

Returns an event bus which is in use by the currently running activity.

Any handlers attached to the returned event bus will be de-registered when the current activity is stopped.

Returns:
  the event bus used by the current activity

#### onPlaceChange

    public void onPlaceChange(PlaceChangeEvent event)

Deactivate the current activity, find the next one from our ActivityMapper, and start it.

The current activity's widget will be hidden immediately, which can cause flicker if the next activity provides its widget asynchronously. That can be minimized by decent caching. Perenially slow activities might mitigate this by providing a widget immediately, with some kind of "loading" treatment.

Specified by:
  `onPlaceChange` in interface `PlaceChangeEvent.Handler`
Parameters:
  `event` - the `PlaceChangeEvent`

#### onPlaceChangeRequest

    public void onPlaceChangeRequest(PlaceChangeRequestEvent event)

Reject the place change if the current activity is not willing to stop.

Specified by:
  `onPlaceChangeRequest` in interface `PlaceChangeRequestEvent.Handler`
Parameters:
  `event` - the `PlaceChangeRequestEvent`
See Also:
  `PlaceChangeRequestEvent.Handler.onPlaceChangeRequest(PlaceChangeRequestEvent)`

#### setDisplay

    public void setDisplay(AcceptsOneWidget display)

Sets the display for the receiver, and has the side effect of starting or stopping its monitoring the event bus for place change events.

If you are disposing of an ActivityManager, it is important to call setDisplay(null) to get it to deregister from the event bus, so that it can be garbage collected.

Parameters:
  `display` - an instance of AcceptsOneWidget