Package org.uberfire.client.mvp
Interface ActivityManager
-
- All Known Implementing Classes:
ActivityManagerImpl,PluginActivityManagerImpl
public interface ActivityManagerA facility for obtaining references to specificActivityinstances and for enumerating or discovering all available activities of a certain type (screens, editors, popup dialogs, and so on). Also responsible for shutting down and releasing Activity instances when they are no longer needed.Note that you may never need to use an ActivityManager. While used extensively within the framework, UberFire application code rarely comes into direct contact with activities, which are essentially autogenerated wrappers around classes annotated with
WorkbenchScreen,WorkbenchEditor,WorkbenchPopup, and friends. Most Activity-related tasks can be accomplished at arm's length through aPlaceManager.If you do need an instance of ActivityManager in your application, obtain it using
@Inject.- See Also:
PlaceManager,Activity
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description booleancontainsActivity(org.uberfire.mvp.PlaceRequest placeRequest)Returns an active, accessible activity that can handle the given PlaceRequest.voiddestroyActivity(Activity activity)Destroys the given Activity bean instance, making it eligible for garbage collection.<T extends Activity>
Set<T>getActivities(Class<T> abstractScreenActivityClass)Deprecated.this method returns Activity instances that have not had their onStartup() methods invoked, so they can not be displayed according to the normal Activity lifecycle.Set<Activity>getActivities(org.uberfire.mvp.PlaceRequest placeRequest)Calls togetActivities(PlaceRequest)with security checks enabled.Set<Activity>getActivities(org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)Returns the set of activities that can handle the given PlaceRequest.<T extends Activity>
TgetActivity(Class<T> clazz, org.uberfire.mvp.PlaceRequest placeRequest)Calls to asgetActivity(Class, PlaceRequest)with security checks enabled.<T extends Activity>
TgetActivity(Class<T> clazz, org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)Works likegetActivities(PlaceRequest, boolean)but performs an unsafe cast to treat the return value as an instance of the given class.ActivitygetActivity(org.uberfire.mvp.PlaceRequest placeRequest)Calls to asgetActivity(PlaceRequest)with security checks enabled.ActivitygetActivity(org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)Finds an activity that can handle the given PlaceRequest, creating and starting a new one if necessary.SplashScreenActivitygetSplashScreenInterceptor(org.uberfire.mvp.PlaceRequest placeRequest)Returns the splash screen activity that should appear upon navigation to the given place, if such a splash screen exists.booleanisStarted(Activity activity)Returns true if the given Activity instance is currently in the started or open state and managed by this ActivityManager.
-
-
-
Method Detail
-
getActivities
@Deprecated <T extends Activity> Set<T> getActivities(Class<T> abstractScreenActivityClass)
Deprecated.this method returns Activity instances that have not had their onStartup() methods invoked, so they can not be displayed according to the normal Activity lifecycle. It is also up to the caller to free each of the returned Activity instances by callingClientBeanManager.destroyBean(Object)on them. Consider using the Errai bean manager and UberFire AuthorizationManager directly instead of using this method. See UF-105 for details.Obtains the set of activity instances which implement the given type, areactive, and that the current userhas permission to access.- Parameters:
abstractScreenActivityClass- the type of activities to enumerate. Must not be null. Passing inActivity.classwill yield all possible activity types.- Returns:
- the set of available activities. Never null. Each object in the returned set must be freed by the caller
via a call to
ClientBeanManager.destroyBean(Object).
-
getSplashScreenInterceptor
SplashScreenActivity getSplashScreenInterceptor(org.uberfire.mvp.PlaceRequest placeRequest)
Returns the splash screen activity that should appear upon navigation to the given place, if such a splash screen exists. In case multiple splash screens would intercept the given place request, one of them is chosen at random. TODO (UF-93) : make this deterministic.- Parameters:
placeRequest- the place request to look up a splash screen for.- Returns:
- a splash screen which should be displayed upon navigation to the given place, or null if no such activity exists.
-
getActivities
Set<Activity> getActivities(org.uberfire.mvp.PlaceRequest placeRequest)
Calls togetActivities(PlaceRequest)with security checks enabled.
-
getActivities
Set<Activity> getActivities(org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)
Returns the set of activities that can handle the given PlaceRequest. The activities will be in the started state (seeActivityfor details on the activity lifecycle). If the PlaceRequest is for a certain place ID, this method will return a set with at most one activity in it. If the PlaceRequest is for a certain path, the returned set can contain any number of activities.- Parameters:
placeRequest- the PlaceRequest to resolve activities for. Although null is permitted for convenience, it always resolves to the empty set.secure- flag indicating if calls to theAuthorizationManagerservice are required in order to determine which activities are available.- Returns:
- an unmodifiable set of activities that can handle the given PlaceRequest. Never null, but can be empty.
To prevent memory leaks, pass Activity in the returned set to
destroyActivity(Activity)when you are done with it.
-
containsActivity
boolean containsActivity(org.uberfire.mvp.PlaceRequest placeRequest)
Returns an active, accessible activity that can handle the given PlaceRequest. In case there are multiple activities that can handle the given place request, one of them is chosen at random. TODO (UF-92) : make this deterministic.- Parameters:
placeRequest-- Returns:
- an activity that handles the given PlaceRequest, or null if no available activity can handle. No
actual type checking is performed! If you guess the type wrong, you will have an instance of the
wrong type. The only truly "safe" type to guess is
Activity..
-
getActivity
Activity getActivity(org.uberfire.mvp.PlaceRequest placeRequest)
Calls to asgetActivity(PlaceRequest)with security checks enabled.
-
getActivity
Activity getActivity(org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)
Finds an activity that can handle the given PlaceRequest, creating and starting a new one if necessary.- Parameters:
placeRequest- the place the resolved activity should handlesecure- flag indicating if calls to theAuthorizationManagerservice are required in order to determine if the resulting activity is available.- Returns:
- an activity that can handle the request, or null if no known activity can handle it. If the return value is non-null, it will be an activity in the started or open state.
-
getActivity
<T extends Activity> T getActivity(Class<T> clazz, org.uberfire.mvp.PlaceRequest placeRequest)
Calls to asgetActivity(Class, PlaceRequest)with security checks enabled.
-
getActivity
<T extends Activity> T getActivity(Class<T> clazz, org.uberfire.mvp.PlaceRequest placeRequest, boolean secure)
Works likegetActivities(PlaceRequest, boolean)but performs an unsafe cast to treat the return value as an instance of the given class. Only use this method if you are absolutely sure which activity type matches the request. If you are wrong, there will not be a ClassCastException as a result of this call. The safer approach is to usegetActivities(PlaceRequest, boolean)and cast its return value explicitly.- Parameters:
clazz- the type of activity that you expect to find.placeRequest- the place the resolved activity should handlesecure- flag indicating if calls to theAuthorizationManagerservice are required in order to determine if the resulting activity is available.- Returns:
- an activity that can handle the request, or null if no known activity can handle it. If the return value is non-null, it will be an activity in the started or open state.
-
destroyActivity
void destroyActivity(Activity activity)
Destroys the given Activity bean instance, making it eligible for garbage collection.- Parameters:
activity- the activity instance to destroy. Warning: do not use with instances of SplashScreenActivity. These are ApplicationScoped and cannot be destroyed.- Throws:
IllegalArgumentException- ifactivityis a SplashScreenActivity. TODO (UF-91) : fix this.
-
isStarted
boolean isStarted(Activity activity)
Returns true if the given Activity instance is currently in the started or open state and managed by this ActivityManager.- Parameters:
activity- the activity to check- Returns:
- true if the activity is started; false if it is uninitialized.
-
-