public OUDetailForm()

in src/main/java/org/apache/directory/fortress/web/panel/OUDetailPanel.java [115:423]


        public OUDetailForm( String id, final IModel<OrgUnit> model )
        {
            super( id, model );

            if ( isUser )
                parent.setType( OrgUnit.Type.USER );
            else
                parent.setType( OrgUnit.Type.PERM );

            add( addPB = new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.DEL_ADMIN_MGR, "addOU" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                //protected void onSubmit( AjaxRequestTarget target, Form form )
                {
                    LOG.debug( ".onSubmit Add" );
                    OrgUnit orgUnit = ( OrgUnit ) getForm().getModel().getObject();
                    //OrgUnit orgUnit = ( OrgUnit ) form.getModel().getObject();
                    updateEntityWithComboData( orgUnit );
                    try
                    {
                        delAdminMgr.add( orgUnit );
                        SaveModelEvent.send( getPage(), this, orgUnit, target, SaveModelEvent.Operations.ADD );
                        component = editForm;
                        String msg = "OrgUnit: " + orgUnit.getName() + " has been added";
                        display.setMessage( msg );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                        display.display();
                    }
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.info( "OUDetailPanel.add.onError caught" );
                    target.add();
                }


                @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 );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.COMMIT, GlobalIds.DEL_ADMIN_MGR, "updateOU" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                //protected void onSubmit( AjaxRequestTarget target, Form form )
                {
                    LOG.debug( ".onSubmit Commit" );
                    OrgUnit orgUnit = ( OrgUnit ) getForm().getModel().getObject();
                    //OrgUnit orgUnit = ( OrgUnit ) form.getModel().getObject();
                    try
                    {
                        updateEntityWithComboData( orgUnit );
                        delAdminMgr.update( orgUnit );
                        String msg = "OrgUnit: " + orgUnit.getName() + " has been updated";
                        SaveModelEvent.send( getPage(), this, orgUnit, target, SaveModelEvent.Operations.UPDATE );
                        component = editForm;
                        display.setMessage( msg );
                        parentsSelection = "";
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                        display.display();
                    }
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "OUDetailPanel.update.onError" );
                }


                @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 );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.DELETE, GlobalIds.DEL_ADMIN_MGR, "deleteOU" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                //protected void onSubmit( AjaxRequestTarget target, Form form )
                {
                    LOG.debug( ".onSubmit delete" );
                    OrgUnit orgUnit = ( OrgUnit ) getForm().getModel().getObject();
                    //OrgUnit orgUnit = ( OrgUnit ) form.getModel().getObject();
                    try
                    {
                        delAdminMgr.delete( orgUnit );
                        clearDetailFields();
                        String msg = "OrgUnit: " + orgUnit.getName() + " has been deleted";
                        component = editForm;
                        SaveModelEvent.send( getPage(), this, orgUnit, target, SaveModelEvent.Operations.DELETE );
                        display.setMessage( msg );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                        display.display();
                    }
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "OUDetailPanel.delete.onError" );
                }


                @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 );
                }
            } );
            add( new AjaxSubmitLink( GlobalIds.CANCEL )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                //protected void onSubmit( AjaxRequestTarget target, Form form )
                {
                    clearDetailFields();
                    component = editForm;
                    String msg = "OU Detail cancelled input form";
                    display.setMessage( msg );
                }


                @Override
                public void onError( AjaxRequestTarget target )
                //public void onError( AjaxRequestTarget target, Form form )
                {
                    LOG.warn( "OUDetailPanel.cancel.onError" );
                }


                @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 );
                }
            } );

            if ( isUser )
            {
                add( new Label( "ouAssignmentsLabel", "User Organizational Detail" ) );
            }
            else
            {
                add( new Label( "ouAssignmentsLabel", "Permission Organizational Detail" ) );
            }

            nameTF = new TextField( "name" );
            add( nameTF );
            TextField description = new TextField( "description" );
            description.setRequired( false );
            add( description );
            Label iid = new Label( "id" );
            add( iid );
            parentsCB = new ComboBox<>( PARENTS, new PropertyModel<String>( this, PARENTS_SELECTION ), parents );
            add( parentsCB );
            setOutputMarkupId( true );
            addParentSearchModal();

            add( new AjaxButton( "parents.delete" )
            {
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on members.delete";
                    if ( StringUtils.isNotEmpty( parentsSelection ) )
                    {
                        msg += " selection:" + parentsSelection;
                        OrgUnit orgUnit = ( OrgUnit ) getForm().getModel().getObject();
                        if ( orgUnit.getParents() != null )
                        {
                            orgUnit.getParents().remove( parentsSelection );
                            parents.remove( parentsSelection );
                            parentsSelection = "";
                            parents = new ArrayList<>();
                            parentsCB = new ComboBox<>( PARENTS, new PropertyModel<String>( this,
                                PARENTS_SELECTION ), parents );
                            component = editForm;
                            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";
                    }
                    display.setMessage( msg );
                    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 );
                }
            } );
        }