Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Maeder2003-12-12 14:04:11 +0000
committerThomas Maeder2003-12-12 14:04:11 +0000
commite32cea4bf1acc8ecea20b24f211520b767185465 (patch)
treea37e79b66f763341e4e26d7df19cad7ab0ebac79
parent487634f40089ee369c6a0aa2d5831f7e74f7cd2d (diff)
downloadeclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.tar.gz
eclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.tar.xz
eclipse.platform.text-e32cea4bf1acc8ecea20b24f211520b767185465.zip
fix for bug 47813
-rw-r--r--org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java14
-rw-r--r--org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java8
-rw-r--r--org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java17
3 files changed, 29 insertions, 10 deletions
diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java
index 83021421e12..bb6db831989 100644
--- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java
+++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDropDownAction.java
@@ -28,7 +28,7 @@ class SearchDropDownAction extends Action implements IMenuCreator {
private Menu fMenu;
- public SearchDropDownAction(SearchResultViewer viewer) {
+ public SearchDropDownAction() {
setText(SearchMessages.getString("SearchResultView.previousSearches.text")); //$NON-NLS-1$
setToolTipText(SearchMessages.getString("SearchResultView.previousSearches.tooltip")); //$NON-NLS-1$
SearchPluginImages.setImageDescriptors(this, SearchPluginImages.T_LCL, SearchPluginImages.IMG_LCL_SEARCH_HISTORY);
@@ -36,8 +36,10 @@ class SearchDropDownAction extends Action implements IMenuCreator {
}
public void dispose() {
- if (fMenu != null)
+ if (fMenu != null) {
fMenu.dispose();
+ fMenu= null;
+ }
}
public Menu getMenu(Menu parent) {
@@ -79,4 +81,12 @@ class SearchDropDownAction extends Action implements IMenuCreator {
public void run() {
new ShowSearchesAction().run(true);
}
+
+ /**
+ * Get's rid of the menu, because the menu hangs on to
+ * the searches, etc.
+ */
+ void clear() {
+ dispose();
+ }
}
diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java
index cb7ce5df244..6e310231650 100644
--- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java
+++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchManager.java
@@ -119,12 +119,14 @@ public class SearchManager implements IResourceChangeListener {
Iterator iter= fListeners.iterator();
while (iter.hasNext()) {
SearchResultViewer viewer= (SearchResultViewer)iter.next();
- viewer.setContextMenuTarget(null);
- viewer.setActionGroupFactory(null);
- viewer.setInput(null);
+ handleAllSearchesRemoved(viewer);
}
}
+ private void handleAllSearchesRemoved(SearchResultViewer viewer) {
+ viewer.handleAllSearchesRemoved();
+ }
+
void setCurrentSearch(final Search search) {
if (fCurrentSearch == search)
return;
diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java
index 5069cd6c898..d9e07dfff65 100644
--- a/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java
+++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchResultViewer.java
@@ -133,7 +133,7 @@ public class SearchResultViewer extends TableViewer {
fSearchAgainAction.setEnabled(hasSearchOperation);
fSortDropDownAction = new SortDropDownAction(this);
fSortDropDownAction.setEnabled(getItemCount() > 0);
- fSearchDropDownAction= new SearchDropDownAction(this);
+ fSearchDropDownAction= new SearchDropDownAction();
fSearchDropDownAction.setEnabled(hasSearch);
fCopyToClipboardAction= new CopyToClipboardAction(this);
@@ -270,7 +270,7 @@ public class SearchResultViewer extends TableViewer {
updateTitle();
enableActions();
if (getItemCount() > 0)
- selectResult(getTable(), 0);
+ selectResult(0);
WorkbenchHelp.setHelp(getControl(), SearchPlugin.getDefault().getSearchViewHelpContextId());
}
@@ -483,7 +483,7 @@ public class SearchResultViewer extends TableViewer {
}
fMarkerToShow= 0;
entry= (SearchResultViewEntry)getTable().getItem(index).getData();
- selectResult(table, index);
+ selectResult(index);
}
entry.setSelectedMarkerIndex(fMarkerToShow);
openCurrentSelection();
@@ -520,7 +520,7 @@ public class SearchResultViewer extends TableViewer {
}
entry= (SearchResultViewEntry)getTable().getItem(index).getData();
fMarkerToShow= entry.getMatchCount() - 1;
- selectResult(table, index);
+ selectResult(index);
}
entry.setSelectedMarkerIndex(fMarkerToShow);
openCurrentSelection();
@@ -533,7 +533,7 @@ public class SearchResultViewer extends TableViewer {
return true;
}
- private void selectResult(Table table, int index) {
+ private void selectResult(int index) {
fHandleSelectionChangedEvents= false;
Object element= getElementAt(index);
if (element != null)
@@ -718,4 +718,11 @@ public class SearchResultViewer extends TableViewer {
getTable().setRedraw(true);
}
+ void handleAllSearchesRemoved() {
+ setContextMenuTarget(null);
+ setActionGroupFactory(null);
+ setInput(null);
+ fSearchDropDownAction.clear();
+ }
+
}

Back to the top