Bug 517125 - Regression: Filtering issues and no default selection
This bugfix restores the Ctrl+E filter matching as it was in 4.6
- excludes files extensions when matching, but matches *.java
- selects by default the first matched item
- skips dirty editors prefix (*)
Change-Id: I2a848fdb211bc960f8aa713131c4ddd3fcdc137a
Signed-off-by: Patrik Suzzi <psuzzi@gmail.com>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FilteredTableBaseHandler.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FilteredTableBaseHandler.java
index de74c4b..0afc43a 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FilteredTableBaseHandler.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/FilteredTableBaseHandler.java
@@ -457,13 +457,16 @@
/**
* Add modify listener to the search text, trigger search each time text
- * changes
+ * changes. After the search the first matching result is selected.
*/
protected void addModifyListener(Text text) {
text.addModifyListener(e -> {
String searchText = ((Text) e.widget).getText();
setMatcherString(searchText);
tableViewer.refresh();
+ if (tableViewer.getTable().getColumnCount() > 0) {
+ tableViewer.getTable().select(0);
+ }
});
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbookEditorsHandler.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbookEditorsHandler.java
index ae55882..0172fe8 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbookEditorsHandler.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbookEditorsHandler.java
@@ -109,7 +109,7 @@
searchPattern = null;
} else {
SearchPattern patternMatcher = new SearchPattern();
- patternMatcher.setPattern("*" + pattern); //$NON-NLS-1$
+ patternMatcher.setPattern(pattern);
searchPattern = patternMatcher;
}
}
@@ -199,6 +199,10 @@
String matchName = null;
if (element instanceof EditorReference) {
matchName = ((EditorReference) element).getTitle();
+ // skips dirty editor prefix
+ if (matchName.startsWith("*")) { //$NON-NLS-1$
+ matchName = matchName.substring(1);
+ }
}
if (matchName == null) {
return false;