Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
import org.eclipse.ui.internal.findandreplace.FindReplaceLogic;
import org.eclipse.ui.internal.findandreplace.FindReplaceMessages;
import org.eclipse.ui.internal.findandreplace.HistoryStore;
import org.eclipse.ui.internal.findandreplace.IFindReplaceLogic;
import org.eclipse.ui.internal.findandreplace.SearchOptions;
import org.eclipse.ui.part.MultiPageEditorSite;

Expand Down Expand Up @@ -113,7 +114,7 @@ private static final class KeyboardShortcuts {
private static final String IDEAL_WIDTH_TEXT = "THIS TEXT HAS A REASONABLE LENGTH FOR SEARCHING"; //$NON-NLS-1$
private static final int HISTORY_SIZE = 15;

private FindReplaceLogic findReplaceLogic;
private final IFindReplaceLogic findReplaceLogic;
private final IWorkbenchPart targetPart;
private boolean replaceBarOpen;

Expand Down Expand Up @@ -296,7 +297,7 @@ void dispose() {
public FindReplaceOverlay(Shell parent, IWorkbenchPart part, IFindReplaceTarget target) {
targetPart = part;
targetControl = getTargetControl(parent, part);
createFindReplaceLogic(target);
findReplaceLogic = createFindReplaceLogic(target);
createContainerAndSearchControls(targetControl);
containerControl.setVisible(false);
PlatformUI.getWorkbench().getHelpSystem().setHelp(containerControl,
Expand All @@ -315,17 +316,18 @@ private boolean insertedInTargetParent() {
return targetControl instanceof StyledText;
}

private void createFindReplaceLogic(IFindReplaceTarget target) {
findReplaceLogic = new FindReplaceLogic();
private IFindReplaceLogic createFindReplaceLogic(IFindReplaceTarget target) {
IFindReplaceLogic logic = new FindReplaceLogic();
boolean isTargetEditable = false;
if (target != null) {
isTargetEditable = target.isEditable();
}
findReplaceLogic.updateTarget(target, isTargetEditable);
findReplaceLogic.activate(SearchOptions.INCREMENTAL);
findReplaceLogic.activate(SearchOptions.GLOBAL);
findReplaceLogic.activate(SearchOptions.WRAP);
findReplaceLogic.activate(SearchOptions.FORWARD);
logic.updateTarget(target, isTargetEditable);
logic.activate(SearchOptions.INCREMENTAL);
logic.activate(SearchOptions.GLOBAL);
logic.activate(SearchOptions.WRAP);
logic.activate(SearchOptions.FORWARD);
return logic;
}

public Composite getContainerControl() {
Expand Down Expand Up @@ -613,7 +615,7 @@ private void createAreaSearchButton() {
updateIncrementalSearch();
})
.withShortcuts(KeyboardShortcuts.OPTION_SEARCH_IN_SELECTION).build();
searchInSelectionButton.setSelection(findReplaceLogic.isActive(SearchOptions.WHOLE_WORD));
searchInSelectionButton.setSelection(!findReplaceLogic.isActive(SearchOptions.GLOBAL));
}

private void createRegexSearchButton() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,4 +215,21 @@ public void testSearchTermStoredInHistoryAfterSearchBackward() {
assertEquals("foo", dialog.getFindText());
}

@Test
public void testSearchInSelectionButtonIsInverseOfGlobalOption() {
// The searchInSelection button is the inverse of the GLOBAL option:
// it is NOT selected when searching globally, and IS selected when searching in selection.
initializeTextViewerWithFindReplaceUI("text");
OverlayAccess dialog= getDialog();

dialog.assertSelected(SearchOptions.GLOBAL);

dialog.unselect(SearchOptions.GLOBAL);
dialog.assertUnselected(SearchOptions.GLOBAL);

dialog.select(SearchOptions.GLOBAL);
dialog.assertSelected(SearchOptions.GLOBAL);
}


}
Loading