Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/apache/directory-studio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Seelmann <mail@stefan-seelmann.de>2021-01-10 23:28:59 +0300
committerStefan Seelmann <mail@stefan-seelmann.de>2021-01-10 23:28:59 +0300
commitdfed72919c1018dc73e4ace51c4b508239bd32e2 (patch)
treec8333021164b34fc418b322c49fe0fdff52bb451
parenta543b2d9c7154f913ab5a61af34ad5e8416b0fbb (diff)
DIRSTUDIO-837, DIRSTUDIO-1167: Fix quick search, require one instance per connection rather than one global object
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java20
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserActionGroup.java3
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java17
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java2
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java4
-rw-r--r--plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserWidget.java26
-rw-r--r--plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java25
-rw-r--r--plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java6
8 files changed, 42 insertions, 61 deletions
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
index 6efa6a5dd..774fd5bed 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
@@ -24,7 +24,6 @@ package org.apache.directory.studio.ldapbrowser.common.actions;
import org.apache.directory.studio.connection.core.Utils;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
-import org.apache.directory.studio.ldapbrowser.common.widgets.browser.BrowserWidget;
import org.apache.directory.studio.ldapbrowser.core.jobs.SearchRunnable;
import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
@@ -45,19 +44,6 @@ import org.eclipse.ui.dialogs.PreferencesUtil;
*/
public class OpenQuickSearchAction extends BrowserAction
{
- /** The browser widget */
- private BrowserWidget widget;
-
-
- /**
- * Creates a new instance of OpenQuickSearchAction.
- */
- public OpenQuickSearchAction( BrowserWidget widget )
- {
- this.widget = widget;
- }
-
-
/**
* {@inheritDoc}
*/
@@ -68,7 +54,7 @@ public class OpenQuickSearchAction extends BrowserAction
if ( browserConnection != null )
{
// Getting the current quick search
- IQuickSearch quickSearch = widget.getQuickSearch();
+ IQuickSearch quickSearch = browserConnection.getSearchManager().getQuickSearch();
// Creating a new quick search with the currently selected entry
// if there's no current quick search or quick search isn't selected
@@ -88,7 +74,7 @@ public class OpenQuickSearchAction extends BrowserAction
// Creating a new quick search
quickSearch = new QuickSearch( searchBase, browserConnection );
- widget.setQuickSearch( quickSearch );
+ browserConnection.getSearchManager().setQuickSearch( quickSearch );
}
// Creating and opening the dialog
@@ -201,7 +187,7 @@ public class OpenQuickSearchAction extends BrowserAction
{
if ( getSelectedSearches().length == 1 )
{
- return getSelectedSearches()[0].equals( widget.getQuickSearch() );
+ return getSelectedSearches()[0] instanceof IQuickSearch;
}
return false;
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserActionGroup.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserActionGroup.java
index 19ce4853f..68dd46fe2 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserActionGroup.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserActionGroup.java
@@ -108,8 +108,7 @@ public class BrowserActionGroup implements ActionHandlerManager, IMenuListener
showQuickSearchAction = new ShowQuickSearchAction( mainWidget.getQuickSearchWidget() );
collapseAllAction = new CollapseAllAction( viewer );
- browserActionMap.put( OPEN_QUICK_SEARCH_ACTION, new BrowserViewActionProxy( viewer, new OpenQuickSearchAction(
- mainWidget ) ) );
+ browserActionMap.put( OPEN_QUICK_SEARCH_ACTION, new BrowserViewActionProxy( viewer, new OpenQuickSearchAction() ) );
browserActionMap.put( UP_ACTION, new BrowserViewActionProxy( viewer, new UpAction( viewer ) ) );
browserActionMap.put( REFRESH_ACTION, new BrowserViewActionProxy( viewer, new RefreshAction() ) );
browserActionMap.put( FILTER_CHILDREN_ACTION, new BrowserViewActionProxy( viewer, new FilterChildrenAction() ) );
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
index 87436e826..222358cdc 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
@@ -60,9 +60,6 @@ import org.eclipse.jface.viewers.Viewer;
*/
public class BrowserContentProvider implements ITreeContentProvider
{
- /** The browser widget */
- private BrowserWidget widget;
-
/** The viewer. */
private TreeViewer viewer;
@@ -106,7 +103,6 @@ public class BrowserContentProvider implements ITreeContentProvider
*/
public BrowserContentProvider( BrowserWidget widget, BrowserPreferences preferences, BrowserSorter sorter )
{
- this.widget = widget;
this.viewer = widget.getViewer();
this.preferences = preferences;
this.sorter = sorter;
@@ -353,6 +349,7 @@ public class BrowserContentProvider implements ITreeContentProvider
else if ( parent instanceof IEntry )
{
final IEntry parentEntry = ( IEntry ) parent;
+ IQuickSearch quickSearch = parentEntry.getBrowserConnection().getSearchManager().getQuickSearch();
if ( parentEntry instanceof IContinuation )
{
@@ -384,10 +381,10 @@ public class BrowserContentProvider implements ITreeContentProvider
List<Object> objects = new ArrayList<Object>();
- if ( widget.getQuickSearch() != null
- && parentEntry.getDn().equals( widget.getQuickSearch().getSearchBase() ) )
+ if ( quickSearch != null
+ && parentEntry.getDn().equals( quickSearch.getSearchBase() ) )
{
- objects.add( widget.getQuickSearch() );
+ objects.add( quickSearch );
}
if ( parentEntry.getTopPageChildrenRunnable() != null )
@@ -410,10 +407,10 @@ public class BrowserContentProvider implements ITreeContentProvider
List<Object> objects = new ArrayList<Object>();
- if ( widget.getQuickSearch() != null
- && parentEntry.getDn().equals( widget.getQuickSearch().getSearchBase() ) )
+ if ( quickSearch != null
+ && parentEntry.getDn().equals( quickSearch.getSearchBase() ) )
{
- objects.add( widget.getQuickSearch() );
+ objects.add( quickSearch );
}
objects.addAll( Arrays.asList( entryPages ) );
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
index b28b8cf9d..923ceb11c 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
@@ -333,7 +333,7 @@ public class BrowserQuickSearchWidget
quickSearch.getSearchParameter().setFilter( filter.toString() );
// set new quick search
- browserWidget.setQuickSearch( quickSearch );
+ conn.getSearchManager().setQuickSearch( quickSearch );
// execute quick search
new StudioBrowserJob( new SearchRunnable( new ISearch[]
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
index 244d6a4e3..ef37d6cc4 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
@@ -277,9 +277,9 @@ public class BrowserUniversalListener implements ConnectionUpdateListener, Entry
if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
{
- if ( widget.getQuickSearch() == search )
+ if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
{
- widget.setQuickSearch( null );
+ search.getBrowserConnection().getSearchManager().setQuickSearch( null );
}
}
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserWidget.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserWidget.java
index f7ef22765..70856a290 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserWidget.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserWidget.java
@@ -24,7 +24,6 @@ package org.apache.directory.studio.ldapbrowser.common.widgets.browser;
import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
import org.apache.directory.studio.common.ui.widgets.ViewFormWidget;
import org.apache.directory.studio.ldapbrowser.common.dialogs.SelectEntryDialog;
-import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.TreeViewer;
@@ -65,9 +64,6 @@ public class BrowserWidget extends ViewFormWidget
/** The tree viewer. */
private TreeViewer viewer;
- /** The quick search. */
- private IQuickSearch quickSearch;
-
/**
* Creates a new instance of BrowserWidget.
@@ -246,26 +242,4 @@ public class BrowserWidget extends ViewFormWidget
{
return viewer;
}
-
-
- /**
- * Sets the quick search.
- *
- * @param quickSearch the new quick search
- */
- public void setQuickSearch( IQuickSearch quickSearch )
- {
- this.quickSearch = quickSearch;
- }
-
-
- /**
- * Gets the quick search.
- *
- * @return the quick search
- */
- public IQuickSearch getQuickSearch()
- {
- return quickSearch;
- }
}
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
index 80d9603c6..7e7d5db85 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
@@ -28,6 +28,7 @@ import java.util.List;
import org.apache.directory.studio.ldapbrowser.core.events.EventRegistry;
import org.apache.directory.studio.ldapbrowser.core.events.SearchUpdateEvent;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
import org.eclipse.osgi.util.NLS;
@@ -49,6 +50,8 @@ public class SearchManager implements Serializable
/** The connection. */
private IBrowserConnection connection;
+ /** The quick search. */
+ private IQuickSearch quickSearch;
/**
* Creates a new instance of SearchManager.
@@ -209,4 +212,26 @@ public class SearchManager implements Serializable
{
return searchList.size();
}
+
+
+ /**
+ * Sets the quick search.
+ *
+ * @param quickSearch the new quick search
+ */
+ public void setQuickSearch( IQuickSearch quickSearch )
+ {
+ this.quickSearch = quickSearch;
+ }
+
+
+ /**
+ * Gets the quick search.
+ *
+ * @return the quick search
+ */
+ public IQuickSearch getQuickSearch()
+ {
+ return quickSearch;
+ }
}
diff --git a/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java b/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
index 8c5159f08..790971364 100644
--- a/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
+++ b/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
@@ -550,9 +550,9 @@ public class BrowserViewUniversalListener extends BrowserUniversalListener imple
if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
{
- if ( widget.getQuickSearch() == search )
+ if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
{
- widget.setQuickSearch( null );
+ search.getBrowserConnection().getSearchManager().setQuickSearch( null );
}
}
@@ -568,7 +568,7 @@ public class BrowserViewUniversalListener extends BrowserUniversalListener imple
}
else if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() != EventDetail.SEARCH_REMOVED ) )
{
- if ( widget.getQuickSearch() == search )
+ if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
{
viewer.setSelection( new StructuredSelection( search ), true );
}