class SecurityExplorerScreen {

    @OnStartup
    public void onStartup(final PlaceRequest placeRequest) {
        final String activeTab = placeRequest.getParameter(ACTIVE_TAB,
                                                           ROLES_TAB);

        userSystemManager.waitForInitialization(() -> {
            if (userSystemManager.isActive()) {
                groupsExplorer.show();
                usersExplorer.show();
                view.groupsEnabled(true);
                view.usersEnabled(true);

                if (activeTab.equals(USERS_TAB)) {
                    view.rolesActive(false);
                    view.groupsActive(false);
                    view.usersActive(true);
                } else if (activeTab.equals(GROUPS_TAB)) {
                    view.rolesActive(false);
                    view.groupsActive(true);
                    view.usersActive(false);
                }
            }
        });
    }

    @Inject public  SecurityExplorerScreen(final View view,
                                  final RolesExplorer rolesExplorer,
                                  final GroupsExplorer groupsExplorer,
                                  final UsersExplorer usersExplorer,
                                  final ErrorPopupPresenter errorPopupPresenter,
                                  final PlaceManager placeManager,
                                  final ClientUserSystemManager userSystemManager,
                                  final ClientSecurityExceptionMessageResolver exceptionMessageResolver);

}