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