in plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/SearchPageWrapper.java [745:908]
public boolean saveToSearch( ISearch search )
{
boolean searchModified = false;
if ( searchNameText != null && !searchNameText.getText().equals( search.getName() ) )
{
search.getSearchParameter().setName( searchNameText.getText() );
searchModified = true;
}
if ( browserConnectionWidget != null && browserConnectionWidget.getBrowserConnection() != null
&& browserConnectionWidget.getBrowserConnection() != search.getBrowserConnection() )
{
search.setBrowserConnection( browserConnectionWidget.getBrowserConnection() );
searchModified = true;
}
if ( searchBaseWidget != null && searchBaseWidget.getDn() != null
&& !searchBaseWidget.getDn().equals( search.getSearchBase() ) )
{
search.getSearchParameter().setSearchBase( searchBaseWidget.getDn() );
searchModified = true;
searchBaseWidget.saveDialogSettings();
}
if ( filterWidget != null && filterWidget.getFilter() != null )
{
if ( !filterWidget.getFilter().equals( search.getFilter() ) )
{
search.getSearchParameter().setFilter( filterWidget.getFilter() );
searchModified = true;
}
filterWidget.saveDialogSettings();
}
if ( returningAttributesWidget != null )
{
if ( !Arrays.equals( returningAttributesWidget.getReturningAttributes(), search.getReturningAttributes() ) )
{
search.getSearchParameter().setReturningAttributes( returningAttributesWidget.getReturningAttributes() );
searchModified = true;
}
returningAttributesWidget.saveDialogSettings();
if ( returnAllAttributesButton != null || returnOperationalAttributesButton != null )
{
List<String> raList = new ArrayList<String>();
raList.addAll( Arrays.asList( search.getReturningAttributes() ) );
if ( returnAllAttributesButton != null )
{
if ( returnAllAttributesButton.getSelection() )
{
raList.add( SchemaConstants.ALL_USER_ATTRIBUTES );
}
if ( returnAllAttributesButton.getSelection() != isActive( RETURN_ALLATTRIBUTES_CHECKED ) )
{
searchModified = true;
}
}
if ( returnOperationalAttributesButton != null )
{
if ( returnOperationalAttributesButton.getSelection() )
{
Collection<AttributeType> opAtds = SchemaUtils
.getOperationalAttributeDescriptions( browserConnectionWidget.getBrowserConnection()
.getSchema() );
Collection<String> opAtdNames = SchemaUtils.getNames( opAtds );
raList.addAll( opAtdNames );
raList.add( SchemaConstants.ALL_OPERATIONAL_ATTRIBUTES );
}
if ( returnOperationalAttributesButton.getSelection() != isActive( RETURN_OPERATIONALATTRIBUTES_CHECKED ) )
{
searchModified = true;
}
}
String[] returningAttributes = raList.toArray( new String[raList.size()] );
search.getSearchParameter().setReturningAttributes( returningAttributes );
}
}
if ( scopeWidget != null )
{
SearchScope scope = scopeWidget.getScope();
if ( scope != search.getScope() )
{
search.getSearchParameter().setScope( scope );
searchModified = true;
}
}
if ( limitWidget != null )
{
int countLimit = limitWidget.getCountLimit();
int timeLimit = limitWidget.getTimeLimit();
if ( countLimit != search.getCountLimit() )
{
search.getSearchParameter().setCountLimit( countLimit );
searchModified = true;
}
if ( timeLimit != search.getTimeLimit() )
{
search.getSearchParameter().setTimeLimit( timeLimit );
searchModified = true;
}
}
if ( aliasesDereferencingWidget != null )
{
Connection.AliasDereferencingMethod aliasesDereferencingMethod = aliasesDereferencingWidget
.getAliasesDereferencingMethod();
if ( aliasesDereferencingMethod != search.getAliasesDereferencingMethod() )
{
search.getSearchParameter().setAliasesDereferencingMethod( aliasesDereferencingMethod );
searchModified = true;
}
}
if ( referralsHandlingWidget != null )
{
Connection.ReferralHandlingMethod referralsHandlingMethod = referralsHandlingWidget
.getReferralsHandlingMethod();
if ( referralsHandlingMethod != search.getReferralsHandlingMethod() )
{
search.getSearchParameter().setReferralsHandlingMethod( referralsHandlingMethod );
searchModified = true;
}
}
if ( subentriesControlButton != null )
{
Set<Control> oldControls = new HashSet<>();
oldControls.addAll( search.getSearchParameter().getControls() );
search.getSearchParameter().getControls().clear();
if ( manageDsaItControlButton.getSelection() )
{
search.getSearchParameter().getControls().add( Controls.MANAGEDSAIT_CONTROL );
}
if ( subentriesControlButton.getSelection() )
{
search.getSearchParameter().getControls().add( Controls.SUBENTRIES_CONTROL );
}
if ( pagedSearchControlButton.getSelection() )
{
int pageSize;
try
{
pageSize = Integer.valueOf( pagedSearchControlSizeText.getText() );
}
catch ( NumberFormatException e )
{
pageSize = 100;
}
boolean isScrollMode = pagedSearchControlScrollButton.getSelection();
PagedResults control = Controls.newPagedResultsControl(pageSize);
search.getSearchParameter().getControls().add( control );
search.getSearchParameter().setPagedSearchScrollMode( isScrollMode );
}
Set<Control> newControls = new HashSet<>();
newControls.addAll( search.getSearchParameter().getControls() );
if ( !oldControls.equals( newControls ) )
{
searchModified = true;
}
}
return searchModified;
}