public RoleListPanel()

in src/main/java/org/apache/directory/fortress/web/panel/RoleListPanel.java [78:238]


    public RoleListPanel( String id, final boolean isAdmin )
    {
        super( id );
        this.isAdmin = isAdmin;
        RoleListModel roleListModel = new RoleListModel( createRole( "" ), isAdmin, SecUtils.getSession( this ) );
        setDefaultModel( roleListModel );
        List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
            new ArrayList<>();
        columns.add( new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
            Model.of( "Name" ), "userObject.name" ) );

        PropertyColumn description = new PropertyColumn<>(
            Model.of( "Description" ), "userObject.Description" );
        description.setInitialSize( 300 );
        columns.add( description );

        PropertyColumn beginDate = new PropertyColumn<>(
            Model.of( "Begin Date" ), "userObject.BeginDate" );
        beginDate.setInitialSize( 80 );
        columns.add( beginDate );

        PropertyColumn endDate = new PropertyColumn<>(
            Model.of( "End Date" ), "userObject.EndDate" );
        endDate.setInitialSize( 80 );
        columns.add( endDate );

        PropertyColumn beginLockDate = new PropertyColumn<>(
            Model.of( "Begin Lock Dt" ), "userObject.BeginLockDate" );
        beginLockDate.setInitialSize( 80 );
        columns.add( beginLockDate );

        PropertyColumn endLockDate = new PropertyColumn<>(
            Model.of( "End Lock Dt" ), "userObject.EndLockDate" );
        endLockDate.setInitialSize( 80 );
        columns.add( endLockDate );

        PropertyColumn beginTime = new PropertyColumn<>(
            Model.of( "Begin Tm" ), "userObject.BeginTime" );
        beginTime.setInitialSize( 70 );
        columns.add( beginTime );

        PropertyColumn endTime = new PropertyColumn<>(
            Model.of( "End Tm" ), "userObject.EndTime" );
        endTime.setInitialSize( 70 );
        columns.add( endTime );

        PropertyColumn dayMask = new PropertyColumn<>(
            Model.of( "DayMask" ), "userObject.DayMask" );
        dayMask.setInitialSize( 80 );
        columns.add( dayMask );

        PropertyColumn parents = new PropertyColumn<>(
            Model.of( "Parents" ), "userObject.parents" );
        parents.setInitialSize( 250 );
        columns.add( parents );

        List<T> roles = ( List<T> ) getDefaultModel().getObject();
        treeModel = createTreeModel( roles );
        grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>( "roletreegrid", treeModel, columns )
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            public void selectItem( IModel itemModel, boolean selected )
            {
                node = ( DefaultMutableTreeNode ) itemModel.getObject();
                if ( !node.isRoot() )
                {
                    T role = ( T ) node.getUserObject();
                    if ( super.isItemSelected( itemModel ) )
                    {
                        LOG.debug( "TreeGrid.addGrid.selectItem item is selected" );
                        super.selectItem( itemModel, false );
                    }
                    else
                    {
                        super.selectItem( itemModel, true );
                        SelectModelEvent.send( getPage(), this, ( FortEntity ) role );
                    }
                }
            }
        };
        //grid.setContentHeight( 50, SizeUnit.EM );
        grid.setAllowSelectMultiple( false );
        grid.setClickRowToSelect( true );
        grid.setClickRowToDeselect( false );
        grid.setSelectToEdit( false );
        // expand the root node
        grid.getTreeState().expandAll();
        Form listForm = new Form( "form" );
        listForm.add( grid );
        grid.setOutputMarkupId( true );
        TextField searchValFld = new TextField( GlobalIds.SEARCH_VAL, new PropertyModel<String>( this,
            GlobalIds.SEARCH_VAL ) );
        listForm.add( searchValFld );

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

            @Override
            protected void onSubmit( AjaxRequestTarget target )
            {
                LOG.debug( ".search onSubmit" );
                info( "Searching Roles..." );
                if ( !StringUtils.isNotEmpty( searchVal ) )
                {
                    searchVal = "";
                }

                Role srchRole = createRole( searchVal );
                setDefaultModel( new RoleListModel( srchRole, isAdmin, SecUtils.getSession( this ) ) );
                treeModel.reload();
                rootNode.removeAllChildren();
                List<Role> roles = ( List<Role> ) getDefaultModelObject();
                if ( CollectionUtils.isNotEmpty( roles ) )
                {
                    for ( T role : ( List<T> ) roles )
                        rootNode.add( new DefaultMutableTreeNode( role ) );
                    info( "Search returned " + roles.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 );
            }
        } );
        add( listForm );
    }