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