in src/main/java/org/apache/directory/fortress/web/panel/RoleAdminDetailPanel.java [235:359]
private void addUserOUSearchModal()
{
final ModalWindow userousModalWindow;
add( userousModalWindow = new ModalWindow( "useroumodal" ) );
final OUSearchModalPanel userouSearchModalPanel = new OUSearchModalPanel( userousModalWindow.getContentId(),
userousModalWindow, true );
userousModalWindow.setContent( userouSearchModalPanel );
userousModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public void onClose( AjaxRequestTarget target )
{
OrgUnit ou = userouSearchModalPanel.getSelection();
if ( ou != null )
{
userouSelection = ou.getName();
AdminRole adminRole = ( AdminRole ) getDefaultModelObject();
adminRole.setOsU( userouSelection );
target.add( userouCB );
}
}
} );
add( new AjaxButton( GlobalIds.USEROU_SEARCH )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on user OU search";
msg += userouSelection != null ? ": " + userouSelection : "";
userouSearchModalPanel.setSearchVal( userouSelection );
LOG.debug( msg );
target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
userousModalWindow.show( target );
}
@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 );
}
} );
userousModalWindow.setTitle( "User Organization Selection Modal" );
userousModalWindow.setInitialWidth( 450 );
userousModalWindow.setInitialHeight( 450 );
userousModalWindow.setCookieName( "permou-modal" );
add( new AjaxButton( "userou.delete" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on userous.delete";
if ( StringUtils.isNotEmpty( userouSelection ) )
{
msg += " selection:" + userouSelection;
AdminRole adminRole = ( AdminRole ) getForm().getModel().getObject();
if ( adminRole.getOsUSet() != null )
{
adminRole.getOsUSet().remove( userouSelection );
userous.remove( userouSelection );
userouSelection = "";
target.add( userouCB );
msg += ", was removed from local, commit to persist changes on server";
}
else
{
msg += ", no action taken because org unit does not have parent set";
}
}
else
{
msg += ", no action taken because parents selection is empty";
}
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 );
}
} );
}