Interface ActivityManager

  • All Known Implementing Classes:
    ActivityManagerImpl, PluginActivityManagerImpl

    public interface ActivityManager
    A facility for obtaining references to specific Activity instances 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 a PlaceManager.

    If you do need an instance of ActivityManager in your application, obtain it using @Inject.

    See Also:
    PlaceManager, Activity
    • Method Detail

      • getActivities

        @Deprecated
        <T extends ActivitySet<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 calling ClientBeanManager.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, are active, and that the current user has permission to access.
        Parameters:
        abstractScreenActivityClass - the type of activities to enumerate. Must not be null. Passing in Activity.class will 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,
                                    boolean secure)
        Returns the set of activities that can handle the given PlaceRequest. The activities will be in the started state (see Activity for 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 the AuthorizationManager service 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,
                             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 handle
        secure - flag indicating if calls to the AuthorizationManager service 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,
                                           boolean secure)
        Works like getActivities(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 use getActivities(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 handle
        secure - flag indicating if calls to the AuthorizationManager service 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 - if activity is 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.