public boolean saveToSearch()

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