public ObjectListPanel()

in src/main/java/org/apache/directory/fortress/web/panel/ObjectListPanel.java [87:196]


    public ObjectListPanel( String id, final boolean isAdmin )
    {
        super( id );
        ObjectListModel objectListModel = new ObjectListModel( new PermObj( "" ), isAdmin,
            SecUtils.getSession( this ) );
        setDefaultModel( objectListModel );
        addGrid();
        radioGroup = new RadioGroup( "searchOptions", new PropertyModel( this, "selectedRadioButton" ) );
        add( radioGroup );
        Radio objectRb = new Radio( "objectRb", new Model( Character.valueOf( NAMES ) ) );
        radioGroup.add( objectRb );
        Radio ouRb = new Radio( "ouRb", new Model( Character.valueOf( OUS ) ) );
        radioGroup.add( ouRb );
        addOUSearchModal( ouRb );
        radioGroup.setOutputMarkupId( true );
        radioGroup.setRenderBodyOnly( false );
        searchValFld = new TextField( GlobalIds.SEARCH_VAL, new PropertyModel<String>( this, GlobalIds.SEARCH_VAL ) );
        searchValFld.setOutputMarkupId( true );
        AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            protected void onUpdate( final AjaxRequestTarget target )
            {
                target.add( searchValFld );
            }
        };
        searchValFld.add( ajaxUpdater );
        radioGroup.add( searchValFld );

        this.listForm.add( radioGroup );
        selectedRadioButton = NAMES;

        this.listForm.add( new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.REVIEW_MGR, "findPermObjs" )
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                LOG.debug( ".search.onSubmit selected radio button: " + selectedRadioButton );
                info( "Searching Permission Objects..." );
                if ( !StringUtils.isNotEmpty( searchVal ) )
                {
                    searchVal = "";
                }
                PermObj srchObject = new PermObj();
                switch ( selectedRadioButton )
                {
                    case NAMES:
                        LOG.debug( ".onSubmit OBJECT RB selected" );
                        srchObject.setObjName( searchVal );
                        break;
                    case OUS:
                        LOG.debug( ".onSubmit OUS RB selected" );
                        srchObject.setOu( searchVal );
                        break;
                }
                setDefaultModel( new ObjectListModel( srchObject, isAdmin,
                    SecUtils.getSession( this ) ) );
                treeModel.reload();
                rootNode.removeAllChildren();
                List<PermObj> permObjs = ( List<PermObj> ) getDefaultModelObject();
                if ( CollectionUtils.isNotEmpty( permObjs ) )
                {
                    for ( PermObj permObj : permObjs )
                        rootNode.add( new DefaultMutableTreeNode( permObj ) );
                    info( "Search returned " + permObjs.size() + " matching objects" );
                }
                else
                {
                    info( "No matching objects found" );
                }
                target.add( grid );
            }


            @Override
            public void onError( AjaxRequestTarget target )
            {
                LOG.warn( ".search.onError" );
                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 );
            }
        } );
    }