public RoleDetailForm()

in src/main/java/org/apache/directory/fortress/web/panel/RoleDetailPanel.java [133:474]


        public RoleDetailForm( String id, final IModel<T> model )
        {
            super( id, model );
            if ( isAdmin )
            {
                auxPanel = new RoleAdminDetailPanel( GlobalIds.ROLEAUXPANEL, model );
                add( auxPanel );
            }
            else
            {
                add( new WebMarkupContainer( GlobalIds.ROLEAUXPANEL ) );
            }

            this.add( new JQueryBehavior( "#accordion", "accordion" ) );
            constraintPanel = new ConstraintPanel( "constraintpanel", model );
            add( constraintPanel );
            add( new Label( TEMPORAL_CONSTRAINTS_LABEL, new PropertyModel<String>( this,
                TEMPORAL_CONSTRAINTS_LABEL ) ) );
            nameTF = new TextField( "name" );
            add( nameTF );
            TextField description = new TextField( GlobalIds.DESCRIPTION );
            description.setRequired( false );
            add( description );
            Label iid = new Label( "id" );
            add( iid );
            parentsCB = new ComboBox<>( GlobalIds.PARENTS, new PropertyModel<String>( this, PARENTS_SELECTION ),
                parents );
            add( parentsCB );

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


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit Add" );
                    T role = ( T ) getForm().getModel().getObject();
                    updateEntityWithComboData( ( Role ) role );
                    try
                    {
                        String szRoleName;
                        if ( isAdmin )
                        {
                            delAdminMgr.addRole( ( AdminRole ) role );
                            szRoleName = ( ( AdminRole ) role ).getName();
                        }
                        else
                        {
                            adminMgr.addRole( ( Role ) role );
                            szRoleName = ( ( Role ) role ).getName();
                        }

                        parentsSelection = "";
                        parents.add( parentsSelection );
                        SaveModelEvent.send( getPage(), this, ( FortEntity ) role, target,
                            SaveModelEvent.Operations.ADD );
                        component = editForm;
                        String msg = "Role: " + szRoleName + " 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( "RoleDetailPanel.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, objName, GlobalIds.UPDATE_ROLE )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit Commit" );
                    T role = ( T ) getForm().getModel().getObject();
                    updateEntityWithComboData( ( Role ) role );
                    try
                    {
                        String szRoleName;
                        if ( isAdmin )
                        {
                            delAdminMgr.updateRole( ( AdminRole ) role );
                            szRoleName = ( ( AdminRole ) role ).getName();
                        }
                        else
                        {
                            adminMgr.updateRole( ( Role ) role );
                            szRoleName = ( ( Role ) role ).getName();
                        }
                        String msg = "Role: " + szRoleName + " has been updated";
                        SaveModelEvent.send( getPage(), this, ( FortEntity ) role, target,
                            SaveModelEvent.Operations.UPDATE );
                        parentsSelection = "";
                        component = editForm;
                        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( "RoleDetailPanel.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, objName, GlobalIds.DELETE_ROLE )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit Delete" );
                    T role = ( T ) getForm().getModel().getObject();
                    try
                    {
                        String szRoleName;
                        if ( isAdmin )
                        {
                            delAdminMgr.deleteRole( ( AdminRole ) role );
                            szRoleName = ( ( AdminRole ) role ).getName();
                        }
                        else
                        {
                            adminMgr.deleteRole( ( Role ) role );
                            szRoleName = ( ( Role ) role ).getName();
                        }
                        clearDetailFields();
                        String msg = "Role: " + szRoleName + " has been deleted";
                        SaveModelEvent.send( getPage(), this, ( FortEntity ) role, target,
                            SaveModelEvent.Operations.DELETE );
                        component = editForm;
                        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( "RoleDetailPanel.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 )
                {
                    clearDetailFields();
                    component = editForm;
                    String msg = "Role cancelled input form";
                    display.setMessage( msg );
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "RoleDetailPanel.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 ( isAdmin )
            {
                add( new Label( "roleDetailLabel", "Admin Role Detail" ) );
            }
            else
            {
                add( new Label( "roleDetailLabel", "RBAC Role Detail" ) );
            }
            addRoleSearchModal();
            add( new AjaxButton( "roles.delete" )
            {
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on roles.delete";
                    if ( StringUtils.isNotEmpty( parentsSelection ) )
                    {
                        msg += " selection:" + parentsSelection;
                        Role role = ( Role ) getForm().getModel().getObject();
                        if ( role.getParents() != null )
                        {
                            role.getParents().remove( parentsSelection );
                            parents.remove( parentsSelection );
                            parentsSelection = "";
                            component = editForm;
                            msg += ", was removed from local, commit to persist changes on server";
                        }
                        else
                        {
                            msg += ", no action taken because role does not have parent set";
                        }
                    }
                    else
                    {
                        msg += ", no action taken because parent 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 );
                }
            } );
            setOutputMarkupId( true );
        }