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 2013/09/10 17:42:57 UTC

svn commit: r1521528 - in /directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui: ./ dialogs/preferences/ editors/searchresult/

Author: pamarcelot
Date: Tue Sep 10 15:42:57 2013
New Revision: 1521528

URL: http://svn.apache.org/r1521528
Log:
Fix for DIRSTUDIO-948 (Sorting search results does not work with over 1000 results).

Modified:
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIPreferencesInitializer.java
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/SearchResultEditorPreferencePage.java
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages.properties
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_de.properties
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_fr.properties
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorContentProvider.java

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java Tue Sep 10 15:42:57 2013
@@ -48,6 +48,7 @@ public final class BrowserUIConstants
     public static final String PREFERENCE_BROWSER_LINK_WITH_EDITOR = "browserLinkWithEditor"; //$NON-NLS-1$
     public static final String PREFERENCE_SEARCHRESULTEDITOR_SHOW_DN = "searchResultEditorShowDn"; //$NON-NLS-1$
     public static final String PREFERENCE_SEARCHRESULTEDITOR_SHOW_LINKS = "searchResultEditorShowLinks"; //$NON-NLS-1$
+    public static final String PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT = "searchResultEditorSortFilterLimit"; //$NON-NLS-1$
     public static final String PREFERENCEPAGEID_MAIN = BrowserUIPlugin.getDefault().getPluginProperties()
         .getString( "PrefPage_MainPreferencePage_id" ); //$NON-NLS-1$
     public static final String PREFERENCEPAGEID_ATTRIBUTES = BrowserUIPlugin.getDefault().getPluginProperties()

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIPreferencesInitializer.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIPreferencesInitializer.java?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIPreferencesInitializer.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIPreferencesInitializer.java Tue Sep 10 15:42:57 2013
@@ -45,6 +45,7 @@ public class BrowserUIPreferencesInitial
         // Search Result Editor
         store.setDefault( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_DN, true );
         store.setDefault( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_LINKS, true );
+        store.setDefault( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT, 10000 );
 
         // Entry Editors
         store.setDefault( BrowserUIConstants.PREFERENCE_ENTRYEDITORS_USE_USER_PRIORITIES, false );

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/SearchResultEditorPreferencePage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/SearchResultEditorPreferencePage.java?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/SearchResultEditorPreferencePage.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/SearchResultEditorPreferencePage.java Tue Sep 10 15:42:57 2013
@@ -25,9 +25,13 @@ import org.apache.directory.studio.commo
 import org.apache.directory.studio.ldapbrowser.ui.BrowserUIConstants;
 import org.apache.directory.studio.ldapbrowser.ui.BrowserUIPlugin;
 import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
@@ -40,13 +44,15 @@ import org.eclipse.ui.IWorkbenchPreferen
  */
 public class SearchResultEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
 {
-
     /** The show Dn button. */
     private Button showDnButton;
 
     /** The show links button. */
     private Button showLinksButton;
 
+    /** The sort/filter limit text */
+    private Text sortFilterLimitText;
+
 
     /**
      * Creates a new instance of SearchResultEditorPreferencePage.
@@ -72,19 +78,41 @@ public class SearchResultEditorPreferenc
      */
     protected Control createContents( Composite parent )
     {
-        Composite composite = BaseWidgetUtils.createColumnContainer( parent, 1, 1 );
+        Composite composite = BaseWidgetUtils.createColumnContainer( parent, 2, 1 );
 
-        BaseWidgetUtils.createSpacer( composite, 1 );
-        BaseWidgetUtils.createSpacer( composite, 1 );
+        BaseWidgetUtils.createSpacer( composite, 2 );
+
+        // Show Dn
         showDnButton = BaseWidgetUtils.createCheckbox( composite, Messages
-            .getString( "SearchResultEditorPreferencePage.DNAsFirst" ), 1 ); //$NON-NLS-1$
+            .getString( "SearchResultEditorPreferencePage.DNAsFirst" ), 2 ); //$NON-NLS-1$
         showDnButton.setSelection( getPreferenceStore().getBoolean(
             BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_DN ) );
+
+        // Show DN As Link
         showLinksButton = BaseWidgetUtils.createCheckbox( composite, Messages
-            .getString( "SearchResultEditorPreferencePage.DNAsLink" ), 1 ); //$NON-NLS-1$
+            .getString( "SearchResultEditorPreferencePage.DNAsLink" ), 2 ); //$NON-NLS-1$
         showLinksButton.setSelection( getPreferenceStore().getBoolean(
             BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_LINKS ) );
 
+        // Sort/Filter Limit
+        String sortFilterLimitTooltip = Messages.getString( "SearchResultEditorPreferencePage.SortFilterLimitToolTip" ); //$NON-NLS-1$
+        Label sortFilterLimitLabel = BaseWidgetUtils.createLabel( composite, Messages
+            .getString( "SearchResultEditorPreferencePage.SortFilterLimitColon" ), 1 ); //$NON-NLS-1$
+        sortFilterLimitLabel.setToolTipText( sortFilterLimitTooltip );
+        sortFilterLimitText = BaseWidgetUtils.createText( composite, "" + getPreferenceStore().getInt(
+            BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT ), 5, 1 ); //$NON-NLS-1$
+        sortFilterLimitText.setToolTipText( sortFilterLimitTooltip );
+        sortFilterLimitText.addVerifyListener( new VerifyListener()
+        {
+            public void verifyText( VerifyEvent e )
+            {
+                if ( !e.text.matches( "[0-9]*" ) ) //$NON-NLS-1$
+                {
+                    e.doit = false;
+                }
+            }
+        } );
+
         applyDialogFont( composite );
         return composite;
     }
@@ -95,10 +123,27 @@ public class SearchResultEditorPreferenc
      */
     public boolean performOk()
     {
+        // Show Dn
         getPreferenceStore().setValue( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_DN,
             showDnButton.getSelection() );
+
+        // Show DN As Link
         getPreferenceStore().setValue( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SHOW_LINKS,
             showLinksButton.getSelection() );
+
+        // Sort/Filter Limit
+        int sortFilterLimit = getPreferenceStore().getInt(
+            BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT );
+        try
+        {
+            sortFilterLimit = Integer.parseInt( sortFilterLimitText.getText().trim() );
+        }
+        catch ( NumberFormatException nfe )
+        {
+        }
+        getPreferenceStore().setValue( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT,
+            sortFilterLimit );
+
         return true;
     }
 

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages.properties?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages.properties Tue Sep 10 15:42:57 2013
@@ -36,6 +36,8 @@ SearchResultEditorPreferencePage.DNAsFir
 SearchResultEditorPreferencePage.DNAsLink=Show DN as link
 SearchResultEditorPreferencePage.GeneralSettings=General settings for the LDAP search result editor:
 SearchResultEditorPreferencePage.ResultEditor=Search Result Editor
+SearchResultEditorPreferencePage.SortFilterLimitColon=Sort/Filter limit:
+SearchResultEditorPreferencePage.SortFilterLimitToolTip=If there are more than the specified number of search results they won't be sorted/filtered. Hint: For performance reason the maximum value should be 10.000\!
 EntryEditorsPreferencePage.ApplicationWideSetting=Use the application-wide open mode setting
 EntryEditorsPreferencePage.ApplicationWideSettingTooltip=Allows multiple options for opening editors (ie. single/double click and more). See <a>'General'</a> for the open mode configuration.
 EntryEditorsPreferencePage.DescriptionColon=Description:

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_de.properties?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_de.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_de.properties Tue Sep 10 15:42:57 2013
@@ -34,6 +34,8 @@ SearchResultEditorPreferencePage.DNAsFir
 SearchResultEditorPreferencePage.DNAsLink=Zeige DN als Verweis
 SearchResultEditorPreferencePage.GeneralSettings=Allgemeine Einstellungen f\u00FCr den LDAP Suchresultate Editor\:
 SearchResultEditorPreferencePage.ResultEditor=Suchresultate Editor
+SearchResultEditorPreferencePage.SortFilterLimitColon=Sortier/Filtern-Limit:
+SearchResultEditorPreferencePage.SortFilterLimitToolTip=Bei mehr Eintr\u00E4gen wird keine Sortierung/Filterung durchgef\u00FChrt. Hinweis: Der Wert sollte 10000 nicht \u00FCbersteigen\!
 EntryEditorsPreferencePage.ApplicationWideSetting=Anwendungsweiten \u00d6ffnen Modus verwenden
 EntryEditorsPreferencePage.ApplicationWideSettingTooltip=Erlaubt verschiedene Optionen zum \u00d6ffnen von Editoren (z.B. Einzelklick oder Doppelklick), siehe <a>'Allgemein'</a> f\u00fcr weitere Einstellungen.
 EntryEditorsPreferencePage.DescriptionColon=Beschreibung:

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_fr.properties?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_fr.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/dialogs/preferences/messages_fr.properties Tue Sep 10 15:42:57 2013
@@ -36,6 +36,8 @@ SearchResultEditorPreferencePage.DNAsFir
 SearchResultEditorPreferencePage.DNAsLink=Afficher le DN sous forme de lien
 SearchResultEditorPreferencePage.GeneralSettings=R\u00E9glages g\u00E9n\u00E9raux pour l'\u00E9diteur de r\u00E9sultat de recherche LDAP:
 SearchResultEditorPreferencePage.ResultEditor=Editeur de r\u00E9sultat de recherche
+SearchResultEditorPreferencePage.SortFilterLimitColon=Limite de tri/filtrage :
+SearchResultEditorPreferencePage.SortFilterLimitToolTip=S'il y a plus de r\u00E9sultats de recherche que la valeur sp\u00E9cifi\u00E9e, le tri/filtrage ne sera pas effectu\u00E9. Conseil: Pour des raisons de performance, la valeur maximale ne devrait pas d\u00E9passer 10 000 \!
 EntryEditorsPreferencePage.ApplicationWideSetting=Utiliser le r\u00E9glage global de mode d'ouverture de l'application
 EntryEditorsPreferencePage.ApplicationWideSettingTooltip=Permet de multiples options pour l'ouverture des \u00E9diteurs (ie. simple/double clic et plus). Voir <a>'G\u00E9n\u00E9ral'</a> pour la configuration du mode d'ouverture.
 EntryEditorsPreferencePage.DescriptionColon=Description:

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorContentProvider.java?rev=1521528&r1=1521527&r2=1521528&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorContentProvider.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorContentProvider.java Tue Sep 10 15:42:57 2013
@@ -103,8 +103,9 @@ public class SearchResultEditorContentPr
         // filter and sort, use Job if too much elements
         if ( configuration.getFilter().isFiltered() || configuration.getSorter().isSorted() )
         {
-            if ( elements.length > 1000 && mainWidget.getViewer() != null
-                && !mainWidget.getViewer().getTable().isDisposed() )
+            if ( elements.length > BrowserUIPlugin.getDefault().getPreferenceStore()
+                .getInt( BrowserUIConstants.PREFERENCE_SEARCHRESULTEDITOR_SORT_FILTER_LIMIT )
+                && mainWidget.getViewer() != null && !mainWidget.getViewer().getTable().isDisposed() )
             {
                 // deactivate fitering and sorting for large data set
                 // FilterAndSortRunnable runnable = new FilterAndSortRunnable( configuration, mainWidget, elements );