diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog
index f18a6b2b53e..f5cb8a52757 100644
--- a/core/org.eclipse.cdt.ui/ChangeLog
+++ b/core/org.eclipse.cdt.ui/ChangeLog
@@ -1,3 +1,20 @@
+2004-07-08 Bogdan Gheorghe
+ Fix for 64177: [Search] Clean up Selection Search UI
+ Fix for 57121: [Search] Searching when all of the "Search For" checkboxes are unchecked causes an exception
+ Fix for 68249: Accessibility: Project Settings Indexer description chopped
+
+ * src/org/eclipse/cdt/internal/ui/CPluginResources.properties
+ * src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java
+ * src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties
+ * src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
+ * src/org/eclipse/cdt/internal/ui/editor/ICEditorActionDefintionIds.java
+ * src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
+ * src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java
+ * src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java
+ * src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
+ * src/org/eclipse/cdt/internal/ui/search/actions/SelectionSearchGroup.java
+ * plugin.xml
+
2004-07-07 Hoda Amer
Fix for PR 69411: Bad label: WizardNewFileCreationPage.progress
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index 0a09461f250..de1176b15dc 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -598,6 +598,26 @@
category="org.eclipse.cdt.ui.category.source"
id="org.eclipse.cdt.ui.edit.opencview">
+
+
+
+
"org.eclipse.cdt.ui.edit.text.redo.action").
*/
public static final String REDO_ACTION= "org.eclipse.cdt.ui.edit.text.redo.action"; //$NON-NLS-1$
+ /**
+ * Action definition ID of the find references in workspace action
+ * (value "org.eclipse.cdt.ui.search.findrefs"
).
+ */
+ public static final String FIND_REFS= "org.eclipse.cdt.ui.search.findrefs"; //$NON-NLS-1$
+ /**
+ * Action definition ID of the find declarations in workspace action
+ * (value "org.eclipse.cdt.ui.search.finddecl"
).
+ */
+ public static final String FIND_DECL= "org.eclipse.cdt.ui.search.finddecl"; //$NON-NLS-1$
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
index d5249499f78..c331e3576c1 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchPage.java
@@ -166,7 +166,7 @@ public class CSearchPage extends DialogPage implements ISearchPage, ICSearchCons
fCElement= null;
handleAllElements( event );
List searchFor = getSearchFor();
- getContainer().setPerformActionEnabled( searchFor.size() != 0 );
+ getContainer().setPerformActionEnabled( searchFor.size() != 0 && getPattern().length() > 0 );
setLimitTo( searchFor );
updateCaseSensitiveCheckbox();
}
@@ -249,7 +249,7 @@ public class CSearchPage extends DialogPage implements ISearchPage, ICSearchCons
fPattern.addModifyListener( new ModifyListener() {
public void modifyText( ModifyEvent e ) {
- getContainer().setPerformActionEnabled( getPattern().length() > 0 );
+ getContainer().setPerformActionEnabled( getPattern().length() > 0 && getSearchFor().size() != 0 );
updateCaseSensitiveCheckbox();
}
});
@@ -426,7 +426,7 @@ public class CSearchPage extends DialogPage implements ISearchPage, ICSearchCons
initSelections();
}
fPattern.setFocus();
- getContainer().setPerformActionEnabled(fPattern.getText().length() > 0);
+ getContainer().setPerformActionEnabled(fPattern.getText().length() > 0 && getSearchFor().size() != 0 );
}
super.setVisible(visible);
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java
index 2f44faf252d..37c39bb4478 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/NewSearchResultCollector.java
@@ -126,7 +126,8 @@ public class NewSearchResultCollector extends BasicSearchResultCollector {
fMatchCount++;
int start = match.getStartOffset();
int end = match.getEndOffset();
- fSearch.addMatch(new Match(match,start,end-start));
+ String classifier = PARENT + match.getParentName() + NAME + match.getName() + LOCATION + match.getLocation().toOSString() + ELEMENTTYPE + match.getElementType() + VISIBILITY + match.getVisibility();
+ fSearch.addMatch(new CSearchMatch(classifier,start,end-start, match));
return true;
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java
index a574ef22a83..5770fbf40c7 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java
@@ -11,17 +11,27 @@
package org.eclipse.cdt.internal.ui.search.actions;
+import java.util.List;
+
+import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.ui.editor.CEditor;
+import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.search.ui.IContextMenuConstants;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
public class DeclarationsSearchGroup extends ActionGroup {
+ private CEditor fEditor;
+
private FindDeclarationsAction fFindDeclarationsAction;
private FindDeclarationsInWorkingSetAction fFindDeclarationsInWorkingSetAction;
@@ -33,7 +43,13 @@ public class DeclarationsSearchGroup extends ActionGroup {
* @param editor
*/
public DeclarationsSearchGroup(CEditor editor) {
+ fEditor = editor;
+
fFindDeclarationsAction= new FindDeclarationsAction(editor);
+ fFindDeclarationsAction.setActionDefinitionId(ICEditorActionDefinitionIds.FIND_DECL);
+ if (editor != null){
+ editor.setAction(ICEditorActionDefinitionIds.FIND_DECL, fFindDeclarationsAction);
+ }
fFindDeclarationsInWorkingSetAction = new FindDeclarationsInWorkingSetAction(editor);
}
/*
@@ -43,12 +59,47 @@ public class DeclarationsSearchGroup extends ActionGroup {
super.fillContextMenu(menu);
IMenuManager incomingMenu = menu;
-
+
IMenuManager declarationsMenu = new MenuManager(CSearchMessages.getString("group.declarations"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
+
+ if (fEditor != null){
+ menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, declarationsMenu);
+ }
+
incomingMenu.add(declarationsMenu);
incomingMenu = declarationsMenu;
incomingMenu.add(fFindDeclarationsAction);
incomingMenu.add(fFindDeclarationsInWorkingSetAction);
}
+
+ public static boolean canActionBeAdded(ISelection selection) {
+ if(selection instanceof ITextSelection) {
+ return (((ITextSelection)selection).getLength() > 0);
+ } else {
+ return getElement(selection) != null;
+ }
+ }
+
+ private static ICElement getElement(ISelection sel) {
+ if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
+ List list= ((IStructuredSelection)sel).toList();
+ if (list.size() == 1) {
+ Object element= list.get(0);
+ if (element instanceof ICElement) {
+ return (ICElement)element;
+ }
+ }
+ }
+ return null;
+ }
+
+ /*
+ * Overrides method declared in ActionGroup
+ */
+ public void dispose() {
+ fFindDeclarationsAction= null;
+ fFindDeclarationsInWorkingSetAction= null;
+ super.dispose();
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
index 9c5d0182db8..8ccc1cb2543 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
@@ -11,27 +11,39 @@
package org.eclipse.cdt.internal.ui.search.actions;
import org.eclipse.cdt.internal.ui.editor.CEditor;
+import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.search.ui.IContextMenuConstants;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
public class ReferencesSearchGroup extends ActionGroup {
private FindRefsAction fFindRefsAction;
private FindRefsInWorkingSetAction fFindRefsInWorkingSetAction;
+ private CEditor fEditor;
+ private IWorkbenchSite fSite;
+
public ReferencesSearchGroup(IWorkbenchSite site) {
fFindRefsAction= new FindRefsAction(site);
fFindRefsInWorkingSetAction = new FindRefsInWorkingSetAction(site);
}
+
/**
* @param editor
*/
public ReferencesSearchGroup(CEditor editor) {
+ fEditor = editor;
+
fFindRefsAction= new FindRefsAction(editor);
+ fFindRefsAction.setActionDefinitionId(ICEditorActionDefinitionIds.FIND_REFS);
+ if (editor != null){
+ editor.setAction(ICEditorActionDefinitionIds.FIND_REFS, fFindRefsAction);
+ }
fFindRefsInWorkingSetAction = new FindRefsInWorkingSetAction(editor);
}
@@ -45,6 +57,11 @@ public class ReferencesSearchGroup extends ActionGroup {
IMenuManager incomingMenu = menu;
IMenuManager refsMenu = new MenuManager(CSearchMessages.getString("group.references"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
+
+ if (fEditor != null){
+ menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, refsMenu);
+ }
+
incomingMenu.add(refsMenu);
incomingMenu = refsMenu;
@@ -52,4 +69,13 @@ public class ReferencesSearchGroup extends ActionGroup {
incomingMenu.add(fFindRefsInWorkingSetAction);
}
+
+ /*
+ * Overrides method declared in ActionGroup
+ */
+ public void dispose() {
+ fFindRefsAction= null;
+ fFindRefsInWorkingSetAction= null;
+ super.dispose();
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionSearchGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionSearchGroup.java
index 9a8cd4242aa..5600a93a444 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionSearchGroup.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/SelectionSearchGroup.java
@@ -11,19 +11,16 @@
package org.eclipse.cdt.internal.ui.search.actions;
import java.util.List;
+
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.ui.editor.CEditor;
-import org.eclipse.cdt.internal.ui.search.CSearchMessages;
import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.search.ui.IContextMenuConstants;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.part.Page;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
public class SelectionSearchGroup extends ActionGroup {
@@ -58,16 +55,8 @@ public class SelectionSearchGroup extends ActionGroup {
public void fillContextMenu(IMenuManager menu) {
super.fillContextMenu(menu);
- IMenuManager incomingMenu = menu;
-
- if (fEditor != null){
- IMenuManager selSearchMenu = new MenuManager(CSearchMessages.getString("group.search"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
- menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, selSearchMenu);
- incomingMenu = selSearchMenu;
- }
-
- fDeclarationsSearchGroup.fillContextMenu(incomingMenu);
- fRefSearchGroup.fillContextMenu(incomingMenu);
+ fDeclarationsSearchGroup.fillContextMenu(menu);
+ fRefSearchGroup.fillContextMenu(menu);
}
public static boolean canActionBeAdded(ISelection selection) {