in src/main/java/org/apache/directory/fortress/web/panel/RoleAdminDetailPanel.java [108:232]
private void addPermOUSearchModal()
{
final ModalWindow permousModalWindow;
add( permousModalWindow = new ModalWindow( "permoumodal" ) );
final OUSearchModalPanel permouSearchModalPanel = new OUSearchModalPanel( permousModalWindow.getContentId(),
permousModalWindow, false );
permousModalWindow.setContent( permouSearchModalPanel );
permousModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public void onClose( AjaxRequestTarget target )
{
OrgUnit ou = permouSearchModalPanel.getSelection();
if ( ou != null )
{
permouSelection = ou.getName();
AdminRole adminRole = ( AdminRole ) getDefaultModelObject();
adminRole.setOsP( permouSelection );
target.add( permouCB );
}
}
} );
add( new AjaxButton( GlobalIds.PERMOU_SEARCH )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on permission OU search";
msg += permouSelection != null ? ": " + permouSelection : "";
permouSearchModalPanel.setSearchVal( permouSelection );
LOG.debug( msg );
target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
permousModalWindow.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 );
}
} );
permousModalWindow.setTitle( "Perm Organization Selection Modal" );
permousModalWindow.setInitialWidth( 450 );
permousModalWindow.setInitialHeight( 450 );
permousModalWindow.setCookieName( "permou-modal" );
add( new AjaxButton( "permou.delete" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on permous.delete";
if ( StringUtils.isNotEmpty( permouSelection ) )
{
msg += " selection:" + permouSelection;
AdminRole adminRole = ( AdminRole ) getForm().getModel().getObject();
if ( adminRole.getOsPSet() != null )
{
adminRole.getOsPSet().remove( permouSelection );
permous.remove( permouSelection );
permouSelection = "";
target.add( permouCB );
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 );
}
} );
}