class UserCreationWorkflow extends BaseUserEditorWorkflow {

    public void create() {
        checkClear();

        // Permissions can not be shown until the user is created
        getUserEditor().setPermissionsVisible(false);

        // Show the create entity component for user instance types.
        createEntity.show(UsersManagementWidgetsConstants.INSTANCE.inputUserName(),
                          UsersManagementWidgetsConstants.INSTANCE.username() + "...");

        // Show the create entity view.
        view.setWidget(createEntity.asWidget())
                .setCancelButtonVisible(false)
                .setSaveButtonVisible(true)
                .setSaveButtonEnabled(true)
                .setSaveButtonText(UsersManagementWidgetsConstants.INSTANCE.next())
                .setCallback(new EntityWorkflowView.Callback() {
                    @Override
                    public void onSave() {
                        UserCreationWorkflow.this.onCreateEntityClick();
                    }

                    @Override
                    public void onCancel() {

                    }
                });
    }

    @Inject public  UserCreationWorkflow(final ClientUserSystemManager userSystemManager,
                                final Event<OnErrorEvent> errorEvent,
                                final Event<NotificationEvent> workbenchNotification,
                                final Event<DeleteUserEvent> deleteUserEvent,
                                final Event<SaveUserEvent> saveUserEvent,
                                final Event<CreateUserEvent> createUserEvent,
                                final ConfirmBox confirmBox,
                                final CreateEntity createEntity,
                                final UserEditor userEditor,
                                final UserEditorDriver userEditorDriver,
                                final ChangePassword changePassword,
                                final LoadingBox loadingBox,
                                final EntityWorkflowView view);

}