DIRSTUDIO-837, DIRSTUDIO-1167: Move quick search to connection, fixes NPE
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 774fd5b..b2130ec 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
@@ -54,7 +54,7 @@
if ( browserConnection != null )
{
// Getting the current quick search
- IQuickSearch quickSearch = browserConnection.getSearchManager().getQuickSearch();
+ IQuickSearch quickSearch = browserConnection.getQuickSearch();
// Creating a new quick search with the currently selected entry
// if there's no current quick search or quick search isn't selected
@@ -74,7 +74,7 @@
// Creating a new quick search
quickSearch = new QuickSearch( searchBase, browserConnection );
- browserConnection.getSearchManager().setQuickSearch( quickSearch );
+ browserConnection.setQuickSearch( quickSearch );
}
// Creating and opening the dialog
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 222358c..b58e780 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
@@ -349,7 +349,7 @@
else if ( parent instanceof IEntry )
{
final IEntry parentEntry = ( IEntry ) parent;
- IQuickSearch quickSearch = parentEntry.getBrowserConnection().getSearchManager().getQuickSearch();
+ IQuickSearch quickSearch = parentEntry.getBrowserConnection().getQuickSearch();
if ( parentEntry instanceof IContinuation )
{
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 923ceb1..bdfb6d8 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 @@
quickSearch.getSearchParameter().setFilter( filter.toString() );
// set new quick search
- conn.getSearchManager().setQuickSearch( quickSearch );
+ conn.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 ef37d6c..984f1ae 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 @@
if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
{
- if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+ if ( search.getBrowserConnection().getQuickSearch() == search )
{
- search.getBrowserConnection().getSearchManager().setQuickSearch( null );
+ search.getBrowserConnection().setQuickSearch( null );
}
}
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 7e7d5db..80d9603 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,7 +28,6 @@
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;
@@ -50,8 +49,6 @@
/** The connection. */
private IBrowserConnection connection;
- /** The quick search. */
- private IQuickSearch quickSearch;
/**
* Creates a new instance of SearchManager.
@@ -212,26 +209,4 @@
{
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.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
index 6dae532..d679c10 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
@@ -456,6 +456,22 @@
/**
+ * Sets the quick search.
+ *
+ * @param quickSearch the new quick search
+ */
+ void setQuickSearch( IQuickSearch quickSearch );
+
+
+ /**
+ * Gets the quick search.
+ *
+ * @return the quick search
+ */
+ IQuickSearch getQuickSearch();
+
+
+ /**
* Gets the root DSE.
*
* @return the root DSE
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
index 38150f3..f1845d4 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
@@ -37,6 +37,7 @@
import org.apache.directory.studio.ldapbrowser.core.internal.search.LdapSearchPageScoreComputer;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
import org.apache.directory.studio.ldapbrowser.core.model.IRootDSE;
import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
import org.apache.directory.studio.ldapbrowser.core.model.schema.Schema;
@@ -69,6 +70,9 @@
/** The bookmark manager. */
private BookmarkManager bookmarkManager;
+ /** The quick search. */
+ private IQuickSearch quickSearch;
+
/** The dn to entry cache. */
private volatile Map<String, IEntry> dnToEntryCache;
@@ -495,6 +499,24 @@
}
+ /**
+ * {@inheritDoc}
+ */
+ public void setQuickSearch( IQuickSearch quickSearch )
+ {
+ this.quickSearch = quickSearch;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public IQuickSearch getQuickSearch()
+ {
+ return quickSearch;
+ }
+
+
/**
* {@inheritDoc}
*/
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
index 9a0dbd8..43d5845 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
@@ -28,6 +28,7 @@
import org.apache.directory.studio.ldapbrowser.core.SearchManager;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
import org.apache.directory.studio.ldapbrowser.core.model.IRootDSE;
import org.apache.directory.studio.ldapbrowser.core.model.schema.Schema;
@@ -389,6 +390,23 @@
/**
* {@inheritDoc}
*/
+ public void setQuickSearch( IQuickSearch quickSearch )
+ {
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public IQuickSearch getQuickSearch()
+ {
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public LdapUrl getUrl()
{
return null;
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 7909713..f00e941 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 @@
if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
{
- if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+ if ( search.getBrowserConnection().getQuickSearch() == search )
{
- search.getBrowserConnection().getSearchManager().setQuickSearch( null );
+ search.getBrowserConnection().setQuickSearch( null );
}
}
@@ -568,7 +568,7 @@
}
else if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() != EventDetail.SEARCH_REMOVED ) )
{
- if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+ if ( search.getBrowserConnection().getQuickSearch() == search )
{
viewer.setSelection( new StructuredSelection( search ), true );
}