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) {