private void addUserOUSearchModal()

in src/main/java/org/apache/directory/fortress/web/panel/RoleAdminDetailPanel.java [235:359]


    private void addUserOUSearchModal()
    {
        final ModalWindow userousModalWindow;
        add( userousModalWindow = new ModalWindow( "useroumodal" ) );
        final OUSearchModalPanel userouSearchModalPanel = new OUSearchModalPanel( userousModalWindow.getContentId(),
            userousModalWindow, true );
        userousModalWindow.setContent( userouSearchModalPanel );
        userousModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            public void onClose( AjaxRequestTarget target )
            {
                OrgUnit ou = userouSearchModalPanel.getSelection();
                if ( ou != null )
                {
                    userouSelection = ou.getName();
                    AdminRole adminRole = ( AdminRole ) getDefaultModelObject();
                    adminRole.setOsU( userouSelection );
                    target.add( userouCB );
                }
            }
        } );

        add( new AjaxButton( GlobalIds.USEROU_SEARCH )
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                String msg = "clicked on user OU search";
                msg += userouSelection != null ? ": " + userouSelection : "";
                userouSearchModalPanel.setSearchVal( userouSelection );
                LOG.debug( msg );
                target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
                userousModalWindow.show( target );
            }


            @Override
            protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
            {
                super.updateAjaxAttributes( attributes );
                AjaxCallListener ajaxCallListener = new AjaxCallListener()
                {
                    /** Default serialVersionUID */
                    private static final long serialVersionUID = 1L;


                    @Override
                    public CharSequence getFailureHandler( Component component )
                    {
                        return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                    }
                };
                attributes.getAjaxCallListeners().add( ajaxCallListener );
            }
        } );

        userousModalWindow.setTitle( "User Organization Selection Modal" );
        userousModalWindow.setInitialWidth( 450 );
        userousModalWindow.setInitialHeight( 450 );
        userousModalWindow.setCookieName( "permou-modal" );

        add( new AjaxButton( "userou.delete" )
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                String msg = "clicked on userous.delete";
                if ( StringUtils.isNotEmpty( userouSelection ) )
                {
                    msg += " selection:" + userouSelection;
                    AdminRole adminRole = ( AdminRole ) getForm().getModel().getObject();
                    if ( adminRole.getOsUSet() != null )
                    {
                        adminRole.getOsUSet().remove( userouSelection );
                        userous.remove( userouSelection );
                        userouSelection = "";
                        target.add( userouCB );
                        msg += ", was removed from local, commit to persist changes on server";
                    }
                    else
                    {
                        msg += ", no action taken because org unit does not have parent set";
                    }
                }
                else
                {
                    msg += ", no action taken because parents selection is empty";
                }
                LOG.debug( msg );
            }


            @Override
            protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
            {
                super.updateAjaxAttributes( attributes );
                AjaxCallListener ajaxCallListener = new AjaxCallListener()
                {
                    /** Default serialVersionUID */
                    private static final long serialVersionUID = 1L;


                    @Override
                    public CharSequence getFailureHandler( Component component )
                    {
                        return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                    }
                };
                attributes.getAjaxCallListeners().add( ajaxCallListener );
            }
        } );
    }