private void addPermOUSearchModal()

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


    private void addPermOUSearchModal()
    {
        final ModalWindow permousModalWindow;
        add( permousModalWindow = new ModalWindow( "permoumodal" ) );
        final OUSearchModalPanel permouSearchModalPanel = new OUSearchModalPanel( permousModalWindow.getContentId(),
            permousModalWindow, false );
        permousModalWindow.setContent( permouSearchModalPanel );
        permousModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            public void onClose( AjaxRequestTarget target )
            {
                OrgUnit ou = permouSearchModalPanel.getSelection();
                if ( ou != null )
                {
                    permouSelection = ou.getName();
                    AdminRole adminRole = ( AdminRole ) getDefaultModelObject();
                    adminRole.setOsP( permouSelection );
                    target.add( permouCB );
                }
            }
        } );

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


            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                String msg = "clicked on permission OU search";
                msg += permouSelection != null ? ": " + permouSelection : "";
                permouSearchModalPanel.setSearchVal( permouSelection );
                LOG.debug( msg );
                target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
                permousModalWindow.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 );
            }
        } );

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

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


            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                String msg = "clicked on permous.delete";
                if ( StringUtils.isNotEmpty( permouSelection ) )
                {
                    msg += " selection:" + permouSelection;
                    AdminRole adminRole = ( AdminRole ) getForm().getModel().getObject();
                    if ( adminRole.getOsPSet() != null )
                    {
                        adminRole.getOsPSet().remove( permouSelection );
                        permous.remove( permouSelection );
                        permouSelection = "";
                        target.add( permouCB );
                        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 );
            }
        } );
    }