in src/main/java/org/apache/directory/fortress/web/panel/PermListPanel.java [83:260]
public PermListPanel( String id, final boolean isAdmin )
{
super( id );
this.isAdmin = isAdmin;
PermListModel permListModel = new PermListModel( new Permission( "", "" ),
isAdmin, SecUtils.getSession( this ) );
setDefaultModel( permListModel );
List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
new ArrayList<>();
PropertyColumn objName = new PropertyColumn( new Model( "Object Name" ), "userObject.ObjName" );
objName.setInitialSize( 350 );
columns.add( objName );
columns.add( new PropertyColumn( new Model( "Object Id" ), "userObject.ObjId" ) );
columns.add( new PropertyColumn( new Model( "Operation Name" ), "userObject.OpName" ) );
PropertyColumn description = new PropertyColumn( new Model( "Description" ),
"userObject.Description" );
description.setInitialSize( 300 );
columns.add( description );
String roleAssignLabel;
if ( isAdmin )
{
roleAssignLabel = "Admin Role Assignments";
}
else
{
roleAssignLabel = "RBAC Role Assignments";
}
PropertyColumn roles = new PropertyColumn( new Model( roleAssignLabel ), "userObject.Roles" );
roles.setInitialSize( 500 );
columns.add( roles );
List<Permission> perms = ( List<Permission> ) getDefaultModel().getObject();
treeModel = createTreeModel( perms );
grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>( "permtreegrid", 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() )
{
Permission perm = ( Permission ) node.getUserObject();
LOG.debug( "TreeGrid.addGrid.selectItem selected perm objNm: " + perm.getObjName() + " opNm: "
+ perm.getOpName() );
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, perm );
}
}
}
};
//grid.setContentHeight( 50, SizeUnit.EM );
grid.setAllowSelectMultiple( false );
grid.setClickRowToSelect( true );
grid.setClickRowToDeselect( false );
grid.setSelectToEdit( false );
// expand the root node
grid.getTreeState().expandAll();
listForm = new Form( "form" );
listForm.add( grid );
grid.setOutputMarkupId( true );
add( listForm );
permObjectFld = new TextField( "permObject", new PropertyModel<String>( this, "permObject" ) );
permObjectFld.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( permObjectFld );
}
};
permObjectFld.add( ajaxUpdater );
this.listForm.add( permObjectFld );
TextField permOperationFld = new TextField( "permOperation", new PropertyModel<String>( this, "permOperation" ) );
this.listForm.add( permOperationFld );
addObjectSearchModal();
this.listForm.add( new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.REVIEW_MGR,
GlobalIds.FIND_PERMISSIONS )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".search onSubmit" );
info( "Searching Perms..." );
if ( !StringUtils.isNotEmpty( permObject ) )
{
permObject = "";
}
if ( !StringUtils.isNotEmpty( permOperation ) )
{
permOperation = "";
}
Permission srchPerm = new Permission( permObject, permOperation );
setDefaultModel( new PermListModel( srchPerm, isAdmin, SecUtils.getSession( this ) ) );
treeModel.reload();
rootNode.removeAllChildren();
List<Permission> perms = ( List<Permission> ) getDefaultModelObject();
if ( CollectionUtils.isNotEmpty( perms ) )
{
for ( Permission perm : perms )
{
rootNode.add( new DefaultMutableTreeNode( perm ) );
}
info( "Search returned " + perms.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 );
}
} );
}