You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2007/09/18 11:04:19 UTC

svn commit: r576784 - in /directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor: ./ controller/actions/ view/dialogs/ view/search/ view/views/

Author: pamarcelot
Date: Tue Sep 18 02:04:18 2007
New Revision: 576784

URL: http://svn.apache.org/viewvc?rev=576784&view=rev
Log:
Fix for DIRSTUDIO-199 (Add scopes for OC and AT in search).

Modified:
    directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginConstants.java
    directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/ShowSearchHistoryAction.java
    directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/dialogs/PreviousSearchesDialog.java
    directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/search/SearchPage.java
    directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java

Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginConstants.java?rev=576784&r1=576783&r2=576784&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginConstants.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginConstants.java Tue Sep 18 02:04:18 2007
@@ -242,32 +242,41 @@
     /** The preference ID for Search History of the SearchPage */
     public static final String PREFS_SEARCH_PAGE_SEARCH_HISTORY = Activator.PLUGIN_ID
         + ".preferences.SearchPage.searchHistory"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Aliases' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_ALIASES = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Aliases' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeAliases"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'OID' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_OID = Activator.PLUGIN_ID + ".preferences.SearchPage.scopeOid"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Description' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'OID' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_OID = Activator.PLUGIN_ID + ".preferences.SearchPage.scopeOid"; //$NON-NLS-1$
+    /** The preference ID for Search In 'Description' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeDescription"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Superior' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_SUPERIOR = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Superior' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeSuperior"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Syntax' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_SYNTAX = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Syntax' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeSyntax"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Matching Rules' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Matching Rules' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeMatchingRules"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Superiors' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_SUPERIORS = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Superiors' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeSuperiors"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Mandatory Attributes' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Mandatory Attributes' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeMandatoryAttributes"; //$NON-NLS-1$
-    /** The preference ID for Search Scope 'Optional Attributes' of the SearchPage */
-    public static final String PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES = Activator.PLUGIN_ID
+    /** The preference ID for Search In 'Optional Attributes' of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES = Activator.PLUGIN_ID
         + ".preferences.SearchPage.scopeOptionalAttributes"; //$NON-NLS-1$
+    /** The preference ID for Scope of the SearchPage */
+    public static final String PREFS_SEARCH_PAGE_SCOPE = Activator.PLUGIN_ID
+    + ".preferences.SearchPage.scope"; //$NON-NLS-1$
+    /** The preference value for Scope Attribute Types And Object Classes of the SearchPage */
+    public static final int PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC = 0;
+    /** The preference value for Scope Attribute Types only of the SearchPage */
+    public static final int PREFS_SEARCH_PAGE_SCOPE_AT_ONLY = 1;
+    /** The preference value for Scope Object Classes only of the SearchPage */
+    public static final int PREFS_SEARCH_PAGE_SCOPE_OC_ONLY = 2;
 
     // Preferences - SearchView
     /** The preference ID for Search View Label */

Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/ShowSearchHistoryAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/ShowSearchHistoryAction.java?rev=576784&r1=576783&r2=576784&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/ShowSearchHistoryAction.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/ShowSearchHistoryAction.java Tue Sep 18 02:04:18 2007
@@ -24,7 +24,7 @@
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.view.dialogs.PreviousSearchesDialog;
 import org.apache.directory.studio.schemaeditor.view.search.SearchPage;
-import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchScopeEnum;
+import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchInEnum;
 import org.apache.directory.studio.schemaeditor.view.views.SearchView;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
@@ -170,7 +170,8 @@
             {
                 public void widgetSelected( SelectionEvent e )
                 {
-                    view.setSearchInput( search, SearchPage.loadSearchScope().toArray( new SearchScopeEnum[0] ) );
+                    view.setSearchInput( search, SearchPage.loadSearchIn().toArray( new SearchInEnum[0] ), SearchPage
+                        .loadScope() );
                 }
             } );
             if ( search.equals( view.getSearchString() ) )

Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/dialogs/PreviousSearchesDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/dialogs/PreviousSearchesDialog.java?rev=576784&r1=576783&r2=576784&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/dialogs/PreviousSearchesDialog.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/dialogs/PreviousSearchesDialog.java Tue Sep 18 02:04:18 2007
@@ -23,7 +23,7 @@
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.view.search.SearchPage;
-import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchScopeEnum;
+import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchInEnum;
 import org.apache.directory.studio.schemaeditor.view.views.SearchView;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
@@ -183,7 +183,8 @@
                 StructuredSelection selection = ( StructuredSelection ) tableViewer.getSelection();
                 String selectedSearch = ( String ) selection.getFirstElement();
 
-                view.setSearchInput( selectedSearch, SearchPage.loadSearchScope().toArray( new SearchScopeEnum[0] ) );
+                view.setSearchInput( selectedSearch, SearchPage.loadSearchIn().toArray( new SearchInEnum[0] ),
+                    SearchPage.loadScope() );
             }
         }
 

Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/search/SearchPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/search/SearchPage.java?rev=576784&r1=576783&r2=576784&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/search/SearchPage.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/search/SearchPage.java Tue Sep 18 02:04:18 2007
@@ -67,16 +67,19 @@
     private Button syntaxButton;
     private Button matchingRulesButton;
     private Button superiorsButton;
-    private Button mandatoryAttributes;
-    private Button optionalAttributes;
+    private Button mandatoryAttributesButton;
+    private Button optionalAttributesButton;
+    private Button attributeTypesAndObjectClassesButton;
+    private Button attributeTypesOnlyButton;
+    private Button objectClassesOnly;
 
     /**
-     * This enums represents the different possible scopes for a Schema Search.
+     * This enums represents the different possible search in for a Schema Search.
      *
      * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
      * @version $Rev$, $Date$
      */
-    public enum SearchScopeEnum
+    public enum SearchInEnum
     {
         ALIASES, OID, DESCRIPTION, SUPERIOR, SYNTAX, MATCHING_RULES, SUPERIORS, MANDATORY_ATTRIBUTES, OPTIONAL_ATTRIBUTES
     }
@@ -105,74 +108,94 @@
             }
         } );
 
-        // Seach In Group
-        Group searchIn = new Group( parent, SWT.NONE );
-        searchIn.setLayout( new GridLayout() );
-        searchIn.setText( "Search in" );
-        searchIn.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+        // Specific Scope Composite
+        Composite searchInComposite = new Composite( parent, SWT.NONE );
+        GridLayout SearchInLayout = new GridLayout( 3, true );
+        SearchInLayout.marginBottom = 0;
+        SearchInLayout.marginHeight = 0;
+        SearchInLayout.marginLeft = 0;
+        SearchInLayout.marginRight = 0;
+        SearchInLayout.marginTop = 0;
+        SearchInLayout.marginWidth = 0;
+        searchInComposite.setLayout( SearchInLayout );
+        searchInComposite.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 3, 1 ) );
+
+        // Search In Group
+        Group searchInGroup = new Group( searchInComposite, SWT.NONE );
+        searchInGroup.setLayout( new GridLayout() );
+        searchInGroup.setText( "Search in" );
+        searchInGroup.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
 
         // Aliases Button
-        aliasesButton = new Button( searchIn, SWT.CHECK );
+        aliasesButton = new Button( searchInGroup, SWT.CHECK );
         aliasesButton.setText( "Aliases" );
 
         // OID Button
-        oidButton = new Button( searchIn, SWT.CHECK );
+        oidButton = new Button( searchInGroup, SWT.CHECK );
         oidButton.setText( "OID" );
 
         // Description Button
-        descriptionButon = new Button( searchIn, SWT.CHECK );
+        descriptionButon = new Button( searchInGroup, SWT.CHECK );
         descriptionButon.setText( "Description" );
 
-        // Specific Scope Composite
-        Composite specificScopeComposite = new Composite( parent, SWT.NONE );
-        GridLayout specificScopeLayout = new GridLayout( 2, true );
-        specificScopeLayout.marginBottom = 0;
-        specificScopeLayout.marginHeight = 0;
-        specificScopeLayout.marginLeft = 0;
-        specificScopeLayout.marginRight = 0;
-        specificScopeLayout.marginTop = 0;
-        specificScopeLayout.marginWidth = 0;
-        specificScopeComposite.setLayout( specificScopeLayout );
-        specificScopeComposite.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 3, 1 ) );
-
         // Attribute Types Group
-        Group attributeTypesGroup = new Group( specificScopeComposite, SWT.NONE );
-        attributeTypesGroup.setText( "Seach in (for attribute types)" );
-        attributeTypesGroup.setLayout( new GridLayout() );
-        attributeTypesGroup.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+        Group attributeTypesSearchInGroup = new Group( searchInComposite, SWT.NONE );
+        attributeTypesSearchInGroup.setText( "Seach in (for attribute types)" );
+        attributeTypesSearchInGroup.setLayout( new GridLayout() );
+        attributeTypesSearchInGroup.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
 
         // Superior Button
-        superiorButton = new Button( attributeTypesGroup, SWT.CHECK );
+        superiorButton = new Button( attributeTypesSearchInGroup, SWT.CHECK );
         superiorButton.setText( "Superior" );
 
         // Syntax Button
-        syntaxButton = new Button( attributeTypesGroup, SWT.CHECK );
+        syntaxButton = new Button( attributeTypesSearchInGroup, SWT.CHECK );
         syntaxButton.setText( "Syntax" );
 
         // Matching Rules Button
-        matchingRulesButton = new Button( attributeTypesGroup, SWT.CHECK );
+        matchingRulesButton = new Button( attributeTypesSearchInGroup, SWT.CHECK );
         matchingRulesButton.setText( "Matching Rules" );
 
         // Object Classes Group
-        Group objectClassesGroup = new Group( specificScopeComposite, SWT.NONE );
-        objectClassesGroup.setText( "Search in (for object classes)" );
-        objectClassesGroup.setLayout( new GridLayout() );
-        objectClassesGroup.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+        Group objectClassesSearchInGroup = new Group( searchInComposite, SWT.NONE );
+        objectClassesSearchInGroup.setText( "Search in (for object classes)" );
+        objectClassesSearchInGroup.setLayout( new GridLayout() );
+        objectClassesSearchInGroup.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
 
         // Superiors Button
-        superiorsButton = new Button( objectClassesGroup, SWT.CHECK );
+        superiorsButton = new Button( objectClassesSearchInGroup, SWT.CHECK );
         superiorsButton.setText( "Superiors" );
 
         // Mandatory Attributes Button
-        mandatoryAttributes = new Button( objectClassesGroup, SWT.CHECK );
-        mandatoryAttributes.setText( "Mandatory Attributes" );
+        mandatoryAttributesButton = new Button( objectClassesSearchInGroup, SWT.CHECK );
+        mandatoryAttributesButton.setText( "Mandatory Attributes" );
 
         // Optional Attributes Button
-        optionalAttributes = new Button( objectClassesGroup, SWT.CHECK );
-        optionalAttributes.setText( "Optional Attributes" );
+        optionalAttributesButton = new Button( objectClassesSearchInGroup, SWT.CHECK );
+        optionalAttributesButton.setText( "Optional Attributes" );
+
+        // Scope Group
+        Group scopeGroup = new Group( parent, SWT.NONE );
+        scopeGroup.setText( "Scope" );
+        scopeGroup.setLayout( new GridLayout() );
+        scopeGroup.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+        // Attribute Types and Object Classes
+        attributeTypesAndObjectClassesButton = new Button( scopeGroup, SWT.RADIO );
+        attributeTypesAndObjectClassesButton.setText( "Attribute Types And Object Classes" );
+
+        // Attribute Types Only
+        attributeTypesOnlyButton = new Button( scopeGroup, SWT.RADIO );
+        attributeTypesOnlyButton.setText( "Attribute Types Only" );
+
+        // Object Classes Only
+        objectClassesOnly = new Button( scopeGroup, SWT.RADIO );
+        objectClassesOnly.setText( "Object Classes Only" );
 
         initSearchStringHistory();
 
+        initSearchIn();
+
         initSearchScope();
 
         searchCombo.setFocus();
@@ -191,47 +214,76 @@
 
 
     /**
-     * Initializes the Search Scope
+     * Initializes the Search In.
      */
-    private void initSearchScope()
+    private void initSearchIn()
     {
         IDialogSettings settings = Activator.getDefault().getDialogSettings();
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) == null )
         {
             aliasesButton.setSelection( true );
         }
         else
         {
-            aliasesButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) );
+            aliasesButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) );
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) == null )
         {
             oidButton.setSelection( true );
         }
         else
         {
-            oidButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) );
+            oidButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) );
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) == null )
         {
             descriptionButon.setSelection( true );
         }
         else
         {
-            descriptionButon.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) );
+            descriptionButon.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) );
         }
-        superiorButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIOR ) );
-        syntaxButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SYNTAX ) );
+        superiorButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR ) );
+        syntaxButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX ) );
         matchingRulesButton
-            .setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES ) );
-        superiorsButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIORS ) );
-        mandatoryAttributes.setSelection( settings
-            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES ) );
-        optionalAttributes.setSelection( settings
-            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES ) );
+            .setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES ) );
+        superiorsButton.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS ) );
+        mandatoryAttributesButton.setSelection( settings
+            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES ) );
+        optionalAttributesButton.setSelection( settings
+            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES ) );
+    }
+
+
+    /**
+     * Initializes the Search Scope.
+     */
+    private void initSearchScope()
+    {
+        IDialogSettings settings = Activator.getDefault().getDialogSettings();
+
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE ) == null )
+        {
+            attributeTypesAndObjectClassesButton.setSelection( true );
+        }
+        else
+        {
+            switch ( settings.getInt( PluginConstants.PREFS_SEARCH_PAGE_SCOPE ) )
+            {
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC:
+                    attributeTypesAndObjectClassesButton.setSelection( true );
+                    break;
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_ONLY:
+                    attributeTypesOnlyButton.setSelection( true );
+                    break;
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OC_ONLY:
+                    objectClassesOnly.setSelection( true );
+                    break;
+            }
+        }
     }
 
 
@@ -240,42 +292,58 @@
      */
     public boolean performAction()
     {
-        List<SearchScopeEnum> searchScope = new ArrayList<SearchScopeEnum>();
+        // Search In
+        List<SearchInEnum> searchIn = new ArrayList<SearchInEnum>();
         if ( aliasesButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.ALIASES );
+            searchIn.add( SearchInEnum.ALIASES );
         }
         if ( oidButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.OID );
+            searchIn.add( SearchInEnum.OID );
         }
         if ( descriptionButon.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.DESCRIPTION );
+            searchIn.add( SearchInEnum.DESCRIPTION );
         }
         if ( superiorButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.SUPERIOR );
+            searchIn.add( SearchInEnum.SUPERIOR );
         }
         if ( syntaxButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.SYNTAX );
+            searchIn.add( SearchInEnum.SYNTAX );
         }
         if ( matchingRulesButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.MATCHING_RULES );
+            searchIn.add( SearchInEnum.MATCHING_RULES );
         }
         if ( superiorsButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.SUPERIORS );
+            searchIn.add( SearchInEnum.SUPERIORS );
         }
-        if ( mandatoryAttributes.getSelection() )
+        if ( mandatoryAttributesButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.MANDATORY_ATTRIBUTES );
+            searchIn.add( SearchInEnum.MANDATORY_ATTRIBUTES );
         }
-        if ( optionalAttributes.getSelection() )
+        if ( optionalAttributesButton.getSelection() )
         {
-            searchScope.add( SearchScopeEnum.OPTIONAL_ATTRIBUTES );
+            searchIn.add( SearchInEnum.OPTIONAL_ATTRIBUTES );
+        }
+
+        // Scope
+        int scope = 0;
+        if ( attributeTypesAndObjectClassesButton.getSelection() )
+        {
+            scope = PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC;
+        }
+        else if ( attributeTypesOnlyButton.getSelection() )
+        {
+            scope = PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_ONLY;
+        }
+        else if ( objectClassesOnly.getSelection() )
+        {
+            scope = PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OC_ONLY;
         }
 
         // Opening the SearchView and displaying the results
@@ -283,7 +351,7 @@
         {
             SearchView searchView = ( SearchView ) Activator.getDefault().getWorkbench().getActiveWorkbenchWindow()
                 .getActivePage().showView( SearchView.ID );
-            searchView.setSearchInput( searchCombo.getText(), searchScope.toArray( new SearchScopeEnum[0] ) );
+            searchView.setSearchInput( searchCombo.getText(), searchIn.toArray( new SearchInEnum[0] ), scope );
         }
         catch ( PartInitException e )
         {
@@ -409,79 +477,90 @@
 
 
     /**
-     * Loads the Search scope.
+     * Loads the Search In.
      *
      * @return
-     *      the search scope
+     *      the search In
      */
-    public static List<SearchScopeEnum> loadSearchScope()
+    public static List<SearchInEnum> loadSearchIn()
     {
-        List<SearchScopeEnum> searchScope = new ArrayList<SearchScopeEnum>();
+        List<SearchInEnum> searchScope = new ArrayList<SearchInEnum>();
         IDialogSettings settings = Activator.getDefault().getDialogSettings();
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) == null )
         {
-            searchScope.add( SearchScopeEnum.ALIASES );
+            searchScope.add( SearchInEnum.ALIASES );
         }
         else
         {
-            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) )
+            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) )
             {
-                searchScope.add( SearchScopeEnum.ALIASES );
+                searchScope.add( SearchInEnum.ALIASES );
             }
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) == null )
         {
-            searchScope.add( SearchScopeEnum.OID );
+            searchScope.add( SearchInEnum.OID );
         }
         else
         {
-            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) )
+            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) )
             {
-                searchScope.add( SearchScopeEnum.OID );
+                searchScope.add( SearchInEnum.OID );
             }
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) == null )
         {
-            searchScope.add( SearchScopeEnum.DESCRIPTION );
+            searchScope.add( SearchInEnum.DESCRIPTION );
         }
         else
         {
-            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) )
+            if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) )
             {
-                searchScope.add( SearchScopeEnum.DESCRIPTION );
+                searchScope.add( SearchInEnum.DESCRIPTION );
             }
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIOR ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR ) )
         {
-            searchScope.add( SearchScopeEnum.SUPERIOR );
+            searchScope.add( SearchInEnum.SUPERIOR );
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SYNTAX ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX ) )
         {
-            searchScope.add( SearchScopeEnum.SYNTAX );
+            searchScope.add( SearchInEnum.SYNTAX );
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES ) )
         {
-            searchScope.add( SearchScopeEnum.MATCHING_RULES );
+            searchScope.add( SearchInEnum.MATCHING_RULES );
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIORS ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS ) )
         {
-            searchScope.add( SearchScopeEnum.SUPERIORS );
+            searchScope.add( SearchInEnum.SUPERIORS );
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES ) )
         {
-            searchScope.add( SearchScopeEnum.MANDATORY_ATTRIBUTES );
+            searchScope.add( SearchInEnum.MANDATORY_ATTRIBUTES );
         }
-        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES ) )
+        if ( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES ) )
         {
-            searchScope.add( SearchScopeEnum.OPTIONAL_ATTRIBUTES );
+            searchScope.add( SearchInEnum.OPTIONAL_ATTRIBUTES );
         }
 
         return searchScope;
     }
 
+    
+    /**
+     * Loads the scope.
+     *
+     * @return
+     *      the scope
+     */
+    public static int loadScope()
+    {
+        return Activator.getDefault().getDialogSettings().getInt( PluginConstants.PREFS_SEARCH_PAGE_SCOPE );
+    }
 
     /**
      * Saves the Search scope.
@@ -489,26 +568,25 @@
      * @param scope
      *      the Search scope
      */
-    public static void saveSearchScope( List<SearchScopeEnum> scope )
+    public static void saveSearchScope( List<SearchInEnum> scope )
     {
         if ( ( scope != null ) && ( scope.size() > 0 ) )
         {
             IDialogSettings settings = Activator.getDefault().getDialogSettings();
 
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES, scope.contains( SearchScopeEnum.ALIASES ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID, scope.contains( SearchScopeEnum.OID ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION, scope
-                .contains( SearchScopeEnum.DESCRIPTION ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIOR, scope.contains( SearchScopeEnum.SUPERIOR ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SYNTAX, scope.contains( SearchScopeEnum.SYNTAX ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES, scope
-                .contains( SearchScopeEnum.MATCHING_RULES ) );
-            settings
-                .put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIORS, scope.contains( SearchScopeEnum.SUPERIORS ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES, scope
-                .contains( SearchScopeEnum.MANDATORY_ATTRIBUTES ) );
-            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES, scope
-                .contains( SearchScopeEnum.OPTIONAL_ATTRIBUTES ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES, scope.contains( SearchInEnum.ALIASES ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID, scope.contains( SearchInEnum.OID ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION, scope
+                .contains( SearchInEnum.DESCRIPTION ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR, scope.contains( SearchInEnum.SUPERIOR ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX, scope.contains( SearchInEnum.SYNTAX ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES, scope
+                .contains( SearchInEnum.MATCHING_RULES ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS, scope.contains( SearchInEnum.SUPERIORS ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES, scope
+                .contains( SearchInEnum.MANDATORY_ATTRIBUTES ) );
+            settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES, scope
+                .contains( SearchInEnum.OPTIONAL_ATTRIBUTES ) );
         }
     }
 

Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java?rev=576784&r1=576783&r2=576784&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java Tue Sep 18 02:04:18 2007
@@ -40,7 +40,7 @@
 import org.apache.directory.studio.schemaeditor.view.editors.objectclass.ObjectClassEditor;
 import org.apache.directory.studio.schemaeditor.view.editors.objectclass.ObjectClassEditorInput;
 import org.apache.directory.studio.schemaeditor.view.search.SearchPage;
-import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchScopeEnum;
+import org.apache.directory.studio.schemaeditor.view.search.SearchPage.SearchInEnum;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.viewers.DecoratingLabelProvider;
@@ -208,10 +208,29 @@
             }
         } );
 
-        // Search Scope Toolbar
-        final ToolBar scopeToolBar = new ToolBar( searchFieldInnerComposite, SWT.HORIZONTAL | SWT.FLAT );
-        // Creating the Search Scope ToolItem
-        final ToolItem scopeToolItem = new ToolItem( scopeToolBar, SWT.DROP_DOWN );
+        // Search Toolbar
+        final ToolBar searchToolBar = new ToolBar( searchFieldInnerComposite, SWT.HORIZONTAL | SWT.FLAT );
+        // Creating the Search In ToolItem
+        final ToolItem searchInToolItem = new ToolItem( searchToolBar, SWT.DROP_DOWN );
+        searchInToolItem.setText( "Search In" );
+        // Adding the action to display the Menu when the item is clicked
+        searchInToolItem.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent event )
+            {
+                Rectangle rect = searchInToolItem.getBounds();
+                Point pt = new Point( rect.x, rect.y + rect.height );
+                pt = searchToolBar.toDisplay( pt );
+
+                Menu menu = createSearchInMenu();
+                menu.setLocation( pt.x, pt.y );
+                menu.setVisible( true );
+            }
+        } );
+
+        new ToolItem( searchToolBar, SWT.SEPARATOR );
+
+        final ToolItem scopeToolItem = new ToolItem( searchToolBar, SWT.DROP_DOWN );
         scopeToolItem.setText( "Scope" );
         // Adding the action to display the Menu when the item is clicked
         scopeToolItem.addSelectionListener( new SelectionAdapter()
@@ -220,14 +239,14 @@
             {
                 Rectangle rect = scopeToolItem.getBounds();
                 Point pt = new Point( rect.x, rect.y + rect.height );
-                pt = scopeToolBar.toDisplay( pt );
+                pt = searchToolBar.toDisplay( pt );
 
-                Menu menu = createMenu();
+                Menu menu = createScopeMenu();
                 menu.setLocation( pt.x, pt.y );
                 menu.setVisible( true );
             }
         } );
-        scopeToolBar.setLayoutData( new GridData( SWT.NONE, SWT.CENTER, false, false ) );
+        searchToolBar.setLayoutData( new GridData( SWT.NONE, SWT.CENTER, false, false ) );
 
         // Search Button
         searchButton = new Button( searchFieldInnerComposite, SWT.PUSH | SWT.DOWN );
@@ -251,155 +270,225 @@
 
 
     /**
-     * Creates the menu
+     * Creates the Search In Menu
      *
      * @return
-     *      the menu
+     *      the Search In menu
      */
-    public Menu createMenu()
+    public Menu createSearchInMenu()
     {
         final IDialogSettings settings = Activator.getDefault().getDialogSettings();
 
         // Creating the associated Menu
-        Menu scopeMenu = new Menu( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP );
+        Menu searchInMenu = new Menu( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP );
 
         // Filling the menu
         // Aliases
-        final MenuItem aliasesMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem aliasesMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         aliasesMenuItem.setText( "Aliases" );
         aliasesMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES, aliasesMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES, aliasesMenuItem.getSelection() );
             }
         } );
         // OID
-        final MenuItem oidMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem oidMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         oidMenuItem.setText( "OID" );
         oidMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID, oidMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID, oidMenuItem.getSelection() );
             }
         } );
         // Description
-        final MenuItem descriptionMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem descriptionMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         descriptionMenuItem.setText( "Description" );
         descriptionMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION, descriptionMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION, descriptionMenuItem.getSelection() );
             }
         } );
         // Separator
-        new MenuItem( scopeMenu, SWT.SEPARATOR );
+        new MenuItem( searchInMenu, SWT.SEPARATOR );
         // Superior
-        final MenuItem superiorMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem superiorMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         superiorMenuItem.setText( "Superior" );
         superiorMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIOR, superiorMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR, superiorMenuItem.getSelection() );
             }
         } );
         // Syntax
-        final MenuItem syntaxMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem syntaxMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         syntaxMenuItem.setText( "Syntax" );
         syntaxMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SYNTAX, syntaxMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX, syntaxMenuItem.getSelection() );
             }
         } );
         // Matching Rules
-        final MenuItem matchingRulesMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem matchingRulesMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         matchingRulesMenuItem.setText( "Matching Rules" );
         matchingRulesMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES, matchingRulesMenuItem
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES, matchingRulesMenuItem
                     .getSelection() );
             }
         } );
         // Separator
-        new MenuItem( scopeMenu, SWT.SEPARATOR );
+        new MenuItem( searchInMenu, SWT.SEPARATOR );
         // Superiors
-        final MenuItem superiorsMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem superiorsMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         superiorsMenuItem.setText( "Superiors" );
         superiorsMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIORS, superiorsMenuItem.getSelection() );
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS, superiorsMenuItem.getSelection() );
             }
         } );
         // Mandatory Attributes
-        final MenuItem mandatoryAttributesMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem mandatoryAttributesMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         mandatoryAttributesMenuItem.setText( "Mandatory Attributes" );
         mandatoryAttributesMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES, mandatoryAttributesMenuItem
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES, mandatoryAttributesMenuItem
                     .getSelection() );
             }
         } );
         // Optional Attributes
-        final MenuItem optionalAttributesMenuItem = new MenuItem( scopeMenu, SWT.CHECK );
+        final MenuItem optionalAttributesMenuItem = new MenuItem( searchInMenu, SWT.CHECK );
         optionalAttributesMenuItem.setText( "Optional Attributes" );
         optionalAttributesMenuItem.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
-                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES, optionalAttributesMenuItem
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES, optionalAttributesMenuItem
                     .getSelection() );
             }
         } );
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) == null )
         {
             aliasesMenuItem.setSelection( true );
         }
         else
         {
-            aliasesMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_ALIASES ) );
+            aliasesMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_ALIASES ) );
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) == null )
         {
             oidMenuItem.setSelection( true );
         }
         else
         {
 
-            oidMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OID ) );
+            oidMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OID ) );
         }
 
-        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) == null )
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) == null )
         {
             descriptionMenuItem.setSelection( true );
         }
         else
         {
             descriptionMenuItem
-                .setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_DESCRIPTION ) );
+                .setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_DESCRIPTION ) );
         }
 
-        superiorMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIOR ) );
-        syntaxMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SYNTAX ) );
+        superiorMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIOR ) );
+        syntaxMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SYNTAX ) );
         matchingRulesMenuItem.setSelection( settings
-            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MATCHING_RULES ) );
-        superiorsMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_SUPERIORS ) );
+            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MATCHING_RULES ) );
+        superiorsMenuItem.setSelection( settings.getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_SUPERIORS ) );
         mandatoryAttributesMenuItem.setSelection( settings
-            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_MANDATORY_ATTRIBUTES ) );
+            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_MANDATORY_ATTRIBUTES ) );
         optionalAttributesMenuItem.setSelection( settings
-            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OPTIONAL_ATTRIBUTES ) );
+            .getBoolean( PluginConstants.PREFS_SEARCH_PAGE_SEARCH_IN_OPTIONAL_ATTRIBUTES ) );
+
+        return searchInMenu;
+    }
+
+
+    /**
+     * Creates the Scope Menu
+     *
+     * @return
+     *      the Scope menu
+     */
+    public Menu createScopeMenu()
+    {
+        final IDialogSettings settings = Activator.getDefault().getDialogSettings();
+
+        // Creating the associated Menu
+        Menu scopeMenu = new Menu( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP );
+
+        // Filling the menu
+        // Attribute Types And Object Classes
+        final MenuItem attributeTypesAndObjectClassesMenuItem = new MenuItem( scopeMenu, SWT.RADIO );
+        attributeTypesAndObjectClassesMenuItem.setText( "Attribute Types And Object Classes" );
+        attributeTypesAndObjectClassesMenuItem.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE,
+                    PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC );
+            }
+        } );
+        // Attributes Type Only
+        final MenuItem attributesTypesOnlyMenuItem = new MenuItem( scopeMenu, SWT.RADIO );
+        attributesTypesOnlyMenuItem.setText( "Attribute Types Only" );
+        attributesTypesOnlyMenuItem.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE, PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_ONLY );
+            }
+        } );
+        // Object Classes Only
+        final MenuItem objectClassesMenuItem = new MenuItem( scopeMenu, SWT.RADIO );
+        objectClassesMenuItem.setText( "Object Classes Only" );
+        objectClassesMenuItem.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                settings.put( PluginConstants.PREFS_SEARCH_PAGE_SCOPE, PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OC_ONLY );
+            }
+        } );
+
+        if ( settings.get( PluginConstants.PREFS_SEARCH_PAGE_SCOPE ) == null )
+        {
+            attributeTypesAndObjectClassesMenuItem.setSelection( true );
+        }
+        else
+        {
+            switch ( settings.getInt( PluginConstants.PREFS_SEARCH_PAGE_SCOPE ) )
+            {
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC:
+                    attributeTypesAndObjectClassesMenuItem.setSelection( true );
+                    break;
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_ONLY:
+                    attributesTypesOnlyMenuItem.setSelection( true );
+                    break;
+                case PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OC_ONLY:
+                    objectClassesMenuItem.setSelection( true );
+                    break;
+            }
+        }
 
         return scopeMenu;
     }
@@ -552,16 +641,18 @@
      *
      * @param searchString
      *      the search String
+     * @param searchIn
+     *      the search In
      * @param scope
-     *      the search Scope
+     *      the scope
      */
-    public void setSearchInput( String searchString, SearchScopeEnum[] scope )
+    public void setSearchInput( String searchString, SearchInEnum[] searchIn, int scope )
     {
         this.searchString = searchString;
 
         // Saving search String and Search Scope to dialog settings
         SearchPage.addSearchStringHistory( searchString );
-        SearchPage.saveSearchScope( Arrays.asList( scope ) );
+        SearchPage.saveSearchScope( Arrays.asList( searchIn ) );
 
         if ( ( searchField != null ) && ( !searchField.isDisposed() ) )
         {
@@ -569,7 +660,7 @@
             validateSearchField();
         }
 
-        List<SchemaObject> results = search( searchString, scope );
+        List<SchemaObject> results = search( searchString, searchIn, scope );
         setSearchResultsLabel( searchString, results.size() );
         resultsTableViewer.setInput( results );
     }
@@ -580,10 +671,12 @@
      *
      * @param searchString
      *      the search String
+     * @param searchIn
+     *      the search In
      * @param scope
-     *      the search Scope
+     *      the scope
      */
-    private List<SchemaObject> search( String searchString, SearchScopeEnum[] scope )
+    private List<SchemaObject> search( String searchString, SearchInEnum[] searchIn, int scope )
     {
         List<SchemaObject> searchResults = new ArrayList<SchemaObject>();
 
@@ -597,149 +690,157 @@
             SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
             if ( schemaHandler != null )
             {
-                List<SearchScopeEnum> searchScope = new ArrayList<SearchScopeEnum>( Arrays.asList( scope ) );
+                List<SearchInEnum> searchScope = new ArrayList<SearchInEnum>( Arrays.asList( searchIn ) );
 
-                // Looping on attribute types
-                List<AttributeTypeImpl> attributeTypes = schemaHandler.getAttributeTypes();
-                for ( AttributeTypeImpl at : attributeTypes )
+                if ( ( scope == PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC )
+                    || ( scope == PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_ONLY ) )
                 {
-                    // Aliases
-                    if ( searchScope.contains( SearchScopeEnum.ALIASES ) )
-                    {
-                        if ( checkArray( pattern, at.getNames() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-                    }
-
-                    // OID
-                    if ( searchScope.contains( SearchScopeEnum.OID ) )
-                    {
-                        if ( checkString( pattern, at.getOid() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-                    }
-
-                    // Description
-                    if ( searchScope.contains( SearchScopeEnum.DESCRIPTION ) )
-                    {
-                        if ( checkString( pattern, at.getDescription() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-                    }
-
-                    // Superior
-                    if ( searchScope.contains( SearchScopeEnum.SUPERIOR ) )
-                    {
-                        if ( checkString( pattern, at.getSuperiorName() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-                    }
-
-                    // Syntax
-                    if ( searchScope.contains( SearchScopeEnum.SYNTAX ) )
-                    {
-                        if ( checkString( pattern, at.getSyntaxOid() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-                    }
-
-                    // Matching Rules
-                    if ( searchScope.contains( SearchScopeEnum.MATCHING_RULES ) )
-                    {
-                        // Equality
-                        if ( checkString( pattern, at.getEqualityName() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-
-                        // Ordering
-                        if ( checkString( pattern, at.getOrderingName() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
-                        }
-
-                        // Substring
-                        if ( checkString( pattern, at.getSubstrName() ) )
-                        {
-                            searchResults.add( at );
-                            continue;
+                    // Looping on attribute types
+                    List<AttributeTypeImpl> attributeTypes = schemaHandler.getAttributeTypes();
+                    for ( AttributeTypeImpl at : attributeTypes )
+                    {
+                        // Aliases
+                        if ( searchScope.contains( SearchInEnum.ALIASES ) )
+                        {
+                            if ( checkArray( pattern, at.getNames() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+                        }
+
+                        // OID
+                        if ( searchScope.contains( SearchInEnum.OID ) )
+                        {
+                            if ( checkString( pattern, at.getOid() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+                        }
+
+                        // Description
+                        if ( searchScope.contains( SearchInEnum.DESCRIPTION ) )
+                        {
+                            if ( checkString( pattern, at.getDescription() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+                        }
+
+                        // Superior
+                        if ( searchScope.contains( SearchInEnum.SUPERIOR ) )
+                        {
+                            if ( checkString( pattern, at.getSuperiorName() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+                        }
+
+                        // Syntax
+                        if ( searchScope.contains( SearchInEnum.SYNTAX ) )
+                        {
+                            if ( checkString( pattern, at.getSyntaxOid() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+                        }
+
+                        // Matching Rules
+                        if ( searchScope.contains( SearchInEnum.MATCHING_RULES ) )
+                        {
+                            // Equality
+                            if ( checkString( pattern, at.getEqualityName() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+
+                            // Ordering
+                            if ( checkString( pattern, at.getOrderingName() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
+
+                            // Substring
+                            if ( checkString( pattern, at.getSubstrName() ) )
+                            {
+                                searchResults.add( at );
+                                continue;
+                            }
                         }
                     }
                 }
 
-                // Looping on object classes
-                List<ObjectClassImpl> objectClasses = schemaHandler.getObjectClasses();
-                for ( ObjectClassImpl oc : objectClasses )
+                if ( ( scope == PluginConstants.PREFS_SEARCH_PAGE_SCOPE_AT_AND_OC )
+                    || ( scope == PluginConstants.PREFS_SEARCH_PAGE_SCOPE_OC_ONLY ) )
                 {
-                    // Aliases
-                    if ( searchScope.contains( SearchScopeEnum.ALIASES ) )
+                    // Looping on object classes
+                    List<ObjectClassImpl> objectClasses = schemaHandler.getObjectClasses();
+                    for ( ObjectClassImpl oc : objectClasses )
                     {
-                        if ( checkArray( pattern, oc.getNames() ) )
+                        // Aliases
+                        if ( searchScope.contains( SearchInEnum.ALIASES ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkArray( pattern, oc.getNames() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
-                    }
 
-                    // OID
-                    if ( searchScope.contains( SearchScopeEnum.OID ) )
-                    {
-                        if ( checkString( pattern, oc.getOid() ) )
+                        // OID
+                        if ( searchScope.contains( SearchInEnum.OID ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkString( pattern, oc.getOid() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
-                    }
 
-                    // Description
-                    if ( searchScope.contains( SearchScopeEnum.DESCRIPTION ) )
-                    {
-                        if ( checkString( pattern, oc.getDescription() ) )
+                        // Description
+                        if ( searchScope.contains( SearchInEnum.DESCRIPTION ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkString( pattern, oc.getDescription() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
-                    }
 
-                    // Superiors
-                    if ( searchScope.contains( SearchScopeEnum.SUPERIORS ) )
-                    {
-                        if ( checkArray( pattern, oc.getSuperClassesNames() ) )
+                        // Superiors
+                        if ( searchScope.contains( SearchInEnum.SUPERIORS ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkArray( pattern, oc.getSuperClassesNames() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
-                    }
 
-                    // Mandatory Attributes
-                    if ( searchScope.contains( SearchScopeEnum.MANDATORY_ATTRIBUTES ) )
-                    {
-                        if ( checkArray( pattern, oc.getMustNamesList() ) )
+                        // Mandatory Attributes
+                        if ( searchScope.contains( SearchInEnum.MANDATORY_ATTRIBUTES ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkArray( pattern, oc.getMustNamesList() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
-                    }
 
-                    // Optional Attributes
-                    if ( searchScope.contains( SearchScopeEnum.OPTIONAL_ATTRIBUTES ) )
-                    {
-                        if ( checkArray( pattern, oc.getMayNamesList() ) )
+                        // Optional Attributes
+                        if ( searchScope.contains( SearchInEnum.OPTIONAL_ATTRIBUTES ) )
                         {
-                            searchResults.add( oc );
-                            continue;
+                            if ( checkArray( pattern, oc.getMayNamesList() ) )
+                            {
+                                searchResults.add( oc );
+                                continue;
+                            }
                         }
                     }
                 }
@@ -792,9 +893,9 @@
     private void search()
     {
         String searchString = searchField.getText();
-        List<SearchScopeEnum> searchScope = SearchPage.loadSearchScope();
+        List<SearchInEnum> searchScope = SearchPage.loadSearchIn();
 
-        setSearchInput( searchString, searchScope.toArray( new SearchScopeEnum[0] ) );
+        setSearchInput( searchString, searchScope.toArray( new SearchInEnum[0] ), SearchPage.loadScope() );
     }
 
 
@@ -846,7 +947,8 @@
     {
         if ( searchString != null )
         {
-            setSearchInput( searchString, SearchPage.loadSearchScope().toArray( new SearchScopeEnum[0] ) );
+            setSearchInput( searchString, SearchPage.loadSearchIn().toArray( new SearchInEnum[0] ), SearchPage
+                .loadScope() );
         }
     }